如何限制角色在游戏中的移动范围?

2024-05-17 00:30:04 发布

您现在位置:Python中文网/ 问答频道 /正文

所以在我的编程课上,我和我的项目合作伙伴正在尝试制作一个游戏,你可以用wasd在迷宫中移动角色。这是一个自顶向下的类型视图。(旁注,我们正在制作背景是整个迷宫的地方,当角色到达屏幕的一侧时,我们只需移动背景。但是屏幕上有多个墙。)所以我想出了当角色到达屏幕边缘时,如何让角色停止移动,背景开始移动(直到需要的停止位置),但是当他们再次按下键移动时,角色就离开了屏幕。我知道我可以用一个木板来解决这个问题,但我不知道如何阻止角色穿过墙壁,因为所有的墙壁都只是背景图像上的线条。我可以让角色在他们到达墙的时候停止移动,但是一旦角色停止移动,如果用户按下键再次走向墙,他们仍然可以行走。在

(旁注,所有字符和背景图像都使用变量移动,例如x_位置和y位置以及x_change和y_change) 我想让代码停止字符变成 基于主图像位置的字符位置 而不是==或某种while循环,但我认为这会导致字符缓慢向前移动。在

我会贴出我们的代码示例,但我们的迷宫/背景还没有完成,所以我不知道寄宿者确切会在哪里,或者背景图像的位置。AKA我没有例子,因为我们还没有实际编码这部分程序,我正在计划如何编码。在

    if (background_x <= (certain point) and background_x >= (certain point)) and (background_y >= (certain position) and background_y <= (certain position)):
        if main_char_x == (wall position):
            main_char_x_change = 0

^^^我思维过程的快速例子

如果我有什么需要澄清的请尽管问。在

我们使用的是pygame和PyCharm Edu 3.5


Tags: and代码图像角色编码屏幕positionchange
1条回答
网友
1楼 · 发布于 2024-05-17 00:30:04

在渲染之前,只要将位置重置为线之前,每次它穿过线。像这样:

if char_x >= background_line_x:
   char_x = background_line_x - 1

对所有4个边界重复上述步骤,你就完成了

相关问题 更多 >