マウス座標と画像との当たり判定基本
atari_hantei_kihon.py
画像を切り替えているので2種類の画像ファイルがimagesフォルダに必要です
# Pygame Zero: マウス座標と画像との当たり判定基本
import pgzrun
WIDTH = 500
HEIGHT = 500
TITLE = "マウス座標と画像との当たり判定基本"
# プレイヤー生成
player = Actor("kero") # imagesフォルダにkero.pngが必要
player.pos = 250, 250
# 初期表示
def draw():
screen.fill((128, 128, 128))
player.draw()
# マウスボタンを押した時の処理
def on_mouse_down(pos):
if player.collidepoint(pos): # プレイヤーがマウス座標と接触したとき
player.image = "kero_bang" # playerの画像を変更する
pgzrun.go()
キャラをクリックしたらランダムで別の座標に移動
atari_hantei_random.py
# Pygame Zero: キャラをクリックしたらランダムで別の座標に移動
import pgzrun
import random
WIDTH = 500
HEIGHT = 500
TITLE = "キャラをクリックしたらランダムで別の座標に移動"
# プレイヤー生成
teki = Actor("teki") # imagesフォルダにteki.pngが必要
teki.pos = 250, 250
# 初期表示
def draw():
screen.fill((128, 128, 128))
teki.draw()
# マウスボタンを押した時の処理
def on_mouse_down(pos):
if teki.collidepoint(pos): # プレイヤーがマウス座標と接触したとき
# ランダムな位置にプレイヤーを移動
x = random.randint(0, WIDTH)
y = random.randint(0, HEIGHT)
teki.pos = (x, y)
pgzrun.go()
キャラクタ同士の当たり判定
atari_hantei_char.py
# Pygame Zero: キャラクタ同士の当たり判定
import pgzrun
WIDTH = 500
HEIGHT = 500
TITLE = "キャラクタ同士の当たり判定"
# キャラクタ生成
player = Actor("kero") # imagesフォルダにkero.pngが必要
player.pos = 0, 250
teki = Actor("teki")
teki.pos = 250, 0
# 初期表示
def draw():
screen.fill((128, 128, 128))
player.draw()
teki.draw()
# フレーム処理
def update():
# プレイヤーの動き(左から右に移動)
player.left += 2
if player.left > WIDTH:
player.left = 0
# 敵の動き(上から下に移動)
teki.top += 2
if teki.top > HEIGHT:
teki.top = 0
# プレイヤーと敵の当たり判定
if player.collidepoint(teki.pos):
sounds.bang.play() # 音を鳴らす ※soundsフォルダにbang.wavが必要
pgzrun.go()
コメント