编程 地图 游戏 已知一个大正方形由纵横相挨的(5*5=)25个小正方形组成,每个小正方形的边长为l,在平面坐标中的位置已经确定.现在有个半径为r(r
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 23:07:47
编程 地图 游戏 已知一个大正方形由纵横相挨的(5*5=)25个小正方形组成,每个小正方形的边长为l,在平面坐标中的位置已经确定.现在有个半径为r(r
编程 地图 游戏
已知一个大正方形由纵横相挨的(5*5=)25个小正方形组成,每个小正方形的边长为l,在平面坐标中的位置已经确定.现在有个半径为r(r
编程 地图 游戏 已知一个大正方形由纵横相挨的(5*5=)25个小正方形组成,每个小正方形的边长为l,在平面坐标中的位置已经确定.现在有个半径为r(r
反过来想 你给出的地图是一张简单矩阵 也就可以用一个二维数组来表示
int[,] map = new int[Width,Height];
initMap(map);这个方法你应该会写的 初始化地图
如果每个点的大小是5*5的话
玩家 Player p1 = new Player();
p1.Location = new Point(10 , 5 );
第二个图可以理解为p1在地图上的座标为:(x :10, y : 5)
也就是在长度为5*5 座标为 ( x / 5, y / 5)的矩形里
而x/5 , y/5 正是map第二行第三列的下标 map[x/5, y/5]
当然我只是举例子 大概的意思是把地图当成一个二维数组,玩家移动得记录座标 用座标的X和Y分别除以每个格的W和H就能得到当前玩家所在的地图位置
因为玩家和地图格是有大小的 所以x/5不一定得整数 所以如果x取模5有余 座标就要+1 y也同理
不知道你是用什么语言 我只懂C# 在C#xna中有物理模型的概念 physicalObject是会有hitTest的方法的 而在C#中也有类似的简单办法去做这种事 例如: Rantangle.Contains(坐标,形状)
拿你的思路来算的话 你也没有正确理解我的意思
我的想法是 不可以圆每次移动都和所有的坐标进行比较 最可行的办法是由圆的当前位置来算出它在哪几个圆里 而不是写一个圆和方形是否相切的方法 然后然后每个方形和圆进行比较. 我整理一下思路再给你发怎么算吧 我也没仔细考虑过怎么用代码实现