python血条游戏代码_手把手Python和pygame游戏开发教程(二)

本文介绍了如何使用Python的pygame库为小兔子添加射箭动作,详细阐述了从加载箭的图像,响应鼠标点击事件,到绘制和更新射出的箭的过程。此外,还讲解了如何生成随机移动的鼹鼠作为敌人,以及添加血条、计时器、胜利或失败的判断条件,使得游戏更加完整和有趣。最后,还提及了如何添加音效以增强游戏体验。
摘要由CSDN通过智能技术生成

欢迎,来自IP地址为:114.99.15.226 的朋友

前面教程第一部分已经成了小兔子的正确移动和转向,现在需要给它添加更多的动作以进行游戏的进一步开发。

让小兔子可以射箭

你的小兔子可以正确移动后,现在就可为它增加一些新动作了。给它增加一个射箭的动作如何呢?这个步骤实现起来有一点点复杂,因为你要跟踪每一枝射出去的箭,随时更新、旋转箭的状,并在箭离开游戏屏幕后删除它。

在程序的#2部分初始化参数程序中增加如下必要的变量。

acc=[0,0]

arrows=[]

第一个变更跟踪玩家的精准度,第二个变量跟踪所有的箭。精准度变量本质上是射击次数和命中次数的列表,稍后,我们根据这些信息来计算命中率。

在#3程序段加入如下代码以加载箭的图像:

arrow = pygame.image.load (“resources/images/bullet.png”)

当用户单击鼠标时,会触发pygame的MOUSEBUTTONDOWN事件。在#8中增加如下代码以进行事件处理。

position=pygame.mouse.get_pos()

acc[1]+=1

arrows.append([math.atan2(position[1]-(playerpos1[1]+32),position[0]-(playerpos1[0]+26)),playerpos1[0]+32,playerpos1[1]+32])

这段代码检测是否有鼠标点击事件,如果点击了,会首先取得鼠标所在的位置,并在命中列表中的射出箭的数值增加1。最后根据鼠标位置来计算箭图片需要的旋转角度值,并将此值增加到前面定义的箭列表中。

将如下代码添加到#6.1后面,用于在屏幕上可以正确显示箭。

# 6.2 - Draw arrows

for bullet in arrows:

index=0

velx=math.cos(bullet[0])*10

vely=math.sin(bullet[0])*10

bullet[1]+=velx

bullet[2]+=vely

if bullet[1]640 or bullet[2]480:

arrows.pop(index)

index+=1

for projectile in arrows:

arrow1 = pygame.transform.rotate(arrow, 360-projectile[0]*57.29)

screen.blit(arrow1, (projectile[1], projectile[2]))

其中vely和velx值是通过基本的三角函数计算得来,数值10是箭的行进速度。”if”语句是检测”子弹”是否出界,如果有,则删除这支箭。之后的”for”循环是正确的绘制出这些箭并进行正确的旋转。

现在运行程序,点击鼠标,你就可以得到一个会射箭的兔子了,正如图4所示:

图4

拿起武器,对付鼹鼠

当你有城堡和可以移动和射击的英雄,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值