Pyxel

【Python】Pxyelでランダムに水玉模様を描く

【Python】Pxyelでランダムに水玉模様を描く

こんにちもじゃもじゃ、もじゃめ(@mojame_blog)だよ。

今回はPyxel (ピクセル) はPython向けのレトロゲームエンジンを使って遊んでみたもじゃよ。

最終的にマウスの左クリックを押すと画面上にランダムに水玉模様(円の輪郭)が描かれるシンプルなものを作成したもじゃよ。

忘却録としてコードも記載しておきますので、改良して面白いことができたら教えてくださいもじゃ。

基本的な使い方やインストール方法については開発者さんのページをご覧になってくださいもじゃね。

Pyxelとは

使える色は16色のみ、同時に再生できる音は4音までなど、レトロゲーム機を意識したシンプルな仕様で、Pythonでドット絵スタイルのゲームづくりが気軽に楽しめる。

今回の目標としては、下記のとおりとなるもじゃよ。

【Python】Pxyelでランダムに水玉模様を描く

非常にシンプルですが、ゆっくりと作り方を説明していくもじゃね。

闇もじゃめ
闇もじゃめ
Pythonを学び始め早2週間もじゃ…
もじゃめ
もじゃめ
もっと面白いの作っていきたいね!

Pyxelで遊ぼう|円の輪郭を表示する方法

それでは、まず初めに円の輪郭を画面の真ん中に表示するコードを説明するもじゃね。

開発者さんのページに円の輪郭を描く方法が記載あるもじゃよ。

今回は上記関数で円の輪郭線を表示していくことにするもじゃね。

キーの定義一覧:こちら

こちらのコードを実行すると下記のようになるもじゃよ。

【Python】Pxyelでランダムに水玉模様を描く

上記はGIFではありますが、ただ円の輪郭線が描かれているだけもじゃね。

それでは、次に色と半径をランダムで表示してみるもじゃね。

闇もじゃめ
闇もじゃめ
基礎的なことは開発者さんのページで確認してもじゃね…
もじゃめ
もじゃめ
どんどん次にいこう!

Pyxelで遊ぼう|円の半径と色をランダムにする

それでは次にrandomモジュールを使って円の半径と色をランダムに決定してもらうもじゃね。

randomモジュールってなんだっけか、という方は下記の記事も参考にしてくださいもじゃね。

【Python】乱数を使いこなそう|randomモジュールの使い方について
【Python】乱数を使いこなそう|randomモジュールの使い方についてこんにちもじゃもじゃ、もじゃめ(@mojame_blog)だよ。 今回はPythonで乱数を扱うrandomモジュールについて説明...

それでは、先ほどのコードを書き換えていくもじゃね。

追記した部分と書き換えた部分はわかるようにしておいたもじゃよ。

半径は1以上10以下と仮にしておいたもじゃね。

色は16色(0~15までの数字で選べる)使えますが背景色が黒(0)となっておりますので0を除いた15色をランダムに決定することにしているもじゃよ。

実行結果は下記のとおりとなるもじゃよ。

【Python】Pxyelでランダムに水玉模様を描く

画面の真ん中を円の中心として半径と色が変わりうにょうにょしている様子がわかるもじゃね。

闇もじゃめ
闇もじゃめ
うにょうにょ…
もじゃめ
もじゃめ
場所もランダムにしようか!

Pyxelで遊ぼう|円の出現場所をランダムにする

先ほどはランダムに色と半径を決定しましたが、動揺の操作で座標の位置もランダムで決定してもらいましょうもじゃ。

コードを書き換えると下記のようになるもじゃよ。

これを実行すると、実行した瞬間から「Q」を押すまでひたすらランダムに円の輪郭線が描かれるもじゃね。

実行した様子は下記のとおりとなるもじゃよ。

段々と目的のクリックしたらランダムに円の輪郭線が描かれるに近づいているもじゃね。

闇もじゃめ
闇もじゃめ
楽しいもじゃね…
もじゃめ
もじゃめ
ランダムって楽しいよね!

Pyxelで遊ぼう|左クリックを押すと円の輪郭線が描かれる

それでは、左クリックを押すと円の輪郭線が様々な場所・半径・色で描かれるようにするもじゃね。

コードはいたってシンプルもじゃよ、下記をご覧くださいもじゃ。

追記した部分ってなんだろう、と悩んだ方は開発者さんのページで関数の確認をお願いいたしますもじゃ。

左クリックを押すと円の輪郭線が描かれるようになったもじゃね。

目的は以上で達成もじゃな。

もっときれいなコードの書き方(円をクラス化したり…)とかはできますが、複雑に動かしていきたいなというときにコードを書き換えて挑戦してみてくださいもじゃ。

闇もじゃめ
闇もじゃめ
目標は達成もじゃね…
もじゃめ
もじゃめ
一応、おまけもつけておくよ!

おまけ|さらに遊んでみる

今回の目的は上記段落までで達成しましたが、おまけとしてさらにいじってみますもじゃね。

みなさんも色々といじって面白いのができたら教えてくださいもじゃ。

闇もじゃめ
闇もじゃめ
たいしたことはしないんだけどね…
もじゃめ
もじゃめ
せっかくだからちょっと付け足したいこともあるもじゃよ!

右クリックを押すと背景が黒でクリアされる

先ほどまでのコードを使って、更に続きを書いていくもじゃね。

先ほどまでは左クリックをすると様々なサイズの円の輪郭線がいたるところに表示されましたが、右クリックを押すと画面の色を黒(背景色:0)でクリアするように書き換えてみるもじゃね。

これで何度でもやり直しがきくもじゃな。

コードは下記のとおりとなるもじゃよ。

これで右クリックを押すと何度でも最初からやり直しすることができるもじゃね。

実行した様子は下記のとおりとなるもじゃよ。

【Python】Pxyelでランダムに水玉模様を描く

リセットされている様子がわかるもじゃね。

テキストを表示する

せっかくなので、左クリックを押していない間に「左クリック押して!」とメッセージを表示したいもじゃね。

テキストを表示させる関数もありますので、開発者さんのページをご確認くださいもじゃ。

コードは下記のとおりとなるもじゃよ。

(もっとうまい方法があるはずなのですが、こうしたらいいよ、とわかるかたいたら教えてくださいもじゃ)

これを実行すると、左クリックを押していない間は「左クリックを押して!」とテキストが表示されるようになったもじゃね。

テキストを表示する場所はどこでもよかったのですが、なんとなく真ん中付近にしておいたもじゃよ。

実行結果は下記のとおりもじゃよ。

【Python】Pxyelでランダムに水玉模様を描く

以上で一旦完成ということにしておくもじゃね。

続きや訂正などありましたら新たに記事を書きますもじゃな。

さいごに

今回はランダムに様々な大きさ・色の円の輪郭線をPython向けのレトロゲームエンジン「Pyxel」を使って遊んでみたもじゃよ。

プログラミングを始めて学び始め早2週間ですが、簡単なもので遊ぶことができるようになってきたもじゃね。

今後も色々と遊んでいきたいと思いますので、みなさんも面白いものができたら教えてくださいもじゃ。

Twitterによく生息しておりますので、もじゃめ(@mojame_blog)よかったらこちらで絡んでくださいもじゃ。

闇もじゃめ
闇もじゃめ
楽しかったもじゃ…
もじゃめ
もじゃめ
たくさん色々作ってみようね!
にほんブログ村

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です