你好,我现在正在做一个侧面的平台。当我从一个平台跳到另一个平台时,我正经历着一个奇怪的问题,它工作得很好。然而,每当我从一个跳到另一个的底部时,我的角色精灵就会从屏幕上往上飞。我觉得这是因为没有对玩家和平台之间的碰撞进行正确的编程,因为我不知道怎么做。以下是我目前所做的事情:
collide = pygame.sprite.spritecollide(player, platform_list, False)
if collide:
player.rect.y-=1如果有人能为玩家和平台之间的碰撞检测提出更好的方法,请说出来,谢谢。这个bug允许玩家通过我为屏幕的四个角落设置的屏幕边界(第322行和212行),但是通常这些障碍
这是我的完整游戏代码:
http://pastebin.com/cae4u5NR
发布于 2013-10-27 19:20:42
在图形化编程时,y坐标被反转,因此y坐标值在平台下会更高,在平台上会更低。
您当前的代码将将播放器移动到平台内,这将再次激活碰撞,并将其进一步推到平台内。
相反,你应该说:
collide = pygame.sprite.spritecollide(player, platform_list, False)
if collide:
player.rect.y += 1这里要注意的是从"-= 1“改为"+= 1”。
这将使玩家精灵向下移动,而不是上升到平台内。
我也有一个碰撞检测的这例子,我在我自己的面向对象程序中实现了这个方法一次,但是我丢失了我自己的程序。我不记得谁拥有这个程序,因为我很久以前就发现了它,我希望它能帮助你从我说的话中看出一个公平的方法。
https://stackoverflow.com/questions/19620450
复制相似问题