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; }); }
public static void ComponentReset() { EffectsMgr.Clear(); Sound.Clear(); GameTimer.ClearAllTimer(); TextEffectMgr.Clear(); GameManager.objMemoryMananger.ClearGroups(); DrawMgr.SetCondition(null); }
internal static void Draw(DrawCondition condition) { TextEffectMgr.Draw(); foreach (IManagedEffect effect in managedEffects) { if (condition != null) { if (condition(effect)) { effect.Draw(); } } else { effect.Draw(); } } }
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); }); }
//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; } } }
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); }