コード例 #1
0
        private void InitialStartTimer()
        {
            new GameTimer(1,
                          delegate()
            {
                TextEffectMgr.AddRiseFadeInScrnCoordin("3", new Vector2(400, 300), 3, Color.Red, LayerDepth.Text, GameFonts.Lucida, 200, 1.4f);
            });

            new GameTimer(2,
                          delegate()
            {
                TextEffectMgr.AddRiseFadeInScrnCoordin("2", new Vector2(400, 300), 3, Color.Red, LayerDepth.Text, GameFonts.Lucida, 200, 1.4f);
            });

            new GameTimer(3,
                          delegate()
            {
                TextEffectMgr.AddRiseFadeInScrnCoordin("1", new Vector2(400, 300), 3, Color.Red, LayerDepth.Text, GameFonts.Lucida, 200, 1.4f);
            });

            new GameTimer(4,
                          delegate()
            {
                TextEffectMgr.AddRiseFadeInScrnCoordin("Start!", new Vector2(400, 300), 3, Color.Red, LayerDepth.Text, GameFonts.Lucida, 200, 1.4f);
            });
            new GameTimer(5,
                          delegate()
            {
                gameStart = true;
            });
        }
コード例 #2
0
ファイル: GameManager.cs プロジェクト: ingex0/smarttank
 public static void ComponentReset()
 {
     EffectsMgr.Clear();
     Sound.Clear();
     GameTimer.ClearAllTimer();
     TextEffectMgr.Clear();
     GameManager.objMemoryMananger.ClearGroups();
     DrawMgr.SetCondition(null);
 }
コード例 #3
0
        internal static void Draw(DrawCondition condition)
        {
            TextEffectMgr.Draw();

            foreach (IManagedEffect effect in managedEffects)
            {
                if (condition != null)
                {
                    if (condition(effect))
                    {
                        effect.Draw();
                    }
                }
                else
                {
                    effect.Draw();
                }
            }
        }
コード例 #4
0
        public FindPathGameScreen(IAI tankAI)
        {
            BaseGame.CoordinMgr.SetScreenViewRect(scrnRect);
            camera  = new Camera(2, cameraStartPos, 0f);
            compass = new Compass(new Vector2(740, 540));
            camera.Enable();

            InitialBackGround();

            InitialScene();

            InitialAI(tankAI);

            camera.Focus(tank, true);

            GameTimer timer = new GameTimer(5,
                                            delegate()
            {
                TextEffectMgr.AddRiseFadeInScrnCoordin("test FadeUp in Scrn!", new Vector2(100, 100), 1f, Color.Black, LayerDepth.Text, GameFonts.Lucida, 300, 0.5f);
                TextEffectMgr.AddRiseFade("test FadeUp in Login!", new Vector2(100, 100), 1f, Color.White, LayerDepth.Text, GameFonts.Lucida, 300, 0.5f);
            });
        }
コード例 #5
0
        //float lastCollideWithBorderTime = -1;
        void item_OnCollided(IGameObj Sender, CollisionResult result, GameObjInfo objB)
        {
            if (objB.ObjClass == "Border")
            {
                ((ItemCommon)Sender).Vel = -2 * Vector2.Dot(((ItemCommon)Sender).Vel, result.NormalVector) * result.NormalVector + ((ItemCommon)Sender).Vel;

                //float curTime = GameManager.CurTime;
                //if (lastCollideWithBorderTime != -1 && curTime - lastCollideWithBorderTime < 0.05f)
                //    ((ItemCommon)Sender).Scale -= 0.1f * 0.25f;

                //lastCollideWithBorderTime = curTime;
            }
            else if (objB.ObjClass == "Tank")
            {
                //((ItemCommon)Sender).Scale += 0.1f * 0.25f;
                //((ItemCommon)Sender).Pos += result.NormalVector * 10f;
                ((ItemCommon)Sender).Vel = ((ItemCommon)Sender).Vel.Length() * result.NormalVector;


                if (firstHitTank)
                {
                    showFirstHitTank = true;
                    firstHitTank     = false;
                }
            }
            else if (objB.ObjClass == "ShellNormal")
            {
                smoke.Concen += 0.3f;

                if (((ItemCommon)Sender).Scale < 0.5f * 0.031f)
                {
                    //scene.RemoveGameObj( Sender, true, false, false, false, SceneKeeperCommon.GameObjLayer.HighBulge );
                    sceneMgr.DelGameObj("shell", Sender.Name);
                    Score += 100;

                    hitSum++;

                    AddNewItem(Sender);

                    if (firstScore)
                    {
                        showFirstScore = true;
                        firstScore     = false;
                    }

                    smoke.Concen = 0;
                }
                else
                {
                    ((ItemCommon)Sender).Scale -= 0.15f * 0.031f;
                    ((ItemCommon)Sender).Vel    = -result.NormalVector * ((ItemCommon)Sender).Vel.Length();
                    hitSum++;
                }

                if (firstHit)
                {
                    showFirstHit = true;
                    firstHit     = false;
                }

                NiceShootSum += 2;
                showNiceShoot = true;

                if (NiceShootSum >= 30 && !speedy)
                {
                    TextEffectMgr.AddRiseFade("You Got A Speedy Turret!", tank.Pos, 2f, Color.Purple, LayerDepth.Text, GameFonts.Lucida, 300, 0.2f);
                    tank.FireCDTime = 2f;
                    speedy          = true;
                }
            }
        }
