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

Python

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

atari_hantei_kihon.py

画像を切り替えているので2種類の画像ファイルがimagesフォルダに必要です

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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()

コメント