見出し画像

[初心者向け]Pythonista3のsceneでゲーム作成〜基礎〜

こんにちは。

普段プログラミングを趣味として自分なりに楽しんでやっています。
その中で学んだ事などを備忘録として残し、僕の思いも少し付け足してnoteにまとめています。

今回から数記事に分けてPythonista3のsceneで簡単なゲームを少しずつ作っていこうと思っていますので、とりあえずこの記事ではsceneの基本を説明しようと思います。

コードは、実践的なモノというより理解してもらう事に重きを置いて書いているのでご理解下さい。

sceneとは

まずsceneというのは、和訳すると『映画・小説・劇などの場面』という意味です。

そしてPythonista3のsceneというのはPythonista3の専用モジュールで、様々な図形や画像などを描画する事ができるモジュールです。

例えばですが、僕がsceneを勉強し始めた頃に作成したものが以下の画像のようなものです↓

画面に描画された星や隕石が右から左に流れていて、画面をタップするとプレイヤーが上方向に跳ねるような簡単なモノですが、これだけでも色々と勉強になります。

sceneモジュールを使うと、Pythonista3で自分でゲームを作成したりする事ができるので、Pythonを勉強している初心者の人がプログラミングを学習する時にオススメのモジュールだと思います。

sceneの基本的な考え方

次にsceneの基本的な考え方を説明していきます。

ゲームなどは基本的にパラパラ漫画のような仕組みになっていて、更新→描画→更新→描画というようになっています。

その更新→描画を高速で繰り返して画像を連続で変化させていく事によって動画のように動かすことができます。

まず基本になるのは

①初期化
②画面更新の処理(座標などを変化させる)
③画面更新(描画処理)

こんな感じになります。

①の『初期化』は、ゲームの開始前に初期状態を作るために行う処理です。

②の『画面更新の処理』は、例えば画面をタップしたらキャラクターのy座標を変更するとか、キャラクターと隕石の衝突判定とかの様々な処理をします。

③の『画面更新』は、描画です。②のところで更新された状態を描画します。

イメージとしては以下のようになります↓

こんな感じで、実行されてから[初期化]→[更新]→[変更]→[更新]→ ……… のように繰り返されていきます。

そして、Pythonista3のsceneでも同様に『初期化』してから『画面更新の処理』というのを実装していくことで動きをつける事ができます。

sceneの基本の形(コード)

基本の形となる部分のコードを説明していきます。
とりあえず全体を載せます。

#①
from scene import *

#②
class MyScene(Scene):
       #③
	def setup(self):
		self.background_color = 'lightblue'
   #④
	def update(self):
		pass
		
#⑤
my_scene = MyScene()
run(my_scene)

順番に説明していきますね。

#①
sceneモジュールの全てをインポート↓

from scene import *

#②
Sceneクラスを継承した『MyScene』クラスを定義(クラス名は何でもいいです)↓

class MyScene(Scene):

#③
setupメソッドを定義(Sceneクラスで定義されているものをオーバーライド)して、背景色を水色に設定↓
ここで言う『self』は、インスタンス化された時のMyScene自身を指します。
このsetupメソッドがさっき言ってた『初期化』の部分になります。

    def setup(self):
		self.background_color = 'lightblue'

#④
updateメソッドを定義(Sceneクラスで定義されているものをオーバーライド)して、とりあえずpass(何もしない)しています↓
このupdateメソッドにさっき言っていた『画面更新の処理』を書いていきます。

    def update(self):
		pass

デフォルトでは、このupdateメソッドは1秒間に60回(1回=1フレーム)呼び出されます。
イメージとしては以下の感じです↓

#⑤
MySceneクラスをインスタンス化して変数my_sceneに割り当てています。

最後にrun関数で実行しています。
このrun関数がなかったら実行しても何も起こらないのでしっかり書いてくださいね!↓

my_scene = MyScene()
run(my_scene)

以下のようにrun()にそのまま渡すのも可能ですのでお好きなやり方をどうぞ↓

run(MyScene())

ここまで書いたら右上の▷ボタンを押して実行しましょう!

ただの水色の画面が写っているだけですね。
今回は、これでオッケーなので安心してください!

この画面を消したい時は右上に薄っすら表示されている×ボタンを押して下さい!

これであなたのsceneで色々描画したりする準備が整いました!

このsceneモジュールは、元々のSceneクラスで定義されているメソッドをオーバーライド(書き換え)する事によって自分の好きな処理を簡単に追加する事ができます。

次の記事ではsceneで何か描画してみようと思いますのでそちらも参考にしてみてください!

まとめ的なやつ

今回はPythonista3のsceneの基本的なところを説明しました!

sceneの基本的な考え方としては
・初期化処理
・画面更新の処理
この2つが肝になります。

そして、パラパラ漫画のようになっていて、1フレームごとに画面更新の処理が行われていくのでモノが動いているように見えるんでしたね。

次回は図形描画の基礎を書いていますので是非参考にしてください↓

[初心者向け]Pythonista3のsceneでゲーム作成〜図形描画〜

最後まで読んでいただきありがとうございました!
では、またお会いしましょう!

この記事が気に入ったらサポートをしてみませんか?