python射击代码_如何在Python编写的游戏中射击无限子弹?

我的游戏有一个很长的代码,但我会粘贴在重要的部分,即子弹射击部分。游戏本质上是一个致命的Kombat风格的游戏,但有飞行机器人和子弹。在

在游戏循环之前,我首先预定义了子弹和机器人的函数:def robotr(xr,yr):

gameDisplay.blit(robrimg, (xr,yr))

def robotl(xl,yl):

gameDisplay.blit(roblimg, (xl,yl))

def bulletsr(xbr,ybr):

pygame.draw.circle(gameDisplay, THECOLORS[‘orange’],(xbr,ybr), 10)

def bulletsl(xbl,ybl):

pygame.draw.circle(gameDisplay, THECOLORS[‘orange’],(xbl,ybl), 10)

那么移动对象的众多变量:

^{pr2}$

在那之后,代码运行了很长一段时间(大约300-400行),但是在我发射子弹的地方,我有一个类似的事件来表示子弹随着机器人的箭头键移动而”移动”if event.type == pygame.KEYDOWN:

——-PLAYER 1 MOVEMENT——-

OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

if event.key == pygame.K_a:

xr_change = -5

xbr_change = -5 #I have to change the position of the bullet as well so that it doesn’t stay in one place and rather shoots from the robot (duh.)

然后用一个类似的代码发射子弹:#——-FIRE CANNON MK1——-

OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

if event.key == pygame.K_LSHIFT:

bulletsfx=pygame.mixer.Sound (‘boomchickchickmp3.ogg’)

bulletsfx.play()

bulletsfx.set_volume(0.2)

xbl_change = 5

if xbl_change == 5:

bulletsl(xbl,ybl)

xbl=xl

当然,我为右边的机器人定义了多次这样的代码。在

在我的程序快结束时(这是我的结尾的简短形式,因为我有额外的变量,所以事情不会从屏幕上掉下来,但现在可以忽略它)我有一个这样的代码,这样我可以将更改重新定义回”0″,以便可以重用这些移动,等等:if event.type == pygame.KEYUP:

Player 1 events

if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT or event.key == pygame.K_UP or event.key == pygame.K_DOWN or event.key == pygame.K_RCTRL or event.key == pygame.K_DELETE: #or event.key == pygame.K_RSHIFT:

xr_change = 0

yr_change = 0

xbr_change= 0

ybr_change= 0

Player 2 events

if event.key == pygame.K_a or event.key == pygame.K_d or event.key == pygame.K_w or event.key == pygame.K_s or event.key == pygame.K_LCTRL or event.key == pygame.K_f: #or event.key == pygame.K_LSHIFT:

xl_change = 0

yl_change = 0

xbl_change= 0

ybl_change= 0

xr += xr_change

yr += yr_change

xl += xl_change

yl += yl_change

xbr += xbr_change

ybr += ybr_change

xbl += xbl_change

ybl += ybl_change

bulletsr(xbr,ybr)

bulletsl(xbl,ybl)

robotr(xr,yr)

robotl(xl,yl)

pygame.display.update()

clock.tick(320)

现在我的问题是,当我发射子弹时,它会发射,但我只能发射一次,直到它从我的程序屏幕上消失(没关系,我做了它,所以一旦它离开屏幕,它就会返回给机器人)。否则,如果我继续按键射击,它只会将子弹坐标返回到它原来应该的位置(就像在我射击时,如果我再射击,我可以看到子弹消失回到原来的位置)。在

没有无限多的项目符号,我想知道如何修改函数和一些变量(可能)使之发生。在

