コード例 #1
0
 public void RemoveObject(ParticularObject particularObject)
 {
     lock (particularObjects){
         for (int id = 0; id < particularObjects.Count; id++)
         {
             ParticularObject obj = particularObjects[id];
             if (obj == particularObject)
             {
                 particularObjects.RemoveAt(id);
             }
         }
     }
 }
コード例 #2
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            setPosX(getPosX() + getSpeedX());
            setPosY(getPosY() + getSpeedY());
            ParticularObject obj = getGameWorld().particularObjectManager.getCollisionWidthEnemyObject(this);

            if (obj != null && obj.getState() == MainState.ALIVE)
            {
                setBlood(0);
                obj.beHurt(getDamage());
            }
        }
コード例 #3
0
        //@Override
        public override void UpdateObjects(GameTime gameTime)
        {
            base.UpdateObjects(gameTime);
            lock (particularObjects){
                for (int id = 0; id < particularObjects.Count; id++)
                {
                    ParticularObject obj = particularObjects[id];

                    if (obj.isObjectOutOfCameraView() || obj.getState() == GameObject.MainState.DEATH)
                    {
                        particularObjects.RemoveAt(id);
                        //System.out.println("Remove");
                    }
                }
            }
        }
コード例 #4
0
        public ParticularObject getCollisionWidthEnemyObject(ParticularObject obj)
        {
            lock (particularObjects){
                for (int id = 0; id < particularObjects.Count; id++)
                {
                    ParticularObject objectInList = particularObjects[id];

                    if (obj.getTeamType() != objectInList.getTeamType() &&
                        obj.getBoundForCollisionWithEnemy().IntersectsWith(objectInList.getBoundForCollisionWithEnemy()))
                    {
                        return(objectInList);
                    }
                }
            }
            return(null);
        }
コード例 #5
0
ファイル: BlueFire.cs プロジェクト: minhduc-1999/Megaman
        //@Override
        public override void Update(GameTime gameTime)
        {
            // TODO Auto-generated method stub
            if (forwardBulletAnim.isIgnoreFrame(0) || backBulletAnim.isIgnoreFrame(0))
            {
                setPosX(getPosX() + getSpeedX());
            }
            ParticularObject obj = getGameWorld().particularObjectManager.getCollisionWidthEnemyObject(this);

            if (obj != null && obj.getState() == MainState.ALIVE)
            {
                setBlood(0);
                obj.setBlood(obj.getBlood() - getDamage());
                obj.setState(MainState.BEHURT);
                // MessageBox.Show("Bullet set behurt for enemy");
            }
        }
コード例 #6
0
        public virtual void UpdateObjects(GameTime gameTime)
        {
            lock (particularObjects){
                for (int id = 0; id < particularObjects.Count; id++)
                {
                    ParticularObject obj = particularObjects[id];


                    if (!obj.isObjectOutOfCameraView())
                    {
                        obj.Update(gameTime);
                    }

                    if (obj.getState() == GameObject.MainState.DEATH)
                    {
                        particularObjects.RemoveAt(id);
                    }
                }
            }

            //System.out.println("Camerawidth  = "+camera.getWidth());
        }
コード例 #7
0
        //@Override
        public override void Update(GameTime gameTime)
        {
            switch (state)
            {
            case MainState.ALIVE:

                // note: SET DAMAGE FOR OBJECT NO DAMAGE
                ParticularObject obj = getGameWorld().particularObjectManager.getCollisionWidthEnemyObject(this);
                if (obj != null)
                {
                    if (obj.getDamage() > 0)
                    {
                        // switch state to fey if object die

                        //MessageBox.Show("eat damage.... from collision with enemy........ " + obj.getDamage());
                        beHurt(obj.getDamage());
                    }
                }



                break;

            case MainState.BEHURT:
                if (behurtBackAnim == null)
                {
                    state             = MainState.NOBEHURT;
                    startTimeNoBeHurt = DateTime.Now;
                    if (getBlood() == 0)
                    {
                        state = MainState.FEY;
                    }
                }
                else
                {
                    behurtForwardAnim.Update(gameTime);
                    if (behurtForwardAnim.isLastFrame())
                    {
                        behurtForwardAnim.reset();
                        state = MainState.NOBEHURT;
                        if (getBlood() == 0)
                        {
                            state = MainState.FEY;
                        }
                        startTimeNoBeHurt = DateTime.Now;
                    }
                }

                break;

            case MainState.FEY:

                state = MainState.DEATH;

                break;

            case MainState.DEATH:


                break;

            case MainState.NOBEHURT:
                //MessageBox.Show("state = nobehurt");
                if (gameTime.GetTimeSpanMilis(startTimeNoBeHurt) > timeForNoBeHurt)
                {
                    state = MainState.ALIVE;
                }
                break;
            }
        }
コード例 #8
0
 public void addObject(ParticularObject particularObject)
 {
     lock (particularObjects){
         particularObjects.Add(particularObject);
     }
 }