Xna防止玩家重叠地图的部分

本文关键字:地图 重叠 玩家 Xna | 更新日期: 2023-09-27 18:13:09

我有一个想法,在我的游戏中有3层地图,第一层是地面,第二层是道路/草地等,第三层是不可通过的物体,如墙壁/建筑/湖泊/河流/树木。我这样做是为了让玩家处于屏幕中间的中心位置,而地图各层的移动方向与玩家想要移动的方向相反。我在想我会有不同的层,如果playerModel重叠,无论什么地方绘制在不可逾越层,然后playerModel会移回来。然而,由于我是xna的新手,我不知道如何让游戏认识到playerModel在impassableLayer上重叠了不可通过的对象。impassableLayer显然只在其上绘制对象,并且在没有对象的地方为空。因此我不能直接说:

if (playerModel.X > impassableLayer.X)
{
   impassableLayer.X++;
}

因为这总是正确的。

是否有一种方法来判断一个对象是否重叠了一个层?

Xna防止玩家重叠地图的部分

我相信你正在寻找的是碰撞检测。你想要防止物体穿过彼此。它不像你的想法那么简单。真正的碰撞检测将需要大量的工作,但有大量的教程。

  • 每像素碰撞的Youtube教程
  • MSDN上的逐像素冲突
  • 边界框碰撞

你可以在这个网站或者谷歌上搜索,那里有很多这方面的资源