//创建怪物 private void CreateMonster() { //if (m_CurrentCreateCount > 0) return; List <GameLevelMonsterEntity> gameLevelMonsterEntityList = GameLevelMonsterDBModel.Instance.GetMonsterListByLevelAndGeade(CurLevel, CurGrade); for (int i = 0; i < gameLevelMonsterEntityList.Count; i++) { if (String.IsNullOrEmpty(gameLevelMonsterEntityList[i].SpriteRowAndCol)) { continue; } string[] rowAndColArr = gameLevelMonsterEntityList[i].SpriteRowAndCol.Split('|'); for (int j = 0; j < rowAndColArr.Length; j++) { SpriteEntity spriteEntity = SpriteDBModel.Instance.GetSpriteEntityById(gameLevelMonsterEntityList[i].SpriteId); if (spriteEntity != null) { GameObject go = RoleMgr.Instance.LoadRole(RoleType.Monster, spriteEntity.PrefabName); if (go != null) { RoleCtrl ctrl = go.GetComponent <RoleCtrl>(); if (ctrl != null) { ctrl.OnRoleDie = OnRoleDieCallBack; ctrl.OnRoleDestory = OnRoleDestoryCallBack; MonsterInfo info = new MonsterInfo(spriteEntity); info.RoleId = ++m_TempIndex; info.RoleNickName = spriteEntity.Name; info.Level = spriteEntity.Level; info.MaxHP = spriteEntity.Hp; info.CurrentHP = info.MaxHP; info.PhyAtk = spriteEntity.PhyAtk; info.MgicAtk = spriteEntity.MgicAtk; info.PhyDef = spriteEntity.PhyDef; info.MgicDef = spriteEntity.MgicDef; info.Cri = spriteEntity.Cri; info.CriValue = spriteEntity.CriValue; info.SpriteEntity = spriteEntity; ctrl.AttackRange = spriteEntity.AttackRange; ctrl.MoveStep = spriteEntity.MoveCellCount; //位置赋值 string[] arr = rowAndColArr[j].Split('_'); int row = arr[0].ToInt(); int col = arr[1].ToInt(); Node node = GridManager.Instance.GetNode(row, col); ctrl.transform.position = node.Position; ctrl.Init(RoleType.Monster, info, new MonsterAI(ctrl, info)); BormMonsterCount++; MonsterList.Add(ctrl); } } } } } }
/// <summary> /// 根据精灵编号返回精灵预设镜像 /// </summary> /// <param name="spriteId"></param> /// <returns></returns> public void LoadSprite(int spriteId, System.Action <GameObject> onComplete) { SpriteEntity entity = SpriteDBModel.Instance.Get(spriteId); if (entity == null) { return; } AssetBundleMgr.Instance.LoadOrDownload(string.Format("Download/Prefab/RolePrefab/Monster/{0}.assetbundle", entity.PrefabName), entity.PrefabName, onComplete); }
/////////////////////////////////////////////////////// // // Methods // /////////////////////////////////////////////////////// /// <summary> /// Creates a new frame animation for a SpriteEntity /// </summary> /// <param name="targetName"> /// The name of the sprite to be animated. A corresponding "animator" will be created for it. /// </param> /// <param name="intervalTimeInSeconds"></param> /// <param name="looping"></param> /// <returns></returns> public AnimationFrame Create(Sprite.Name targetName, float intervalTimeInSeconds, bool looping) { AnimationFrame newAnimation = this.BaseCreate() as AnimationFrame; SpriteEntity newTarget = SpriteEntityManager.Self.Find(targetName) as SpriteEntity; newAnimation.SetTarget(newTarget); newAnimation.IntervalTime = intervalTimeInSeconds; newAnimation.AssignNewIntervalTime(intervalTimeInSeconds); newAnimation.ScheduleTimedAnimation(intervalTimeInSeconds, looping); return(newAnimation); }
private void CreateMonster() { //if (m_CurrentCreateCount > 0) return; m_Index = UnityEngine.Random.Range(0, m_CurrentRegionMonsterList.Count); GameLevelMonsterEntity levelMonsterEntity = m_CurrentRegionMonsterList[m_Index]; SpriteEntity spriteEntity = SpriteDBModel.Instance.Get(levelMonsterEntity.SpriteId); if (spriteEntity == null || levelMonsterEntity == null) { return; } if (!monsterCreateDic.ContainsKey(m_Index)) { monsterCreateDic[m_Index] = levelMonsterEntity.SpriteCount; } string prefabName = spriteEntity.PrefabName; monsterCreateDic[m_Index]--; if (monsterCreateDic[m_Index]-- < 0) { monsterCreateDic.Remove(m_Index); } Transform obj = m_Pool.Spawn(prefabName); obj.position = m_CurRegionCtrl.GetMonsterBornPos; obj.localEulerAngles = Vector3.zero; obj.localScale = Vector3.one; RoleCtrl ctrl = obj.GetComponent <RoleCtrl>(); ctrl.OnRoleDie = OnRoleDieCallBack; ctrl.OnRoleDestory = OnRoleDestoryCallBack; RoleInfoMonster info = new RoleInfoMonster(spriteEntity); info.RoleId = ++m_TempIndex; info.RoleNickName = spriteEntity.Name; info.Level = spriteEntity.Level; //info.Exp = spriteEntity.RewardExp; info.MaxHP = spriteEntity.HP; info.CurrentHP = spriteEntity.HP; info.MaxMP = spriteEntity.MP; info.CurrentMP = spriteEntity.MP; info.Attack = spriteEntity.Attack; info.Defense = spriteEntity.Defense; info.Hit = spriteEntity.Hit; info.Dodge = spriteEntity.Dodge; info.Res = spriteEntity.Res; info.Cri = spriteEntity.Cri; info.Fighting = spriteEntity.Fighting * 100; ctrl.Init(RoleType.Monster, info, new GameLevel_RoleMonsterAI(ctrl, info)); ctrl.Born(obj.position); ctrl.ViewRange = spriteEntity.Range_View; m_CurrentCreateCount++; }
public override void OnAddedToScene() { base.OnAddedToScene(); var coneTexture = Scene.Content.LoadTexture(ContentPaths.Scoop_Cone); coneDecal = Scene.AddEntity(new SpriteEntity(coneTexture, Constants.Layer_WeaponOver, 0.5f)); this.coneSpring = coneDecal.AddComponent(new EntitySpringComponent(this, weaponMountOffset, 5)); coneDecal.ToggleVisible(this.defaultVisible); shootFX = Scene.AddEntity(new AnimatedEntity()); AddFXAnimation(); shootFX.ToggleVisible(this.defaultVisible); }
public HudIcon(float newX, float newY, Azul.Color newColor, float iconSpacing, int numOfIcons, Sprite.Name newIconName) { this.spriteIcon = SpriteEntityManager.Self.Find(newIconName); this.color = newColor; this.x = newX; this.y = newY; this.iconGap = iconSpacing; this.numberOfIcons = numOfIcons; if (this.numberOfIcons < 0) { this.numberOfIcons = 0; } }
public override void OnAddedToScene() { base.OnAddedToScene(); var coneTexture = Scene.Content.LoadTexture(ContentPaths.Scoop_Cone); coneDecal = Scene.AddEntity(new SpriteEntity(coneTexture, Constants.RenderLayer_Truck, 0.5f)); coneDecal.ToggleVisible(defaultVisible); coneSpring = coneDecal.AddComponent(new EntitySpringComponent(this, weaponMountOffset, 5)); shootFX = Scene.AddEntity(new AnimatedEntity()); AddFXAnimation(); shootFX.ToggleVisible(defaultVisible); playerMove = weaponComponent.GetComponent <PlayerMovementComponent>(); }
public override void OnAddedToScene() { base.OnAddedToScene(); var popsicleTexture = Scene.Content.LoadTexture(ContentPaths.Popsicle + "Popsicle_Basic.png"); this.loadedPopsicle = Scene.AddEntity(new SpriteEntity(popsicleTexture, Constants.Layer_WeaponOver, 0.5f)); this.loadedPopsicle.ToggleVisible(this.defaultVisible); this.shatterFX = Scene.AddEntity(new AnimatedEntity()); AddFXAnimation(); shatterFX.ToggleVisible(false); shatterFX.animator.RenderLayer = Constants.Layer_WeaponOver; shatterFX.animator.LayerDepth = 0.4f; shatterFX.animator.OnAnimationCompletedEvent += (s) => ReloadPopsicle(); }
private void CreateBackground() { // Layer 0 is the default layer that clips entities will be added to base.Layers.Add(new Layer2D(new Vector2(1.0f, 1.0f))); // Other layers are for the background base.Layers.Add(new Layer2D(new Vector2(1.0f, 1.0f))); base.Layers.Add(new Layer2D(new Vector2(0.35f, 0.2f))); base.Layers.Add(new Layer2D(new Vector2(0.0f, 1.0f))); base.Layers.Add(new Layer2D(new Vector2(0.0f, 0.1f))); for (int i = 0; i < PLAY_AREA_WIDTH_IN_SCREENS; ++i) { SpriteEntity background = new SpriteEntity(); background.SpriteState = new Gnomic.Anim.SpriteState(Content.Load <Texture2D>("Background_Ground")); background.SpriteState.Transform.Origin = Vector2.Zero; background.LayerID = 1; background.Position = new Vector2(ParentGame.ScreenWidth * (i - 1), 0.0f); base.AddEntity(background); background = new SpriteEntity(); background.SpriteState = new Gnomic.Anim.SpriteState(Content.Load <Texture2D>("Background_Mountains")); background.SpriteState.Transform.Origin = Vector2.Zero; background.LayerID = 2; background.Position = new Vector2(ParentGame.ScreenWidth * (i - 1), 0.0f); base.AddEntity(background); background = new SpriteEntity(); background.SpriteState = new Gnomic.Anim.SpriteState(Content.Load <Texture2D>("Background_Clouds")); background.SpriteState.Transform.Origin = Vector2.Zero; background.LayerID = CLOUD_LAYER; background.Position = new Vector2(ParentGame.ScreenWidth * (i - PLAY_AREA_WIDTH_IN_SCREENS / 2), 0.0f); base.AddEntity(background); } SpriteEntity sky = new SpriteEntity(); sky.SpriteState = new Gnomic.Anim.SpriteState(Content.Load <Texture2D>("Background_Sky")); sky.SpriteState.Transform.Origin = Vector2.Zero; sky.LayerID = 4; sky.Position = new Vector2(0.0f, 0.0f); base.AddEntity(sky); }
//Constructors public Ball(string key, IntPtr render) : base() //TODO: key not needed. Remove it { SpriteEntity ballSprite; if (!SpriteEntity.TextureExists("ball")) { ballSprite = new SpriteEntity("ball", render, "assets/images/ball.bmp", 0, 255, 0); } else { ballSprite = new SpriteEntity("ball"); } ballSprite.Pos.h = 25; ballSprite.Pos.w = 25; ballSprite.SubRect.h = 100; ballSprite.SubRect.w = 100; AddSprite("ball", ballSprite); ResetBall(); }
//Constructors public Paddle(string key, IntPtr render, int offset) : base() { SpriteEntity paddleSprite; if (!SpriteEntity.TextureExists("paddle")) { paddleSprite = new SpriteEntity("paddle", render, "assets/images/paddle.bmp", 0, 255, 0); } else { paddleSprite = new SpriteEntity("paddle"); } paddleSprite.Pos.h = 100; paddleSprite.Pos.w = 2; paddleSprite.SubRect.h = 100; paddleSprite.SubRect.w = 20; paddleSprite.Pos.x = offset; paddleSprite.Pos.y = GameConstants.PONG_TABLE_Y / 2 - paddleSprite.Pos.h / 2; AddSprite("paddle", paddleSprite); }
private static void ProcessInput(string input) { if (!string.IsNullOrWhiteSpace(input)) { try { CommandEntity command = CommandFactory.GetCommand(input); if (command is CanvasCommand) { Canvas = Canvas.CreateCanvas(command); } else if (command is SpriteCommand) { if (Canvas != null) { SpriteEntity sprite = SpriteFactory.GetSprite((SpriteCommand)command, Canvas); Canvas.AddSprite(sprite); } else { throw new Exception("No Canvas found. Please create a new canvas before adding sprites."); } } else if (command is QuitCommand) { Environment.Exit(0); } if (Canvas != null) { Draw(Canvas); } } catch (Exception ex) { System.Console.WriteLine(ex.Message); } } }
public override void Update(float dt) { if (gameState == GameState.GameOver) { //base.Update(dt); return; } if (Gnomic.Input.KeyJustDown(Microsoft.Xna.Framework.Input.Keys.F1)) { base.EnablePhysicsDebug = !base.EnablePhysicsDebug; } units.Update(dt); foreach (IDrawable2D d in base.Layers[CLOUD_LAYER].Sprites) { SpriteEntity cloud = d as SpriteEntity; if (cloud != null) { Vector2 cloudPos = cloud.Position; cloudPos.X += dt * 10.0f; cloud.Position = cloudPos; } } List <IDrawable2D> layer0 = base.Layers[0].Sprites; for (int i = 0; i < layer0.Count - 1; ++i) { if (layer0[i].DrawOrder > (layer0[i + 1].DrawOrder + 0.1f)) { IDrawable2D tmp = layer0[i]; layer0[i] = layer0[i + 1]; layer0[i + 1] = tmp; } } base.Update(dt); }
/// <summary> /// Gets called when a Scene is loaded into memory. /// Load all the stuff needed for Game Scenes /// </summary> protected override void OnSceneLoad() { // Get the green floor SpriteBatch floorBatch = this.ManagerForSpriteBatch.Find(SpriteBatch.Name.Shields); SpriteEntity floorSprite = SpriteEntityManager.Self.Find(Sprite.Name.Floor); floorBatch.Attach(floorSprite, floorSprite.Id); ///// GameObject Factories //////////////////////////// // Create all the shields ShieldFactory shieldFactory = new ShieldFactory(SpriteBatch.Name.Shields); shieldFactory.CreateShields(); // Create all the Walls WallFactory wallFactory = new WallFactory(); wallFactory.CreateWalls(); // Create all the Aliens AlienFactory alienFactory = new AlienFactory(SpriteBatch.Name.Aliens); alienFactory.LoadResources(); alienFactory.CreateAliens(); // Create the player PlayerFactory playerFactory = new PlayerFactory(this); playerFactory.InitializeResources(); playerFactory.CreatePlayer(); // Create the UFO UFOFactory ufoFactory = new UFOFactory(); ufoFactory.CreateObjects(); }
public override void Reset() { this.spriteIcon = null; this.color = null; }
/// <summary> /// Create the billboard renderer component. /// </summary> /// <param name="texture">Texture to use for this sprite with a default material.</param> /// <param name="faceCamera">If true, will always face camera. If false will use node's rotation.</param> public BillboardRenderer(Texture2D texture = null, bool faceCamera = true) { _entity = new SpriteEntity(_billboardSpritesheet, texture); FaceCamera = faceCamera; }
/// <summary> /// Create the billboard renderer component. /// </summary> /// <param name="material">Material to use with this sprite.</param> /// <param name="faceCamera">If true, will always face camera. If false will use node's rotation.</param> public BillboardRenderer(MaterialAPI material, bool faceCamera = true) { _entity = new SpriteEntity(_billboardSpritesheet, material); FaceCamera = faceCamera; }
public SvgaSprite(CanvasAnimatedControl stage, SpriteEntity entity, ByteString imageByteString) { this.Stage = stage; this.SpriteEntity = entity; this.ImageByteString = imageByteString; }
// // Methods // /// <summary> /// Sets the new target of the animation /// </summary> /// <param name="newTarget"></param> public void SetTarget(SpriteEntity newTarget) { this.spriteTarget = newTarget; }
// // Constructors // public AnimationFlip() : base() { this.spriteTarget = null; }
/// <summary> /// Clears the data in the Animation /// </summary> /// <remarks> /// Does not clear base data. Use <c>BaseReset()</c> for that. /// </remarks> public override void Reset() { this.spriteTarget = null; this.Destroy(); }
/// <summary> /// Create the sprite renderer component. /// </summary> /// <param name="spritesheet">Spritesheet data.</param> /// <param name="texture">Texture to use for this sprite with a default material.</param> /// <param name="useSharedMaterial">If true, will use a shared material for all sprites using this texture. /// This optimization reduce load/unload time and memory, but it means the material is shared with other sprites.</param> /// <param name="faceCamera">If true, will always face camera. If false will use node's rotation.</param> public SpriteRenderer(SpriteSheet spritesheet, Texture2D texture = null, bool useSharedMaterial = true, bool faceCamera = true) { _entity = new SpriteEntity(spritesheet, texture, useSharedMaterial); FaceCamera = faceCamera; }
/// <summary> /// Create the sprite renderer component. /// </summary> /// <param name="spritesheet">Spritesheet data.</param> /// <param name="material">Material to use with this sprite.</param> /// <param name="faceCamera">If true, will always face camera. If false will use node's rotation.</param> public SpriteRenderer(SpriteSheet spritesheet, MaterialAPI material, bool faceCamera = true) { _entity = new SpriteEntity(spritesheet, material); FaceCamera = faceCamera; }
/// <summary> /// Construct the barricade out of little blocks /// </summary> private void AssembleBlocks() { SpriteEntity centerBlock = SpriteEntityManager.Self.Find(Sprite.Name.ShieldPiece); SpriteEntity upperLeftBlock = SpriteEntityManager.Self.Find(Sprite.Name.ShieldPieceUL); SpriteEntity upperRightBlock = SpriteEntityManager.Self.Find(Sprite.Name.ShieldPieceUR); SpriteEntity bottomLeftBlock = SpriteEntityManager.Self.Find(Sprite.Name.ShieldPieceBL); SpriteEntity bottomRightBlock = SpriteEntityManager.Self.Find(Sprite.Name.ShieldPieceBR); SpriteEntity blockSprite = null; // Spawn all the blocks for (uint i = 0u; i < this.NumColumns; i++) { for (uint j = 0u; j < this.NumRows; j++) { if (j == 0u && i > 1u && i < 7u) { // Skip bottom middle 5 blocks continue; } else if (j == 1u && i > 2u && i < 6u) { // Skip second-bottom middle 3 blocks continue; } else if (j == 6u && (i == 0u || i == 8u)) { // Skip the corners of the top row continue; } else if ((j == 5u && i == 0u) || (j == 6u && i == 1u)) { // top left corner blocks blockSprite = upperLeftBlock; } else if ((j == 5u && i == 8u) || (j == 6u && i == 7u)) { // top right corner blocks blockSprite = upperRightBlock; } else if (j == 1 && i == 2) { // bottom right blocks blockSprite = bottomRightBlock; } else if (j == 1 && i == 6) { // bottom left blocks blockSprite = bottomLeftBlock; } else { // Center block blockSprite = centerBlock; } ShieldPiece block = new ShieldPiece(blockSprite); block.SetPosition(this.X + block.Width * i, this.Y + block.Height * j); this.blockColumns[i].AddChild(block); GameObjectManager.Active.Attach(block); } } }
public MonsterInfo(SpriteEntity spriteEntity) : base() { SpriteEntity = spriteEntity; }
//显示英雄简介 private void ShowHeroIntro(long roleId) { if (m_HeroIntroView == null) { GameObject go = ResourcesMrg.Instance.Load(ResourcesMrg.ResourceType.UIWindowChild, "HeroIntro"); m_HeroIntroView = go.GetComponent <UIHeroIntroView>(); go.transform.SetParent(UISceneCtrl.Instance.CurrentUIScene.MainCanvans.transform); go.transform.localScale = Vector3.one; go.transform.localPosition = Vector3.zero; } m_HeroIntroView.gameObject.SetActive(true); DataTransfer data = new DataTransfer(); HeroInfo heroInfo = Global.HeroInfoList.Find(x => x.RoleId == roleId); if (heroInfo != null) { if (heroInfo != null) { HeroEntity heroEntity = HeroDBModel.Instance.Get(heroInfo.HeroID); data.SetData <string>("HeroName", heroEntity.Name); data.SetData <string>("HeroDesc", heroEntity.Desc); for (int i = 0; i < heroInfo.SkillList.Count; i++) { SkillEntity skill1Entity = SkillDBModel.Instance.Get(heroInfo.SkillList[i].SkillId); data.SetData <string>("Skill" + (i + 1) + "Name", skill1Entity.SkillName); data.SetData <string>("Skill" + (i + 1) + "Desc", skill1Entity.SkillDesc); } } } else { //敌人 RoleInfoBase monsterInfo = GameSceneCtrl.Instance.MonsterList.Find(x => x.CurRoleInfo.RoleId == roleId).CurRoleInfo; if (monsterInfo != null) { SpriteEntity spriteEntity = SpriteDBModel.Instance.GetList().Find(x => x == ((MonsterInfo)monsterInfo).SpriteEntity); if (spriteEntity == null) { Debug.LogError("错误:找不到精灵实体,请查看是否有没有赋值,或者GameSceneCtrl的MonsterList 移除,添加出错了"); return; } else { data.SetData <string>("HeroName", spriteEntity.Name); data.SetData <string>("HeroDesc", ""); for (int j = 0; j < ((MonsterInfo)monsterInfo).GetSkillList().Count; j++) { SkillEntity skill1Entity = SkillDBModel.Instance.Get(((MonsterInfo)monsterInfo).GetSkillList()[j]); data.SetData <string>("Skill" + (j + 1) + "Name", skill1Entity.SkillName); data.SetData <string>("Skill" + (j + 1) + "Desc", skill1Entity.SkillDesc); } } } else { Debug.Log("错误:没找到英雄信息"); return; } } m_HeroIntroView.SetUI(data); }
public RoleInfoMonster(SpriteEntity spriteEntity) : base() { SpriteEntity = spriteEntity; }