public override void OnInitGeometry() { var rbCmp = Arena.Owner.RigidBodyCmp; m_wallTimer = new Timer(Engine.GameTime.Source, 1500); m_wallTimerEvent = new TimerEvent(StartRotation); m_wallTimer.OnTime += m_wallTimerEvent; Asset <GameObjectDefinition> centerObjDef = Engine.AssetManager.GetAsset <GameObjectDefinition>("Arenas/JungleArena2/Center.lua::Center"); m_centerPieceObject = new GameObject(centerObjDef); var centerPieceObjBodyCmp = m_centerPieceObject.FindComponent <RigidBodyComponent>(); centerPieceObjBodyCmp.Body.CollidesWith = (Category)CollisionType.All | (Category)CollisionType.Ball; centerPieceObjBodyCmp.Body.CollisionCategories = (Category)CollisionType.Wall; Engine.World.EventManager.AddListener((int)EventId.FirstPeriod, OnFirstPeriod); Engine.World.EventManager.AddListener((int)EventId.HalfTime, OnHalfTime); Engine.World.EventManager.AddListener((int)EventId.HalfTimeTransition, OnHalfTimeTransition); Engine.World.EventManager.AddListener((int)EventId.SecondPeriod, OnSecondPeriod); Engine.World.EventManager.AddListener((int)EventId.MatchEnd, OnMatchEnd); m_launchersInitTransform = new LBE.Core.Transform[Arena.Launchers.Count]; for (int i = 0; i < Arena.Launchers.Count; i++) { LauncherComponent launcher = (LauncherComponent)Arena.Launchers[i]; m_launchersInitTransform[i] = new LBE.Core.Transform(launcher.Position, launcher.Owner.Orientation); } rbCmp.Body.CollidesWith = (Category)CollisionType.All | (Category)CollisionType.Ball; rbCmp.Body.CollisionCategories = (Category)CollisionType.Wall; }
public override void OnUpdate() { Engine.Log.Debug("lp ", m_launchersInitTransform[0]); if (moving) { speed += Engine.GameTime.ElapsedMS / accelTime * maxSpeed; speed = LBE.MathHelper.Clamp(0, maxSpeed, speed); angle += speed * Engine.GameTime.ElapsedMS; } else if (speed > 0) { speed -= Engine.GameTime.ElapsedMS / accelTime * maxSpeed; speed = LBE.MathHelper.Clamp(0, maxSpeed, speed); angle += speed * Engine.GameTime.ElapsedMS; } m_centerPieceObject.Orientation = angle; float goalRadius = Engine.Debug.EditSingle("GoalPos", 120); Arena.LeftGoal.Owner.Orientation = angle; Arena.LeftGoal.Owner.Position = goalRadius * Vector2.UnitX.Rotate(angle); Arena.RightGoal.Owner.Orientation = angle; Arena.RightGoal.Owner.Position = -goalRadius *Vector2.UnitX.Rotate(angle); for (int i = 0; i < Arena.Launchers.Count; i++) { LauncherComponent launcher = (LauncherComponent)Arena.Launchers[i]; launcher.Owner.Orientation = m_launchersInitTransform[i].Orientation + angle; launcher.Owner.Position = m_launchersInitTransform[i].Position.Rotate(angle); } }
private void InitGunBarrelDate() { LauncherComponent obj = m_HandleObj.GetComponent <LauncherComponent>(); m_GunBarrelDate.LightDot = obj.m_LightDot; m_GunBarrelDate.MoveLight = obj.m_MoveLight; m_GunBarrelDate.MuzzleEft = obj.m_MuzzleEft; m_GunBarrelDate.PlaySpriteAnim = obj.m_PlaySpriteAnim; m_GunBarrelDate.ComponentCount = obj.m_ComponentCount; GameObject.Destroy(m_HandleObj.GetComponent <LauncherComponent>()); }
public LauncherView(LauncherComponent component = null) : base(component) { InitializeComponent(); Load(); }