抓手道具
娃娃道具
开始!
直接按下enter键,下降到指定位置,没有抓到娃娃~
游戏结束!
左右移动到娃娃上方接近的位置
按下enter键,直接提示抓取到娃娃了,细节部分还需要优化,基本逻辑通顺了。
import sys
import pygame
# 初始化游戏
pygame.init()
# 设置屏幕大小
screen = pygame.display.set_mode((800, 600))
# 设置娃娃机背景图片
background_image = pygame.image.load("background.png")
# 设置娃娃图片
doll_image = pygame.image.load("doll.png")
# 设置抓爪图片
claw_image = pygame.image.load("claw.png")
# 设置娃娃初始位置
doll_x = 300
doll_y = 200
# 设置抓爪初始位置
claw_x = 400
claw_y = 100
# 设置初始金币数量
coins = 100
# 设置娃娃宽度
doll_width = 100
# 设置娃娃高度
doll_height = 100
# 判断抓爪是否抓取到娃娃
def is_grabbed(claw_x, claw_y, doll_x, doll_y, prev_claw_x, prev_claw_y):
if claw_x != prev_claw_x or claw_y != prev_claw_y:
if claw_x >= doll_x and claw_x <= doll_x + doll_width and claw_y >= doll_y and claw_y <= doll_y + doll_height:
return True
else:
return False
# 扣除金币
def deduct_coins(coins, cost):
if coins >= cost:
coins -= cost - 1
return coins
else:
return 0
# 判断游戏是否结束
def is_game_over(coins):
if coins <= 0:
return True
else:
return False
# 设置游戏循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 键盘控制抓爪移动
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
claw_x -= 5
elif keys[pygame.K_RIGHT]:
claw_x += 5
# 按确定键自动下落抓取娃娃
if keys[pygame.K_RETURN]:
claw_y = doll_y + 100
# 判断抓爪是否抓取到娃娃
if is_grabbed(claw_x, claw_y, doll_x, doll_y, 10, 10):
coins -= 1
print("抓取到娃娃!")
# 将娃娃移动到抓爪下方
doll_y = claw_y + 100
# 扣除金币
coins = deduct_coins(coins, 1)
# 判断游戏是否结束
if is_game_over(coins):
print("游戏结束!")
break
# 绘制背景
screen.blit(background_image, (0, 0))
# 绘制娃娃
screen.blit(doll_image, (doll_x, doll_y))
# 绘制抓爪
screen.blit(claw_image, (claw_x, claw_y))
# 更新屏幕
pygame.display.flip()
在代码中,is_grabbed函数用于判断是否抓取到娃娃。该函数的代码如下:
def is_grabbed(claw_x, claw_y, doll_x, doll_y, prev_claw_x, prev_claw_y):
if claw_x != prev_claw_x or claw_y != prev_claw_y:
if claw_x >= doll_x and claw_x <= doll_x + doll_width and claw_y >= doll_y and claw_y <= doll_y + doll_height:
return True
else:
return False
当娃娃和抓手的距离开始很近的时候就代表夹到娃娃了
这里只是一个很简单的demo,大概逻辑就是移动两个图片,判断位置,再加上一些移动的特效处理,只是提供简单思路,大家可以拿来玩玩哈哈。
最后
点赞关注评论一键三连,每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。