コード例 #6
0
        public void Render()
        {
            //simpleGround.Draw( camera.LogicViewRect );
            vergeGround.Draw();

            GameManager.DrawManager.Draw();

            BaseGame.BasicGraphics.DrawRectangle(mapSize, 3, Color.Red, 0f);
            BaseGame.BasicGraphics.DrawRectangleInScrn(scrnViewRect, 3, Color.Green, 0f);

            BaseGame.BasicGraphics.DrawPoint(BaseGame.CoordinMgr.LogicPos(ConvertHelper.PointToVector2(InputHandler.CurMousePos)), 3f, Color.Red, LayerDepth.Mouse);

            if (firstDraw)
            {
                //TextEffectMgr.AddRiseFade( "Use 'AWSD' to Move the Tank, 'JK' to Rotate the Turret,", new Vector2( 40, 150 ), 1.2f, Color.Red, LayerDepth.Text, FontType.Comic, 500, 0.2f );
                //TextEffectMgr.AddRiseFade( "and press Space To Shoot!", new Vector2( 40, 160 ), 1.2f, Color.Red, LayerDepth.Text, FontType.Comic, 500, 0.2f );

                firstDraw = false;
            }

            if (showFirstHit)
            {
                TextEffectMgr.AddRiseFade("哦,这个家伙变小了!", new Vector2(50, 70), 1.4f, Color.Red, LayerDepth.Text, GameFonts.HDZB, 300, 0.2f);
                showFirstHit = false;
            }

            if (showFirstScore)
            {
                TextEffectMgr.AddRiseFade("当这个物体消失时,你会获得100分!", new Vector2(20, 70), 1.4f, Color.Red, LayerDepth.Text, GameFonts.HDZB, 300, 0.2f);
                TextEffectMgr.AddRiseFade("不过这个物体也会开始运动。", new Vector2(20, 80), 1.4f, Color.Red, LayerDepth.Text, GameFonts.HDZB, 300, 0.2f);

                showFirstScore = false;
            }

            if (showFirstHitTank)
            {
                //TextEffect.AddRiseFade( "Oh, the Object hit you, it grows bigger!", new Vector2( 30, 150 ), 1.1f, Color.Red, LayerDepth.Text, FontType.Comic, 300, 0.2f );
                showFirstHitTank = false;
            }

            if (showNiceShoot)
            {
                if (NiceShootSum >= 30)
                {
                    TextEffectMgr.AddRiseFade("GOD LIKE!", tank.Pos, 1.1f, Color.Black, LayerDepth.Text, GameFonts.Comic, 200, 1f);
                }
                else if (NiceShootSum >= 17)
                {
                    TextEffectMgr.AddRiseFade("Master Shoot!", tank.Pos, 1.1f, Color.Pink, LayerDepth.Text, GameFonts.Comic, 200, 1f);
                }
                else if (NiceShootSum >= 4)
                {
                    TextEffectMgr.AddRiseFade("Nice Shoot!", tank.Pos, 1.1f, Color.GreenYellow, LayerDepth.Text, GameFonts.Comic, 200, 1f);
                }

                showNiceShoot = false;
            }

            if (tank.Rader.PointInRader(InputHandler.GetCurMousePosInLogic(BaseGame.RenderEngine)))
            {
                BaseGame.FontMgr.DrawInScrnCoord("mouse In Rader!", ConvertHelper.PointToVector2(InputHandler.CurMousePos), 0.6f, Color.Yellow, LayerDepth.Text, GameFonts.Lucida);
            }

            if (tank.Rader.ShelterObjs.Length != 0)
            {
                foreach (IShelterObj obj in tank.Rader.ShelterObjs)
                {
                    BaseGame.FontMgr.Draw("I am Sheltered by " + (obj as IGameObj).Name + " Pos: " + ((IGameObj)obj).Pos.ToString(), tank.Pos, 0.6f, Color.Yellow, LayerDepth.Text, GameFonts.Lucida);
                }
            }


            BaseGame.FontMgr.DrawInScrnCoord("You Score : " + Score.ToString(), new Vector2(500, 40), 0.6f, Color.Yellow, LayerDepth.Text, GameFonts.Comic);
            BaseGame.FontMgr.DrawInScrnCoord("Shoot Sum : " + shootSum.ToString(), new Vector2(500, 60), 0.6f, Color.Yellow, LayerDepth.Text, GameFonts.Comic);
            BaseGame.FontMgr.DrawInScrnCoord("hit Sum   : " + hitSum.ToString(), new Vector2(500, 80), 0.6f, Color.Yellow, LayerDepth.Text, GameFonts.Comic);
            float hitRate = shootSum != 0 ? (float)hitSum * 100 / (float)shootSum : 0;

            BaseGame.FontMgr.DrawInScrnCoord("hit rate  : " + hitRate.ToString() + "%", new Vector2(500, 100), 0.6f, Color.Yellow, LayerDepth.Text, GameFonts.Comic);
        }