gpt4 book ai didi

c - 如何将屏幕坐标转换为简单 2D 游戏的世界坐标?

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:21 29 4
gpt4 key购买 nike

我开始使用这个解决方案,但后来我注意到当字符与余数位于同一坐标时它无法正确映射。

首先,我从相机获取可见范围。然后我得到鼠标位置并除以 block 大小,这就是问题所在:我假设在屏幕的开头有一个完整的 block ,但实际上可能有 1/4、2/4 和 3/4一个 block ,同样适用于屏幕的末尾。

如何以最有效的方式正确执行此转换?

typedef struct {
float x, y;
} Point;

Point camera_screen_coord_to_game(Camera *camera, int x, int y)
{
Range range = camera_get_visible(camera, game_clock_ticks());
int block_size = settings_get_block_size();
Point game_coord;

game_coord.x = range.x0 + x / block_size;
game_coord.y = range.y1 - 1 - y / block_size;

return game_coord;
}

最佳答案

会不会是因为x,y,block_size都是int?在除法之前将它们转换为 float ,然后得到小数部分。

关于c - 如何将屏幕坐标转换为简单 2D 游戏的世界坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23236564/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com