libgdx - 如何从平铺中删除对象?
问题描述
假设我在 Tiled 的对象层中放置了一个对象。编写代码时应该如何将这些对象彼此分开?(示例:我们与硬币的主体相撞,不再需要主体)
解决方案
对于平铺层,只需将单元格设置为空。
//Rectangle tmp = new Rectangle();
if (colideTileLayer.getCell(ix, iy) != null) {
tmp.set(ix * tileWidth, iy * tileHeight, tileWidth, tileHeight);
if (tmp.overlaps(rectangle)) {
colideTileLayer.setCell(ix, iy, null); //THIS IS LINE
GameManager.INSTANCE.incResult();
result = true;
}
}
如果您的障碍物在对象层中定义并在图块层中以视觉方式表示,则根据对象位置重新计算需要擦除的图块。
比从对象层移除对象,使用 remove 方法。
//MapObjects objects = layer.getObjects(); //you read if from object layer
//MapObject object = getColidedObject(); //you need to know what to remove
objects.remove(object); //remove
推荐阅读
- php - 如何与codeigniter一起运行核心php文件
- excel - 检查不同列的必填字段
- python - 使用不带前导零或尾随零的 f 字符串将数字转换为字符串?
- javascript - 过滤模型仅在第 3 个字符处结束并返回空白
- ios - 当应用程序处于活动状态时,iOS 处理推送通知点击
- c# - 使用 API 让用户登录到 spotify
- c# - C# 在服务器-客户端模型中建立客户端-客户端连接
- c++ - constexpr 用于通过引用传入的值
- multithreading - 如果您有内核线程和用户线程的一对一映射,为什么进程不会被阻止,如果它进行系统调用?
- excel-2010 - 计算多列中的唯一值