
import pgzrun |
import random |
from pgzero import music |
from pgzero.actor import Actor |
from pgzero.clock import clock |
from pgzero.keyboard import keyboard |
TITLE = '疯狂吃豆人' |
WIDTH = 500 |
HEIGHT = 500 |
pacman = Actor('向右的吃豆人') |
pacman.pos = 250, 250 |
bean1 = Actor('豆子') |
bean1.x = random.randint(100, 400) |
bean1.y = random.randint(100, 400) |
bean2 = Actor('豆子') |
bean2.x = random.randint(100, 400) |
bean2.y = random.randint(100, 400) |
bean3 = Actor('豆子') |
bean3.x = random.randint(100, 400) |
bean3.y = random.randint(100, 400) |
beans = [bean1, bean2, bean3] |
score = 0 |
HP = 3 |
level = 0 |
state = 1 |
Pscore = [] |
def draw(): |
screen.clear() |
screen.blit('游戏背景',(0, 0)) |
pacman.draw() |
for i in beans: |
i.draw() |
screen.draw.text(str(score), [15,15], color='white', fontsize=35) |
screen.draw.text(str(HP), [15,45], color='red', fontsize=35) |
screen.draw.text(str(int(level+1)), [15,75], color='yellow', fontsize=35) |
state1 = 0 |
def on_key_down(key): |
global score,HP,level,state,state1,Pscore |
if state == 1: |
if key == keys.LEFT: |
pacman.image = '向左的吃豆人' |
state1 = 1 |
if key == keys.RIGHT: |
pacman.image = '向右的吃豆人' |
state1 = 1 |
if key == keys.UP: |
pacman.image = '向上的吃豆人' |
state1 = 1 |
if key == keys.DOWN: |
pacman.image = '向下的吃豆人' |
state1 = 1 |
if state == 0 and key == keys.SPACE: |
HP = 3 |
level = 0 |
score = 0 |
state1 = 0 |
state = 1 |
def update(): |
global score,HP,level,state,state1,Pscore |
if state == 1: |
if state1 == 1: |
if pacman.image == '向左的吃豆人': |
if 5+level <=10: |
pacman.x -= 5+level |
else: |
pacman.x -= 10 |
if pacman.image == '向右的吃豆人': |
if 5+level <=10: |
pacman.x += 5+level |
else: |
pacman.x += 10 |
if pacman.image == '向上的吃豆人': |
if 5+level <=10: |
pacman.y -= 5+level |
else: |
pacman.y -= 10 |
if pacman.image == '向下的吃豆人': |
if 5+level <=10: |
pacman.y += 5+level |
else: |
pacman.y += 10 |
for i in beans: |
if pacman.colliderect(i): |
i.x = random.randint(100, 400) |
i.y = random.randint(100, 400) |
score += 1 |
if score%50 == 0: |
level = score/50 |
HP += 1 |
if pacman.x < 0 or pacman.x > 500 or pacman.y < 0 or pacman.y > 500: |
HP -= 1 |
state1 = 0 |
pacman.pos = 250, 250 |
if HP <= 0: |
state = 0 |
Pscore.append(score) |
print('您的最终得分为',score,'等级为',int(level+1)) |
print(Pscore) |
pgzrun.go() |



