Python 如何为我的PyGame项目定义函数签名?

Python 如何为我的PyGame项目定义函数签名?,python,pygame,Python,Pygame,我正在尝试确定此函数的位置参数(我想这就是它们的名称)fireshell() 我尝试了self和变量elapsedTime、pos.x和pos.y的组合,但没有成功。我试图确定在调用和定义中传递哪些参数 我是编程新手,所以请原谅我缺乏知识 if event.type == pg.KEYUP: if event.key == pg.K_0: self.endTime = time.time() self.end =

我正在尝试确定此函数的位置参数(我想这就是它们的名称)
fireshell()

我尝试了
self
和变量
elapsedTime
pos.x
pos.y
的组合,但没有成功。我试图确定在调用和定义中传递哪些参数

我是编程新手,所以请原谅我缺乏知识

 if event.type == pg.KEYUP:

       if event.key == pg.K_0:
                self.endTime = time.time()
                self.end = timer()
                self.E = pg.time.get_ticks()
                self.elapsedTime = self.endTime - self.startTime
                print("ENDING", self.endTime, self.startTime)
                print("elapsed time", (self.endTime - self.startTime))
                print (self.start, self.end, "difference", (self.end - self.start))
                print ( "E", self.E, "S", self.S)
                print("elapsed time", self.elapsedTime)
                self.player.fireshell( ?, ?, ?, ?)
用火箭弹袭击我
这取决于您实际试图传递给函数的内容。暂时忽略变量,你想用这个函数实现什么?看起来你想发射炮弹。现在,我假设self.pos.x和self.pos.y是你所有的发射物的位置(可能是一辆坦克?或者任何发射物的东西)。所以我认为这将是抛射体路径的起点。台词

fireX = int(self.pos.x) 
fireY = int(self.pos.y) - 30  
b会设置投射物的起点(x与坦克的x相同,在坦克的y上方30像素,听起来像是一个非常标准的起点)。然后,在那之后,你有你的射击循环,它只是沿着它的路径移动射弹。我看到的循环的问题是,循环是无限的。将fire变量初始化为true

fire = True
但你永远不会弄错,所以“whilefire”循环将无限循环。您需要对循环结束的位置设置一个条件,这取决于您。你只需要决定坦克投射物的路径何时结束,当这发生时,将火设为false,循环将结束,继续你的基本游戏功能


至于你需要传递什么。从我所看到的情况来看,似乎您正在使用一个对象来存储数据(从您使用self.pos.x的方式来看),所以我要做的就是将fireshell函数放在这个类中,然后您不需要向函数传递任何内容,您只需在函数本身中使用self.pos.x、self.pox.y和self.passed time,由于函数将与这些变量属于同一类,因此不应存在访问冲突或错误。

您是在问如何将变量传递给函数吗?我想是的。我不知道什么时候该过“自我”和“时间”。两者似乎都不起作用。我想我遗漏了一些关键逻辑。如果你想将
self.elapsedTime
传递给
fireshell
,那么就这样做:
self.player.fireshell(self.elapsedTime)
@MattMacy嘿,伙计,听起来你只是在学习如何工作。听起来,您需要的是遵循编写函数的良好教程。当我刚开始的时候,我跟着他们看他们是如何工作的。我们无法帮助您完成您的功能,因为这完全取决于您。您需要确定需要传入的内容,因为您编写了函数的功能。我相信调用现在正在工作,但我无法将self.fireshell放入定义中。我会在那里放什么?我想把pos.x和pos.y也加入到函数中。对不起,我明白你在说什么,直到要做一个类为止。
fire = True