Original: https://blog.csdn.net/weixin_34651473/article/details/113512159
Author: 郑小武
Title: python射击代码_如何在Python编写的游戏中射击无限子弹?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/781450/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【无标题】

    【数据分析】——pandas 一、生成pandas生成pandas 作用pd.Series() 生成pandas,一维数组pd.DataFrame() 生成pandas,二维的,有…

    Python 2023年8月16日
    041
  • 【深度学习8】Pytorch使用及使用小案例

    文章目录 * – 八、PyTorch – + 8.1 相关定义 + * 1 张量Tensor * 2 Variable + 8.2 激活函数 + 8.3 损…

    Python 2023年8月25日
    035
  • Thrift RPC改进—更加准确的超时管理

    前言: 之前我们组内部使用Thrift搭建了一个小型的RPC框架,具体的实现细节可以参考我之前的一篇技术文章:https://www.cnblogs.com/kaiblog/p/9…

    Python 2023年10月22日
    036
  • nydusd 源码理解(一)

    ”尝试通过 nydus[1] 源码理解工作流程。可能由于代码变动导致和本文记录的内容有出入。 环境准备 git clone https://github.com/dra…

    Python 2023年10月14日
    052
  • pandas 数据分组

    学习目标 应用groupby 进行分组,并对分组数据进行聚合,转换和过滤 应用自定义函数处理分组之后的数据 1 aggregate聚合 在SQL中我们经常使用 GROUP BY 将…

    Python 2023年8月17日
    054
  • Django笔记六之外键ForeignKey介绍

    这一篇笔记介绍 Django 系统 model 的外键处理,ForeignKey 以及相应的处理方法。 这是一种一对多的字段类型,表示两张表之间的关联关系。 本篇笔记的目录如下: …

    Python 2023年8月3日
    045
  • 电池图表 – 可视化使用率等

    介绍 一段时间以来,我一直在创建常见的可视化效果,例如散点图、条形图、蜂群等,并考虑做一些不同的事情。因为我是一个狂热的足球迷,所以我想到了代表球员在一段时间内(一个赛季,几个赛季…

    Python 2023年9月2日
    061
  • envoy开发调试环境搭建

    前段时间研究envoy的filter开发,在windows机器环境上面折腾了会,这里记录一下,希望能够帮助到大家少走一些坑 主要是使用vscode devContainer的方式来…

    Python 2023年10月18日
    0119
  • vpython 贞测碰撞_[PyGame]碰撞检测

    PyGame 1.7在pygame.sprite里为碰撞检测提供了三个函数: spritecollide(sprite, group, dokill) sprite - pygam…

    Python 2023年9月24日
    053
  • Qt–无边框窗口完美(FrameLess)实现,包含缩放和移动功能重写。

    前言 Qt原本的窗口虽然可以通过QSS样式进行美化,但是只是对客户区有用,对于客户区是无效的。所以想做出一个比较好看的程序,还得自己重写实现无边框窗口。 Qt实现无边框其实一句代码…

    Python 2023年10月16日
    069
  • 解决python画图中文不显示问题

    python画图,如果用英文显示基本没有问题,但是中文可能会有乱码或者不显示的情况。 经过个人的测试,下图中”横轴”,”纵轴”字样的…

    Python 2023年9月5日
    087
  • python的pygame库使用方法_[宜配屋]听图阁

    使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球。 因为…

    Python 2023年9月23日
    067
  • HTML实现除夕最美烟花,2023春节倒计时,新年不可没有烟花,最炫烟花代码分享

    📋 前言 🖱 博客主页:在下马农的碎碎念 ✍ 本文由在下马农原创,首发于CSDN 📆 首发时间:2023/01/17 📅 最近更新时间:2023/01/17 🤵 此马非凡马,房星本…

    Python 2023年11月5日
    074
  • Python:range、np.arange和np.linspace的区别与联系

    1. range range是python内置的一个 类,该类型表示一个不可改变(immutable)的数字序列,常常用于在 for循环中迭代一组特殊的数,它的原型可以近似表示如下…

    Python 2023年10月28日
    055
  • JDK中内嵌JS引擎介绍及使用

    比如说某些在线小说阅读网站,会加上相应的广告,从而影响用户阅读体验,于是阅读这个APP就是做了类似净化阅读体验 但是小说阅读网站千千万万,如果去适配每个小说阅读网站,岂不是累死,且…

    Python 2023年10月13日
    050
  • 爬虫框架scrapy

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年10月5日
    046
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球