我目前正在使用python 3.2.3和pygame创建游戏。我正在制作一款与Mario(侧面卷轴)非常相似的游戏;我的游戏涉及到一系列“砖块”,角色需要跳跃并能够与之相撞。我在Photoshop和面具中创建了一个颜色编码级别,以便红色是角色将死的区域,绿色是砖块的颜色,蓝色是地面的颜色。这里是我有问题的代码:游戏Python碰撞问题
guy[y]+=guy[vy] # add current speed to Y
col = mask.get_at((int(guy[x]+662), int(guy[y]+59)))
if col == (0,0,255,255):
guy[y] = 537
guy[vy] = 0
guy[onground] = True
if col == (0,255,0,255):
guy[vy] = 0
guy[onground]=True
elif col == (255,0,0,255):
guy[vy] = 5
guy[onground] = False
if guy[y]+59 >= 720:
lives -= 1
screen.blit(guyPic,(640,guy[y]))
guy[vy]+=.75
当我试图使在砖上(或绿色),他的土地的性质土地,但他开始下沉。他也可以通过砖块走路。我希望角色能够与砖块发生碰撞,这样他就不会从砖块中穿过,但是他能够在不下沉的情况下跳跃并着陆。我知道另一种可能的方法,就是在每个砖的坐标处绘制矩形,但是这种方法效率很低,因为它会代码太多。我非常感谢这个错误的一些帮助,因为我试图在过去两周内解决它。任何帮助表示赞赏。