2016-12-12 25 views
0

我改变了我的代码,并无数次地测试无效。把它放到上下文中,我试图在Python游戏中展示一个健康栏(在Processing上开发),并且我有五个消耗健康的图像。图像加载非常好。我想知道是否有可能有以下情况发生,其中onCollision()是当两个队员发生冲突:方法发生时的显示图像

def healthbar(self): 
     if self.onCollision(): 
      image(self.health,30,500,200,25,0,25,200,50) 

我也试过有布尔逻辑onCollision()当它是True后,接下来这样的:

def healthbar(self): 
     if self.hitLogic==True: 
      image(self.health,30,500,200,25,0,25,200,50) 

当然我在类的初始化器中定义了self.hitLogic=False

我的问题是,如果有可能在Python加载的图像,如果布尔值为true或方法时发生。

旁注:我没有使用pygame。

编辑:加载图像精细独立,但是当我打电话if self.onCollision()if self.hitLogic==True不加载。这是我的问题。

回答

1

是的。可以在由draw()调用的任何函数中加载Processing.py中的image()。当draw()循环完成其循环时,图像将与所有其他绘图命令一起出现。

你的问题不是Python的结构性限制 - 请记住Processing.py使用Jython,所以你的Python代码在运行之前变成Java!

您可以调试这样的问题:

if(True); 
    image(self.health ... ) 

如果它不工作,你的变量没有设置或你的方法是不是在通话时返回true,你需要调试你没有分享的代码。如需进一步的帮助,请用MCVE更新您的问题,以证明问题。

+0

参数6-9'剪切'图像,使'0,25'为x1,y1和'200,50'为x2,y2。在一幅图像中,我有5个健康酒吧彼此相邻放置,所以我不需要创建5个不同的耗尽健康酒吧的图像。正如我所说,图像独立加载,但不加载时,我调用'如果self.onCollision()'或'如果self.hitLogic == True'。这是我的问题。 –

+1

正如我所说,这是可能的。没有看到你的代码,没有办法找到你的错误。但是,请尝试编写'if(True);图像(self.health ...)'。怎么了?如果它不起作用,您的图像调用不起作用。如果它确实起作用,那么你的变量没有设置,或者你的方法在调用时没有返回True,并且你需要调试你没有共享的代码 - 它与Python的结构没有任何关系,或者作为语言进行处理。 – JeremyDouglass

+0

'如果(真)'确实为图像的不同'切割'工作。感谢您的放心评论 - 我真的认为这是Python结构的一个问题。现在我将尝试进一步调试,并希望它能够正常工作。 –