私はmonogameとnezでplatformerゲームを作っています。私はタイルマップエディタを使ってマップを作成しました。そして、プレイヤーが衝突した場合、それらは緩やかな生活をします。私はスパイクの周りにボックスコライダーを設定し、プレーヤーはボックスコライダーを持っていますが、プレーヤーがスパイクの周りのコライダーに達すると、それはちょうど通過し、衝突は起こりません。私は、例えば、if(playercollider.collidesWith(spikecollider, out collisionresult)
のようなnezの衝突チェックメソッドを使用して、衝突が発生しても何も表示されないかどうかを確認するためにデバッグを追加しました。私はどんな助けにも感謝します。Monogame Nez衝突検出
これは私のコードです:
class Scene1 : Scene
{
TiledMap tiledMap;
public override void initialize()
{
addRenderer(new DefaultRenderer());
//setDesignResolution(800, 480, Scene.SceneResolutionPolicy.ShowAllPixelPerfect);
Screen.setSize(800 * 2, 480 * 2);
tiledMap = content.Load<TiledMap>("scene_01");
var objectLayer = tiledMap.getObjectGroup("entities");
var playerSpawn = objectLayer.objectWithName("Player Spawn");
var spikesPos = objectLayer.objectWithName("spike");
var tiledEntity = createEntity("tiled map");
tiledEntity.addComponent(new TiledMapComponent(tiledMap, "collisions"));
var deadly = tiledMap.getLayer("deadly");
var spikes = createEntity("spikes");
spikes.setPosition(spikesPos.x, spikesPos.y);
var spikeCollider = spikes.addComponent(new BoxCollider(2, 4, 110, 24));
//spikes.addComponent(new TriggerListener());
//spikes.addComponent(new ProjectileMover());
// setup our camera bounds with a 1 tile border around the edges (for the outside collision tiles)
tiledEntity.addComponent(new CameraBounds(new Vector2(-tiledMap.width * 6, -tiledMap.height), new Vector2(tiledMap.width * (tiledMap.tileWidth + 6), tiledMap.tileHeight * (tiledMap.height + 2.4f))));
var player = createEntity("player");
player.setPosition(playerSpawn.x, playerSpawn.y);
player.addComponent(new PlayerController());
player.addComponent(new TiledMapMover(tiledMap.getLayer<TiledTileLayer>("collisions")));
player.addComponent(new PlayerDamageDetector());
var playerCollider = player.addComponent(new BoxCollider(-18,6, 32, 32));
CollisionResult result;
var playerhealth = player.getComponent<PlayerController>().health;
if (playerCollider.collidesWith(spikeCollider, out result))
{
playerhealth--;
Debug.log("Collision: {0}", result);
}
// add a component to have the Camera follow the player
camera.entity.addComponent(new FollowCamera(player));
}
}
何が起こっているのかを理解するにはここをクリックするコードがあまりにも少ないので、詳しい情報を提供してください。 – Steven