2 回答
TA贡献1772条经验 获得超8个赞
基本上你想限制玩家的移动。
因此,每次您想“移动”玩家时(我猜这是“x_change”/“y_change”),您都需要检查移动后他们是否仍在您的边界内。
示例:您的显示器 x 边界是屏幕左侧 0 像素,右侧 500 像素。如果运动的结果在我的范围内,我只允许实际运动。
boundary_x_lower = 0
boundary_x_upper = 500
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
if boundary_x_lower < (x_change - 4):
# I allow the movement if I'm still above the lower boundary after the move.
x_change -= 4
elif event.key == pygame.K_RIGHT:
if boundary_x_upper > (x_change +4):
# I allow the movement if I'm still below the upper boundary after the move.
x_change += 4
PS:当你向右移动时,我对你的代码感到困惑......我习惯于2D游戏,如果你向右移动,你会增加玩家的位置......如果你向左移动则减去。
随意调整代码以适合您的项目。基本原理也适用于 y 轴运动:使用 bounding_y_lower 和 _y_upper。如果您还有其他问题,请提问!
添加回答
举报