Pygame Zero演習6(当たり判定)

Python

マウス座標と画像との当たり判定基本

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()

コメント