在等距视图中设置游戏边界有问题吗?

2024-04-24 20:35:02 发布

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

我试图写一个游戏在等轴测视图,但我不知道如何设置适当的边界,以阻止球员离开董事会。棋盘的形状像棋盘。你知道吗

if keys[K_LEFT] and guyX > 50: #guyX is the player's x cord
        guyX -= 10
if keys[K_RIGHT] and guyX < 1010:
        guyX += 10
if keys[K_DOWN] and guyY < 680: #guyY is the player's y cord
        guyY += 10
if keys[K_UP] and guyY > 200:
        guyY -= 10

我的棋盘从50440到530200再到1010440再到530680 我想阻止我的玩家离开棋盘,我可以在我的代码上设置什么其他限制来阻止玩家这样做?你知道吗


Tags: andthe视图游戏棋盘ifis玩家
1条回答
网友
1楼 · 发布于 2024-04-24 20:35:02

正如Jongware所说,在游戏板坐标上工作,并从这些坐标转换为屏幕坐标,将变得容易得多。你知道吗

如果你的游戏板是从0到8在x方向和从0到8在y方向你会想要一个像这样的变换

screen_x = screen_x0 + u_x * game_x + v_x * game_y
screen_y = screen_y0 + u_y * game_x + v_y * game_y

对你来说

screen_x0 = 50
screen_y0 = 440
u_x = (530 - 50) / 8
u_y = (200 - 200) / 8
v_x = (1010 - 530) / 8
v_y = (440 - 200) / 8

重新协调比赛

det = u_x * v_y - u_y * v_x
x1 = screen_x - screen_x0
y1 = screen_y - screen_y0
game_x = 8 / det * (  v_y * x1 - v_x * y1 )
game_y = 8 / det * ( -u_y * x1 + u_x * y1 )

然后您可以简单地测试game\u x>;=0、game\u x<;8、game\u y>;=0、game\u y<;8,以确定位置是否在板上。你知道吗

有关更有效的方法,请参见Isometric graphics in video games and pixel art。你知道吗

相关问题 更多 >