PyGame Player和Ball Position没有出现在同一个位置

时间:2014-09-07 17:29:30

标签: python pygame

PyGame播放器和球位置

您好,我正在使用PyGame编写一款小游戏,但是,如果球触及了玩家(两者都堆叠在同一位置),我试图设置游戏结束状态。到目前为止我已经创建了玩家图像也使用pygame.draw.circle函数绘制球也强制在游戏开始时将球和玩家对象的静态位置设置为posx = 320,posy = 240,以激活检查游戏是否失败功能(检查球和球员是否有相同的位置)。

我面临的问题是球和球员的打印位置功能打印它们在同一位置,但显然在游戏窗口中它们不是。看这里http://i.stack.imgur.com/BwNqb.jpg(图片链接,抱歉我不能直接粘贴它,因为声誉很低)

(' Player Pos',(320,240)) (' Ball Pos',(320,240))

是否有人可以解释其原因,也是维持它的方法?

1 个答案:

答案 0 :(得分:0)

实际上它们位于相同位置,当您绘制图像时,点(320,240)是图像的左上角像素,这意味着如果您在(0,0)上绘制图像,您将在屏幕的左上方看到它。

使用pygame.draw.circle绘制圆时,指定的点将成为圆的中心。如果您使用图像绘制球,它们将出现在相同的位置,如果您想在英雄的中心绘制圆圈(如图所示),您可以将其绘制(320 +(player.width / 2) ,240 +(player.height / 2)。

同样关于GameOver的条件,我不知道我是否理解正确,通常如果你想让球员在接触球时输掉Collision detection,当球员和球独立移动时超级马里奥(截图看起来像一个超级马里奥克隆,所以我认为)并且玩家和球都不可能到达相同的位置,你应该检查他们是否触摸。

我强烈建议从pygame的圆形功能更改为图像绘制,如果你想要更好的图形它会更容易,当你使用碰撞时它在CPU上更便宜