python吃金币小游戏代码
时间: 2023-05-15 15:01:29 浏览: 436
pygame吃金币小游戏
5星 · 资源好评率100%
Python可以用来实现各种小游戏,其中"吃金币"是一款比较简单而又有趣的小游戏。
游戏规则:屏幕上有若干个金币,玩家通过控制一个小球去吃掉屏幕中的所有金币。
代码实现:先引用pygame库,再初始化游戏界面,设置游戏窗口大小和游戏标题。声音和图片资源可以在网上下载。
在游戏主循环中,需要实现以下功能:
1.检测小球与金币是否有碰撞,若有,则移除该金币并播放得分音效,设置得分。
2.判断是否吃完所有金币,若是,则游戏胜利,停止游戏。
3.检测玩家按下的方向键,并改变小球的位置。
4.如果小球移出屏幕范围,则游戏结束,停止游戏。
代码示例:
```
import pygame, sys
from pygame.locals import *
pygame.init()
FPS=30
WINDOW = pygame.display.set_mode((640, 480))
pygame.display.set_caption("吃金币小游戏")
pygame.mixer.music.load("background.mp3")
pygame.mixer.music.play(-1, 0.0)
gold_image = pygame.image.load("gold.png")
gold_list = []
for i in range(20):
x = random.randint(0, 600)
y = random.randint(0, 400)
gold_rect = gold_image.get_rect()
gold_rect.topleft = (x, y)
gold_list.append(gold_rect)
ball_image = pygame.image.load("ball.png")
ball_rect = ball_image.get_rect()
ball_x = 320
ball_y = 240
score = 0
# 吃到金币的音效
get_gold_sound = pygame.mixer.Sound("get_gold.wav")
win_sound = pygame.mixer.Sound("win.wav")
lose_sound = pygame.mixer.Sound("lose.wav")
while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
elif event.type == KEYDOWN:
if event.key in (K_UP, K_w):
ball_y -= 5
elif event.key in (K_DOWN, K_s):
ball_y += 5
elif event.key in (K_LEFT, K_a):
ball_x -= 5
elif event.key in (K_RIGHT, K_d):
ball_x += 5
WINDOW.fill((255, 255, 255))
WINDOW.blit(ball_image, (ball_x, ball_y))
for gold_rect in gold_list:
WINDOW.blit(gold_image, gold_rect)
if ball_rect.colliderect(gold_rect):
gold_list.remove(gold_rect)
score += 1
get_gold_sound.play()
font = pygame.font.Font(None, 36)
score_text = font.render("Score: %s" % score, 1, (0, 0, 0))
score_rect = score_text.get_rect()
score_rect.topleft = (20, 20)
WINDOW.blit(score_text, score_rect)
if len(gold_list) == 0:
pygame.mixer.music.stop()
win_sound.play()
pygame.time.delay(3000)
sys.exit()
if ball_x < 0 or ball_x > 600 or ball_y < 0 or ball_y > 400:
pygame.mixer.music.stop()
lose_sound.play()
pygame.time.delay(3000)
sys.exit()
pygame.display.update()
pygame.time.Clock().tick(FPS)
```
以上代码只是一个简单的草稿,还可以进行优化,添加更多的游戏元素和玩法,让游戏更有趣、更具挑战性。
阅读全文