我希望将敌人(我的情况下是红色矩形)保留在矩形内。发生的事情是,因为它是一个随机函数,敌人继续移动。但是我的一些敌人慢慢向外移动,我不想要这是发生的。我希望他们只在屏幕内 我试过减去屏幕宽度和屏幕高度但是我尝试这样做是不成功的。所以基本上我要问的是如何检查矩形是否在屏幕内。
This不是可能的重复,因为我的敌人正在随机移动。因为玩家是由用户控制而我的程序,敌人的移动是完全随机的。
这是我对敌人的随机动作:
def evilMove(evilGuy):
evilCoords = []
#Returns either -1, 0 or 1
randomMovex=random.randrange(-1,2)
randomMovey=random.randrange(-1,2)
evilMake={'x':evilGuy[0]['x']+randomMovex,'y':evilGuy[0]['y']+randomMovey}
del evilGuy[-1] #Delete the previous spawn of enemy so there is no trail
evilCoords.append(evilMake['x']) #Adds x coordinate
evilCoords.append(evilMake['y']) #Adds y coordinate
deadZones.append(evilCoords) #Adds the enemy coordinates in the list
evilGuy.insert(0,evilMake)
提前致谢。
答案 0 :(得分:0)
好吧,你应该真正看看与此类似的其他问题,但你可以制作一个if语句来测试它是否在屏幕之外。 让我们说你的屏幕是500乘500,你会这样做,
if coordinatesx < 500:
do this and that
if coordinatesy < 500:
do this and that.
这将检查你的坏人的坐标是否被屏幕检查,说明坏人坐标是否不大于屏幕,然后做你需要做的事。
编辑_________________________________________
def evilMove(evilGuy):
evilCoords = []
#Returns either -1, 0 or 1
if x < 500 and y < 500:
randomMovex=random.randrange(-1,2)
randomMovey=random.randrange(-1,2)
evilMake={'x':evilGuy[0]['x']+randomMovex,'y':evilGuy[0]['y']+randomMovey}
我不确定你的x和y变量是什么,只需用它替换它。并用您的屏幕宽度替换500。