如何在pygame中保持随机移动的敌人在屏幕内?

时间:2016-05-21 06:40:44

标签: python python-2.7 random pygame

我希望将敌人(我的情况下是红色矩形)保留在矩形内。发生的事情是,因为它是一个随机函数,敌人继续移动。但是我的一些敌人慢慢向外移动,我不想要这是发生的。我希望他们只在屏幕内 我试过减去屏幕宽度和屏幕高度但是我尝试这样做是不成功的。所以基本上我要问的是如何检查矩形是否在屏幕内。

编辑:

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)

提前致谢。

1 个答案:

答案 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。