private void CreateCratesScene() { // crates of the layer if (this.tiledMap.ObjectLayers.ContainsKey(GameConstants.LAYERBOXPHYSICLAYER)) { var physicLayer = this.tiledMap.ObjectLayers[GameConstants.LAYERBOXPHYSICLAYER]; foreach (var physic in physicLayer.Objects) { var colliderEntity = TiledMapUtils.CollisionEntityFromObject(physic.Name, physic); colliderEntity.Tag = GameConstants.TAGCOLLIDER; colliderEntity.AddComponent(new RigidBody2D()); var collider = colliderEntity.FindComponent <Collider2D>(false); if (collider != null) { collider.CollisionCategories = ColliderCategory2D.Cat4; collider.CollidesWith = ColliderCategory2D.All; collider.Friction = 1.0f; collider.Restitution = 0.4f; } Sprite sprite = new Sprite(WaveContent.Assets.Other.crate_png); SpriteRenderer spriteRenderer = new SpriteRenderer(DefaultLayers.Alpha, AddressMode.PointWrap); colliderEntity.AddComponent(sprite); colliderEntity.AddComponent(spriteRenderer); this.EntityManager.Add(colliderEntity); } } }
private void CreateGemsScene() { // crates of the layer if (this.tiledMap.ObjectLayers.ContainsKey(GameConstants.LAYERBONUS)) { var bonusLayer = this.tiledMap.ObjectLayers[GameConstants.LAYERBONUS]; foreach (var gem in bonusLayer.Objects) { var colliderEntity = TiledMapUtils.CollisionEntityFromObject(gem.Name, gem); colliderEntity.Tag = GameConstants.TAGBONUS; colliderEntity.AddComponent(new RigidBody2D() { PhysicBodyType = RigidBodyType2D.Static }); var collider = colliderEntity.FindComponent <Collider2D>(false); if (collider != null) { collider.IsSensor = true; collider.CollisionCategories = ColliderCategory2D.Cat5; collider.CollidesWith = ColliderCategory2D.All; } Sprite sprite = new Sprite(WaveContent.Assets.Gui.gem_png); SpriteRenderer spriteRenderer = new SpriteRenderer(DefaultLayers.Alpha); colliderEntity.AddComponent(sprite); colliderEntity.AddComponent(spriteRenderer); colliderEntity.AddComponent(new BonusComponent()); this.EntityManager.Add(colliderEntity); } } }
private void AddEnd() { var endLayer = this.tiledMap.ObjectLayers["End"]; var endObj = endLayer.Objects[0]; var endEntity = TiledMapUtils.CollisionEntityFromObject("End", endObj); this.EntityManager.Add(endEntity); }
/// <summary> /// Add traps /// </summary> private void AddTraps() { var collisionLayer = this.tiledMap.ObjectLayers["Traps"]; int i = 0; foreach (var obj in collisionLayer.Objects) { var colliderEntity = TiledMapUtils.CollisionEntityFromObject("trap_" + (i++), obj); colliderEntity.Tag = "trap"; this.EntityManager.Add(colliderEntity); } }
/// <summary> /// Add Collision entities from TMX object layer /// </summary> private void AddSceneColliders() { var collisionLayer = this.tiledMap.ObjectLayers["Collisions"]; int i = 0; foreach (var obj in collisionLayer.Objects) { var colliderEntity = TiledMapUtils.CollisionEntityFromObject("collider_" + (i++), obj); colliderEntity.Tag = "collider"; colliderEntity.AddComponent(new RigidBody2D() { PhysicBodyType = WaveEngine.Common.Physics2D.RigidBodyType2D.Static }); this.EntityManager.Add(colliderEntity); } }
private void CreatePhysicScene() { // invisible slingshot anchor entity this.SlingshotAnchorEntity = new Entity() .AddComponent(new Transform2D() { Position = this.GetAnchorPosition(GameConstants.ANCHORSLINGSHOT), }) .AddComponent(new RigidBody2D() { PhysicBodyType = RigidBodyType2D.Static }); this.EntityManager.Add(this.SlingshotAnchorEntity); // invisible physic ground and walls var physicLayer = this.tiledMap.ObjectLayers[GameConstants.LAYERPHYSIC]; foreach (var physic in physicLayer.Objects) { var colliderEntity = TiledMapUtils.CollisionEntityFromObject(physic.Name, physic); colliderEntity.Tag = GameConstants.TAGCOLLIDER; colliderEntity.AddComponent(new RigidBody2D() { PhysicBodyType = RigidBodyType2D.Static }); var collider = colliderEntity.FindComponent <Collider2D>(false); if (collider != null) { collider.CollisionCategories = ColliderCategory2D.Cat3; collider.CollidesWith = ColliderCategory2D.All; collider.Friction = 1.0f; collider.Restitution = 0.2f; } this.EntityManager.Add(colliderEntity); } }