public override void VisitMissile(Missile m, Vector2 _point) { reactionToWall(this, m, _point); }
private void reactionToBomb(Missile m, Bomb b, Vector2 _point) { BombManager.Instance().removeBomb(b, b.spriteRef.pos, b.spriteRef.color); GameObjManager.Instance().remove(batchEnum.missiles, m); PlayerManager.Instance().getPlayer(m.owner).increaseNumMissiles(); }
public override void VisitMissile(Missile m, Vector2 _point) { reactionToBomb(m, this, _point); }
private void reactionToShip(Ship s, Missile m, Vector2 _point) { if (s.type == GameObjType.p1ship && m.type == GameObjType.p2missiles) { GameObjManager.Instance().addExplosion(s.spriteRef.pos, s.spriteRef.color); GameObjManager.Instance().remove(batchEnum.ships, s); GameObjManager.Instance().remove(batchEnum.missiles, m); hit(PlayerID.one); ScoreManager.Instance().p2Kill(); playMissileHitSound(); playShipHitSound(); PlayerManager.Instance().getPlayer(m.owner).increaseNumMissiles(); } else if (s.type == GameObjType.p2ship && m.type == GameObjType.p1missiles) { GameObjManager.Instance().addExplosion(s.spriteRef.pos, s.spriteRef.color); GameObjManager.Instance().remove(batchEnum.ships, s); GameObjManager.Instance().remove(batchEnum.missiles, m); hit(PlayerID.two); ScoreManager.Instance().p1Kill(); playMissileHitSound(); playShipHitSound(); PlayerManager.Instance().getPlayer(m.owner).increaseNumMissiles(); } else { } }
public override void VisitMissile(Missile m, Vector2 _point) { reactionToShip(this, m, _point); }
private void reactionToWall(Wall w, Missile m, Vector2 _point) { // Vector2 pos = m.physicsObj.body.GetWorldPoint(_man.LocalPoint); Vector2 pos = _point; GameObjManager.Instance().addExplosion(pos, m.spriteRef.color); GameObjManager.Instance().remove(batchEnum.missiles, m); playFenceHit(); PlayerManager.Instance().getPlayer(m.owner).increaseNumMissiles(); hit(); }
public virtual void VisitMissile(Missile m, Vector2 _point) { }
private void reactionToMissile(Missile m1, Missile m2, Vector2 _point) { // Vector2 pos = m1.physicsObj.body.GetWorldPoint(_man.LocalPoint); if (m1.owner != m2.owner) { Vector2 pos = _point; GameObjManager.Instance().addExplosion(pos, m1.spriteRef.color); GameObjManager.Instance().remove(batchEnum.missiles, m1); GameObjManager.Instance().remove(batchEnum.missiles, m2); PlayerManager.Instance().getPlayer(m1.owner).increaseNumMissiles(); PlayerManager.Instance().getPlayer(m2.owner).increaseNumMissiles(); playMissileHitSound(); } }
public void createMissile() { if (state == PlayerState.alive && missileAvailable()) { Ship pShip = playerShip; Body pShipBody = pShip.physicsObj.body; Sprite missileSprite = (Sprite)DisplayManager.Instance().getDisplayObj(SpriteEnum.Missile); Sprite_Proxy proxyMissile = new Sprite_Proxy(missileSprite, (int)pShip.spriteRef.pos.X, (int)pShip.spriteRef.pos.Y, 0.5f, pShip.spriteRef.color); Missile missile = new Missile(missileType, proxyMissile, id); SBNode missileBatch = SpriteBatchManager.Instance().getBatch(batchEnum.missiles); missileBatch.addDisplayObject(proxyMissile); World world = Game1.GameInstance.getWorld(); var missileShape = new PolygonShape(); missileShape.SetAsBox(3, 3); var fd = new FixtureDef(); fd.shape = missileShape; fd.restitution = 0.0f; fd.friction = 0.0f; fd.density = 0.0001f; fd.userData = missile; // Grab ship orientation vector Vector2 direction = new Vector2((float)(Math.Cos(pShipBody.GetAngle())), (float)(Math.Sin(pShipBody.GetAngle()))); direction.Normalize(); BodyDef bd = new BodyDef(); bd.fixedRotation = true; bd.type = BodyType.Dynamic; bd.position = (new Vector2(pShip.spriteRef.pos.X, pShip.spriteRef.pos.Y)) + (direction * 10); var body = world.CreateBody(bd); body.SetBullet(true); body.Rotation = pShipBody.Rotation; body.CreateFixture(fd); body.SetUserData(missile); direction *= 1000; body.ApplyLinearImpulse(direction, body.GetWorldCenter()); GameObjManager.Instance().addGameObj(missile); PhysicsMan.Instance().addPhysicsObj(missile, body); if (numMissiles < maxNumMissiles) numMissiles++; } }
public void createMissile() { OutputQueue p = new OutputQueue(); Ship pShip = playerShip; Body pShipBody = pShip.physicsObj.body; Sprite missileSprite = (Sprite)DisplayManager.Instance().getDisplayObj(SpriteEnum.Missile); Sprite_Proxy proxyMissile = new Sprite_Proxy(missileSprite, (int)pShip.spriteRef.pos.X, (int)pShip.spriteRef.pos.Y, 0.5f, pShip.spriteRef.color); Missile missile = new Missile(missileType, proxyMissile, id); SBNode missileBatch = SpriteBatchManager.Instance().getBatch(batchEnum.missiles); missileBatch.addDisplayObject(proxyMissile); World world = Game1.GameInstance.getWorld(); var missileShape = new PolygonShape(); missileShape.SetAsBox(3, 3); var fd = new FixtureDef(); fd.shape = missileShape; fd.restitution = 0.0f; fd.friction = 0.0f; fd.density = 0.0001f; fd.userData = missile; // Grab ship orientation vector Vector2 direction = new Vector2((float)(Math.Cos(pShipBody.GetAngle())), (float)(Math.Sin(pShipBody.GetAngle()))); direction.Normalize(); BodyDef bd = new BodyDef(); bd.fixedRotation = true; bd.type = BodyType.Dynamic; bd.position = (new Vector2(pShip.spriteRef.pos.X, pShip.spriteRef.pos.Y)) + (direction * 10); var body = world.CreateBody(bd); body.SetBullet(true); body.Rotation = pShipBody.Rotation; body.CreateFixture(fd); body.SetUserData(missile); direction *= 1000; body.ApplyLinearImpulse(direction, body.GetWorldCenter()); GameObjManager.Instance().addGameObj(missile); PhysicsMan.Instance().addPhysicsObj(missile, body); OutQueue.add(QueueType.missile, missile, this.id); //p.pushToNetwork(); if (numMissiles > 0) { numMissiles--; } }