Pyxelを使って簡単なゲームの作成を試してみたい!part3
前回pyxeleditorを使ってサウンドを作って動かすところまでやってみました。 スコアとゲームオーバーの実装 スコア表示の実装 今回はゲーム性を持たせるところですね。やることはスコアの作成とゲームオーバーの作成ですね。まずはスコアの作成をしていきます。コードとしてはシンプルです。 class Scrolling_Game: def __init__(self): … self.score = 0 … def draw(self): … pyxel.text(5, 5, f"Score: {self.score}", 1) textの後の引数はx座標とy座標。後はテキストとカラーパレットですね。カラーパレットはドット絵と同じで0が黒、7が白になります。 さらにスコアについては特定のアイテムを取った時にプラスしていきたいので、変数にしています。ただ、固定ならテキストを入力で問題ないですね。表示させるとこんな感じ。左上にスコアが出ています。 スコア増加の実装 次はどうやってスコアを増加させるかですね。シンプルな方法でアテイムを取ったら増加するという方法でやろうと思います。 というわけでアイテムを書きました。ハチミツの壺ですね。「ハチミツ食べたいな~」でおなじみの奴です。 他にもいろいろ描いてますが、将来的に使いたいなーと思って描いたやつです。気にしないでください(笑) それから出現をランダムで出したいと思います。ここもそこまで難しくないですね。初期変数をランダムに設定し、draw関数でランダム変数を設定する感じですね。以下のコード import random class Scrolling_Game: def __init__(self): … self.item_x = random.randint(0, 120) self.item_y = random.randint(0, 120) … def draw(self): pyxel.blt(self.item_x, self.item_y, 0, 8, 24, 8, 8, 0) 当たり判定の実装 これでランダムに出現するようになりました。ただ、初期配置でランダムになるだけで取得もできないし、スコアも変わらないです。なので、次は取得して配置を変え、スコアを上げるコードを書いていきます。 class Scrolling_Game: … def update(self): … # 当たり判定 if (self.char_x < self.item_x + 8 and self.char_x + 16 > self.item_x and self.char_y < self.item_y + 8 and self.char_y + 16 > self.item_y): self.score += 100 self.item_x = random.randint(0, 120) self.item_y = random.randint(0, 120) … これで当たり判定とスコアの上昇、アイテムの再配置を行いました。動かすとこのような感じですね。 ...