예제 #1
0
        public override void Initialize()
        {
            m_audioManager = AudioManager.GetInstance();
            m_audioManager.LoadSound("SongOfWaterSpray",DataReader.Load<SoundEffect>("MusicAndSoundEffect/SoundEffect/SongOfWaterSpray"));
            m_audioManager.LoadSong("SongOfRunningGame",
                                    DataReader.Load<Song>("MusicAndSoundEffect/Song/MusicOfRunningGameState"));

            m_levels = MapManager.GetInstance();
            m_world = WorldManager.GetInstance();
            m_sence = SenceManager.GetInstance();
            m_effect = GraphicsManager.GetInstance();
            m_stateManager = StateManager.GetInstance();
            //m_levels.Load( "Map6" );

            m_levels.Goto( "Map0" );
            //m_levels.Load("Map0");
            player = m_world.Player;
            m_renderTarget2D = new RenderTarget2D( HealGame.Game.GraphicsDevice, 800, 600, false,
                                                   HealGame.Game.GraphicsDevice.PresentationParameters.BackBufferFormat, DepthFormat.Depth24Stencil8 );
            m_resolveTarget = new RenderTarget2D( HealGame.Game.GraphicsDevice, 800, 600, false,
                                                  HealGame.Game.GraphicsDevice.PresentationParameters.BackBufferFormat, DepthFormat.Depth24Stencil8);
                //DataReader.Load<Effect>("Effect/Blur");
        }
예제 #2
0
        public static void Update(GameTime gameTime, IList<Unit> list, IList<Item> i_list, Player player)
        {
            AIBase.Player = player;
            AIBase.EnemyList = list;
            AIBase.ItemList = i_list;

            Unit[] units = new Unit[list.Count];
            list.CopyTo(units,0);
            foreach (var ptr in units)
            {
                switch (ptr.Status)
                {
                    case AIBase.Status.Normal:
                        {
                            AINormal.NormalBehave(ptr, gameTime);
                            break;
                        }
                    case AIBase.Status.Turning:
                        {
                            AITurning.AITurn(ptr);
                            break;
                        }
                    case AIBase.Status.Chase:
                        {
                            AIChase.Chase(ptr, gameTime);
                            break;
                        }
                    case AIBase.Status.Attck:
                        {
                            AIAttack.Attack(ptr, gameTime);
                            break;
                        }
                    case AIBase.Status.Dead:
                        {
                            AIDead.Dead(ptr, gameTime);
                            break;
                        }
                    case AIBase.Status.Freeze:
                        {
                            AIFreeze.Freeze(ptr, gameTime);
                            break;
                        }
                    case AIBase.Status.Flee:
                        {
                            AIFlee.Flee(ptr, gameTime);
                            break;
                        }
                    case AIBase.Status.Alarm:
                        {
                            AIAlarm.Alarm(ptr, gameTime);
                            break;
                        }
                    case AIBase.Status.Judge:
                        {
                            AIJudge.Judge(ptr,gameTime);
                            break;
                        }
                    case AIBase.Status.Flat:
                        {
                            AIFlat.Flat(ptr,gameTime);
                            break;
                        }
                    case AIBase.Status.Kick:
                        {
                            AIKick.Kick(ptr,gameTime);
                            break;
                        }

                }
                ptr.Update(gameTime);
            }

            foreach (var ptr in units)
            {
                if (ptr.Status == AIBase.Status.Dead) continue;
                ptr.ToTurnStatus();
                if (!(ptr is Player))
                {
                    if (Enemy.Detected((Enemy) ptr) && AIBase.Player.FakeID != ptr.Id) //如果被看到
                    {
                        if (ptr.Status == AIBase.Status.Normal)
                        {
                            ptr.Status = AIBase.Status.Alarm;
                            ptr.CurrentDialog = AIBase.StatusDialog.Alarm;
                            ptr.CurrentRing = 3;
                        }
                    }
                    ptr.ToNormalStatus(gameTime, player);
                    ptr.ToFreezeStatus(gameTime, player);
                    ptr.ToAttackStatus(gameTime, player);
                }
                ptr.ToDeadStatus(gameTime, player);

            }

            foreach (var ptr in i_list)
            {
                ptr.Update(gameTime);
            }

            IsDead = (player.Status == AIBase.Status.Dead);
        }
예제 #3
0
파일: Player.cs 프로젝트: fanthos/Game-Heal
 internal override void ToFreezeStatus(GameTime gameTime, Player player)
 {
 }
예제 #4
0
파일: Player.cs 프로젝트: fanthos/Game-Heal
 internal override void ToDeadStatus(GameTime gameTime, Player ptr)
 {
     if (this.HP == 0)
     {
         this.Status = AIBase.Status.Dead;
     }
 }
예제 #5
0
 internal override void ToDeadStatus(GameTime gameTime, Player ptr)
 {
 }
예제 #6
0
 internal override void ToChaseStatus(GameTime gameTime, Player player)
 {
 }
