0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

秒で始めるpyxel(python環境必須)

Posted at

何も分からん人向け
https://qiita.com/Hiroto_Aso/items/ddd87f81e42ed24a1f0c

落ち物避けゲーム.py
import pyxel
import random

class App:
    def __init__(self):
        # ウィンドウの幅と高さの設定
        pyxel.init(160, 120, title="落ち物回避ゲーム")
        
        # プレイヤーの初期設定
        self.player_x = 75
        self.player_y = 110
        self.player_width = 10
        self.player_height = 5
        self.player_speed = 3

        # 敵(落ちブロック)のリスト
        self.enemies = []
        self.enemy_speed = 2  # 落下速度
        self.enemy_timer = 0  # 敵生成タイマー
        self.enemy_interval = 30  # 敵生成の間隔(フレーム数)

        pyxel.run(self.update, self.draw)

    def update(self):
        # プレイヤーの左右移動の処理
        if pyxel.btn(pyxel.KEY_LEFT):
            self.player_x = max(0, self.player_x - self.player_speed)
        if pyxel.btn(pyxel.KEY_RIGHT):
            self.player_x = min(pyxel.width - self.player_width, self.player_x + self.player_speed)

        # 敵生成タイマーの更新
        self.enemy_timer += 1
        if self.enemy_timer > self.enemy_interval:
            # 新しい敵を画面上部に生成
            enemy_x = random.randint(0, pyxel.width - 5)  # 敵の幅は5ピクセル
            enemy_y = 0
            self.enemies.append([enemy_x, enemy_y])
            self.enemy_timer = 0

        # すべての敵の位置を更新
        for enemy in self.enemies:
            enemy[1] += self.enemy_speed

        # 敵とプレイヤーとの衝突判定(単純な矩形同士の判定)
        for enemy in self.enemies:
            if (enemy[0] < self.player_x + self.player_width and enemy[0] + 5 > self.player_x and
                enemy[1] < self.player_y + self.player_height and enemy[1] + 5 > self.player_y):
                pyxel.quit()  # 衝突したらゲーム終了

        # 画面外に出た敵をリストから削除
        self.enemies = [enemy for enemy in self.enemies if enemy[1] < pyxel.height]

    def draw(self):
        pyxel.cls(0)
        # プレイヤーの描画
        pyxel.rect(self.player_x, self.player_y, self.player_width, self.player_height, 11)
        # 敵の描画
        for enemy in self.enemies:
            pyxel.rect(enemy[0], enemy[1], 5, 5, 8)
        # 説明テキストの表示
        pyxel.text(5, 5, "矢印キーで左右移動", 7)

if __name__ == "__main__":
    App() 

他のゲーム
https://kitao.github.io/pyxel/wasm/examples/10_platformer.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?