我正在制作一个2D塔防御游戏。到目前为止,我有一个2d数组,充当我的游戏的网格。我能放置塔,运行敌人和一些拖曳和塔射击的东西。
现在我面临着塔楼布局逻辑上的一个问题。我希望始终有一个可行走的道路,为敌人,这意味着用户不应该能够完全阻断的方式放置塔。例如:如果用户将塔垂直放置在地图上,则该算法必须防止放置将完成垂直线的塔。或以任何其他方式,必须至少有一个自由的(可步行的)空间,以便敌人可以逃跑。
我现在的逻辑在塔台放置的时候向四面八方检查。如果有一个塔向上,它会再次调用相同的功能,在那上面的塔,直到它撞到墙。它返回1的向上墙和5的向下墙,并返回函数(上/下塔),如果有一个塔。以下是代码:
int
我正在写一个MMORPG游戏,我在服务器上遇到了玩家移动的问题。我有一个0.5 x 0.5米单元的2D矩阵,作为玩家的感应图。下面描述了我遇到的问题。如果玩家沿着对角墙或栅栏移动(并且非常接近),他就会被块状地图的几何形状所阻挡。如果栅栏/墙与世界对齐(垂直或水平),则不会发生这种情况。一个显而易见的解决方案是增加玩家的半径,这样他就不能离栅栏太近了,或者可能使单元更小(这将真正完成相同的事情)。但是,有没有人能想到另一种方法?我不能简单地说“嘿,这是对角线,所以我会从一个角到另一个角画一条假想线,并确保玩家不会越过这条线”。这是行不通的,因为正如你在下面看到的,栅栏跑可能会有一些水平或垂直的
请考虑以下代码:
import java.util.Arrays;
public class Test {
static int[] getDiagonal(int[][] a) {
int diagonal[] = new int[a.length];
for (int i = 0; i < a.length; i++) {
diagonal[i] = a[i][i];
}
System.out.println(Arrays.toString(diagonal));
ret
我正在尝试使用MonoGame (使用XNA的框架)为我的大学项目创建一个2D游戏,并且在两个重叠的矩形和玩家的'Hitbox‘矩形之间的碰撞方面遇到了很多麻烦。如果他们沿着一个墙矩形对角线移动,当遇到另一个没有阻碍的垂直墙矩形时,玩家将停止(这不是预期的结果)。 当玩家走进Wall时,player类的CollisionHandler方法被调用,碰撞的矩形以及枚举端( Wall本质上检查冲突的方式)被提供给参数。该方法有一些条件,然后改变球员的位置。这是它的代码: public void CollisionHandler(Rectangle Wall, Side TestSide)
我正在开发一款游戏,我才刚刚开始。我在地图中添加了一个png,并在我希望无法通过的区域周围添加了对撞机(这是一个2D平台)。我有一个敌人已经设计并添加了一个2DRigidBody组件,当它移动时,并开始使用2DBoxColliders作为关卡的对撞器,以及我写的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sexapus : MonoBehaviour {
public static int Velocity = 42;
public Rigid