예제 #7
0
파일: DNA.cs 프로젝트: fanthos/Game-Heal
 public void Update(GameTime gameTime, Player player,List<DNANode> list)
 {
     if((this.Postion - AIBase.Player.Locate).Length() <= 20)
     {
         list.Remove(this);
     }
 }
예제 #8
0
파일: NPC.cs 프로젝트: fanthos/Game-Heal
 internal override void ToDeadStatus(GameTime gameTime, Player ptr)
 {
     throw new NotImplementedException();
 }
예제 #9
0
파일: Unit.cs 프로젝트: fanthos/Game-Heal
 internal abstract void ToFleeStatus(GameTime gameTime,Player playerr);
예제 #10
0
파일: Unit.cs 프로젝트: fanthos/Game-Heal
 internal abstract void ToDeadStatus(GameTime gameTime, Player ptr);
예제 #11
0
파일: Unit.cs 프로젝트: fanthos/Game-Heal
 internal abstract void ToChaseStatus(GameTime gameTime,Player player);
예제 #12
0
파일: Unit.cs 프로젝트: fanthos/Game-Heal
 internal abstract void ToAttackStatus(GameTime gameTime, Player ptr);
예제 #13
0
        private void InternalLoad(MapManager.MapLoadingData data)
        {
            m_senceManager.Initialize(data.Size.X, data.Size.Y, WorldPart.ImageSize);

            EntityCreator.Load(data.Name);

            foreach (SencePart sencePart in data.Sence)
            {
                m_senceManager[sencePart.X, sencePart.Y] = sencePart;
            }
            Pieces = data.Pieces;
            m_part = data.Parts;
            m_layers = data.Layers;
            Player = m_entityCreator.Player;

            m_collusionLayer = data.CollusionLayer;
            m_layerCount = data.LayerCount;
            m_size = data.Size;
            m_worldSize = data.WorldSize;

            m_senceManager.CameraLocate = CheckLocation(data.Player);
            m_senceManager.CameraFollow = CheckLocation(data.Player);
            if(Player!=null)Player.Locate = data.Player;
            GameItemState.Set("currentmap", data.Name);
            GameItemState.Set( "locate", data.Player );
            GameCommands.Enqueue(data.PostLoading);
            GameItemState.Save();
        }
예제 #14
0
        public override void PostInitialize()
        {
            InstallStatusDialog();

            m_loadingImage = DataReader.Load<Texture2D>("Texture/Running/Loading");

            m_units = m_entityCreator.Units;
            Player = m_entityCreator.Player;
            m_regions = m_entityCreator.Regions;
            m_item = m_entityCreator.Items;

            m_resolveTexture = new RenderTarget2D(SpriteManager.SpriteBatch.GraphicsDevice, 800, 600, false,
                                                     SpriteManager.SpriteBatch.GraphicsDevice.PresentationParameters.
                                                         BackBufferFormat, DepthFormat.Depth24Stencil8);
        }
예제 #15
0
 public void Update(GameTime gameTime, Player player)
 {
     switch (this.Status)
     {
         case EnergyBallStatus.Show:
             if ((this.Postion - player.Locate).Length() <= 30)
             {
                 this.ToDisappear();
                 player.RingSize += 20;;
             }else
             {
                 this.Rotation += 0.01f;
                 this.Rotation %= 6.28f;
                 this.Scale += 0.05f;
                 this.Scale %= 6.28f;
             }
             break;
         case EnergyBallStatus.Disappear:
             if (this.Color.A != 0)
             {
                 this.Color.A-=5;
             }
             else
             {
                 this.ToCoolDown();
             }
             break;
         case EnergyBallStatus.CoolDown:
             if (this.RefreshTimeNow < EnergyBallNode.RefreshTime)
             {
                 this.RefreshTimeNow++;
             }
             else
             {
                 this.RefreshTimeNow = 0;
                 this.ToAppear();
             }
             break;
         case EnergyBallStatus.Appear:
             if(this.Color.A!=255)
             {
                 this.Color.A+=5;
             }
             else
             {
                 this.ToShow();
             }
             break;
     }
 }
예제 #16
0
파일: NPC.cs 프로젝트: fanthos/Game-Heal
 internal override void ToAttackStatus(GameTime gameTime, Player ptr)
 {
 }
예제 #17
0
파일: Unit.cs 프로젝트: fanthos/Game-Heal
 internal abstract void ToFreezeStatus(GameTime gameTime,Player player);
예제 #18
0
파일: NPC.cs 프로젝트: fanthos/Game-Heal
 internal override void ToFreezeStatus(GameTime gameTime, Player player)
 {
     throw new NotImplementedException();
 }
예제 #19
0
파일: Unit.cs 프로젝트: fanthos/Game-Heal
 internal void ToNormalStatus(GameTime gameTime, Player ptr)
 {
     if ((this.Locate - AIBase.Player.Locate).Length() > 400)
     {
         this.CurrentDialog = AIBase.StatusDialog.Blank;
         this.Status = AIBase.Status.Normal;
     }
 }