我正在用pygame设计一个篮球模拟器。你知道吗
我需要它的工作,这样如果前面的空间在一队球员是明确的,他将走向篮圈,如果没有,他将试图通过上述障碍与预先确定的机会,成功越过防守。你知道吗
我第一次遇到问题是因为我使用进攻球员x坐标,简单地将防守移动到(x+30),如下所示:
for i in range(numPlayers):
if possesion == ("team1"):
myGame1.team2players[i].x = (myGame1.team1players[i].x + 30)
myGame1.team2players[i].y = myGame1.team1players[i].y
然而,这引发了一个问题,因为尽管它起作用了,但在游戏的每个循环中,防守移动(x改变)的时间都很短,进攻方会认为这是“完全开放的”:
for i in range(numPlayers):
if theBall.holder == myGame1.team2players[i] and myGame1.team1players[i].x != range(0,int(theBall.holder.x)):
print("Wide")
else:
print("Nope")
现在我已经修改了我的代码,让球员只有在没有障碍物的情况下才移动,这确实有效,但一旦他遇到防守,他就不会继续移动(即使我把他越过障碍物的几率设为100%)。。。你知道吗
for i in range(numPlayers):
if (theBall.holder == myGame1.team2players[i] and myGame1.team1players[i].x <= theBall.holder.x) or (theBall.holder == myGame1.team1players[i] and myGame1.team2players[i].x > theBall.holder.x):
onballmove = Player.move(theBall.holder)
else:
cross = random.choices((True, False), [1,0])
if cross == (True):
onballmove = Player.move(theBall.holder)
有没有更有效的方法来解决这个问题?你知道吗
请注意:
下面是一张代码的图片完整的代码运行显示(myGame1.team2players[i]是第2队的每个球员;第2队总是在球场右侧的球队(红色的“骑士”):
这是游戏的截图。红色是上面第二队的。代码应该对此有意义。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