Pythonista+sceneで2Dアクションゲームを作る方法についてまとめている記事です。
基本的なアクションの実装方法から応用的なアクションの実装方法について説明します。
※リンク先の記事は順次追加していきます。
▼こんなゲームが作れます▼
目次
Pythonista+sceneの基本
Pythonista+sceneの基本的な使い方です。いきなりプログラムを書くのではなくサンプルゲームで遊びつつコードとの対応関係を観察するのがおすすめです。
Pythonistaの基本メソッドの使い方
まずはサンプルゲームを遊びまくりましょう。
実際に作る前にどんなアクションが実装できるか知ることは非常に大事です。
ゲームの操作になれたらアクションとソースの対応関係を検察してみましょう。
最初は「setup()」、「update()」、「touch_began()」の3つを覚えればOK。
setup():ゲーム起動時に1回呼ばれる。主に初期設定で活用
update():1秒間に60回呼ばれる。主に更新処理に活用
touch_began():スマホ画面をタッチした時に呼ばれる。各種アクションを起こす時に活用
上記3つだけでもゲームを作るには十分です。最初からいろいろなことを覚えるのではなくまずは上記3つを使いこなすことから始めましょう。
Pythonista+sceneで最初に理解しておくべき3つのメソッド
タッチの種類
「setup()」、「update()」、「touch_began()」についてマスターしたら次はタッチの種類を理解しましょう。
画面タッチには「touch_began()」の他に「touch_moved()」、「touch_ended()」があります。
touch_began():画面をタッチした時に呼ばれる。
touch_moved():画面をタッチ中にスライドしたら呼ばれる。
touch_ended():画面から指を離した時に呼ばれる。
うまく使いこなせばタッチ処理だけでも多彩なアクションが可能です。
画像や文字の使い方
画像の追加はNode()関数を使用します。
Node関数には以下の種類があります。
・SpriteNode():画像の追加
・LabelNode():文字の追加
・EffectNode():爆発などのアニメーションの追加
・ShapeNode():図形の追加
まずは、「SpriteNode()」と「LabelNode()」の使い方を覚えればOKです。
Pythonistaのsceneライブラリ画像の使い方
【Pythonista+scene】文字を画面に表示する方法
Pythonista+sceneでキャラクターを移動させる
簡単な画面ができたらまずはキャラクターの移動方法について覚えましょう。
移動の基本
キャラクターの座標をただ変更するだけだと瞬間移動のようになってしまうので、update()メソッドを使用して徐々に移動させます。
キャラクターを移動させる方法
最も簡単な実装方法は、スマホの傾きを利用してキャラクターを移動させる方法です。
「gravity()関数」を使用することで簡単に実装できます。
また、タッチを利用してキャラクターを移動させる方法もあります。
・タッチした位置にキャラクターを移動させる
・画面スライドでキャラクターを移動させる
【Pythonista+scene】画面タッチでキャラクターを移動させる
アニメーションの追加
Pythonista+sceneで歩行アニメーションを作成する方法
・攻撃にアニメーションを追加する
キャラクターをジャンプさせる
Pythonistaでキャラクターをジャンプさせる処理を作成する
Pythonista+sceneで2Dアクションステージを作成する
キャラクターの移動方法を覚えたら次はステージ作成です。キャラクターの移動とステージ作成について覚えれば簡単なゲームを作ることができます。
アクションステージ作成の基本
アイテムや敵キャラクターを追加する方法
・アイテムを追加する方法
・敵キャラクターを追加する方法
当たり判定の作成
ゲームオーバーやクリア条件の作成
特定の条件を満たした時にゲームオーバーやステージクリアにします。
例)
・敵を全滅させたらクリア
・ライフが0になったらゲームオーバー
など。
ゲームの完成度を上げる方法
上記までは、ゲーム作成に必要最低限の要素でしたが、ここからはよりゲームの完成度を上げるための知識について説明します。
UIを追加する
・メニューを追加する
・ジャンプボタンや攻撃ボタンを設置する
BGMやSEの追加
タイトル画面やゲームオーバー画面の追加
画面スクロールの作成
画面を作成する場合は、キャラクターを動かすのではなく背景を動かすという形で実装できます。
【Qiita】Pythonista+sceneで画面スクロールを作成する
ステージに段差をつける
今のところ有効な方法が見つかっていないのでいろいろ実験中。
Pythonistaの使い方まとめ>>Pythonistaの使い方まとめ