private void Start() { bulletEffectManager = GameObject.Find("MANAGER").transform.Find("BulletEffectManager").GetComponent <BulletEffectManager>(); enemyStatus = GetComponent <EnemyStatus>(); enemyMove = GetComponent <EnemyMove>(); player = GameObject.Find("CHARACTER").transform.Find("Player").gameObject; bulletPool = new Transform[3]; for (int i = 0; i < 3; i++) { bulletPool[i] = GameObject.Find("BULLET").transform.Find("EnemyBullet").GetChild(i); } bulletParent = new Transform[10]; for (int i = 0; i < 10; i++) { bulletParent[i] = GameObject.Find("BULLET").transform.Find("EnemyBullet_Temp").transform.Find(string.Format("EnemyBullet_Temp{0}", i + 1)); } effectPool = GameObject.Find("EFFECT").transform.Find("Effect"); effectParent = GameObject.Find("EFFECT").transform.Find("Effect_Temp"); switch (enemyStatus.GetEnemyType()) { case EnemyType.ENEMYTYPE_SMINION: case EnemyType.ENEMYTYPE_MMINION: case EnemyType.ENEMYTYPE_LMINION: StartCoroutine(EnemyMinionAttack(enemyPatternNumber, enemyAttackWaitTime, enemyAttackDelayTime, isPatternRepeat, enemyFireCount, enemyAttackRepeatTime, enemyCustomPatternNumber)); break; default: break; } }
public static EnemyStatus AllBut(Direction direction) { EnemyStatus enemyStatus = TotalEnemy(); switch (direction) { case Direction.Down: enemyStatus.IsBottom = false; break; case Direction.Up: enemyStatus.IsTop = false; break; case Direction.Right: enemyStatus.IsRight = false; break; case Direction.Left: enemyStatus.IsLeft = false; break; } return(enemyStatus); }
void SetStats(int phase, int level, int maxPhase) { EnemyStatus enemyStatus = GetComponent <EnemyStatus>(); if (maxPhase > 0) { enemyStatus.SetMaxPhase(maxPhase); } else { if (level < 30) { enemyStatus.SetMaxPhase(1); maxPhase = 1; } else if (level < 60) { enemyStatus.SetMaxPhase(2); maxPhase = 2; } else { enemyStatus.SetMaxPhase(3); maxPhase = 3; } } enemyStatus.maxHealth = GetPhaseMaxHP(phase, level, maxPhase); }
private State state = State.FORWARD; // 敵機の行動状況. void Start() { // プレイヤーのインスタンスを取得. player = GameObject.FindGameObjectWithTag("Player"); // 敵機の状況のインスタンスを取得. enemyStatus = this.GetComponent <EnemyStatus>(); // -------------------------------------------------------------------- // 出現位置を指定. // -------------------------------------------------------------------- // 発生方向を計算.(プレイヤーの進行方向と反対側). float playerAngleY = player.transform.rotation.eulerAngles.y + 180; float additionalAngle = (float)Random.Range(-90, 90); // 方向を設定. transform.rotation = Quaternion.Euler(0f, playerAngleY + additionalAngle, 0f); // 位置を設定. transform.position = new Vector3(0, 0, 0); transform.position = transform.forward * distanceFromPlayerAtStart; // 進行方向をプレイヤーに向ける. Vector3 playerPosition = player.transform.position; Vector3 relativePosition = playerPosition - transform.position; Quaternion targetRotation = Quaternion.LookRotation(relativePosition); transform.rotation = targetRotation; // 敵機を動かす. enemyStatus.SetIsAttack(true); }
void Start() { status = GetComponent <EnemyStatus>(); animator = GetComponent <Animator>(); hitDetecter.gameObject.SetActive(false); hitDetecter.enabled = false; }
public void init(WorldMap w, Hex h, int health) { this.w = w; this.h = h; this.health = health; this.maxHealth = health; this.timer = 0f; invincible = new TemporaryEffect(); stunned = new TemporaryEffect(); mousedOver = false; bar = gameObject.AddComponent <EnemyHealthBar>(); bar.transform.parent = transform; bar.init(this); status = gameObject.AddComponent <EnemyStatus>(); status.transform.parent = transform; status.init(this); var obj = new GameObject("Unit Model"); obj.transform.parent = transform; model = obj.AddComponent <UnitModel>(); model.init(this); }
public float DebuffCD; // max time before debuffs wear off // Use this for initialization void Start() { _controller = GetComponent <CharacterController2D>(); // instance of Charactercontroller2D _direction = new Vector2(-1, 0); // this GameObject will move the left upon initialization CurrentHealth = MaxHealth; // sets current health to maximum health Player = FindObjectOfType <Player>(); // finds instances of the player SpriteColor.color = Color.white; // sets the color to white by default CanFireProjectiles = true; // by default allows AI to shoot projectiles StoredSpeed = MovementSpeed; // stores original movement speed MaxSpeedStore = MovementSpeed; // stores the Enemy's starting MaxSpeed Status = EnemyStatus.Normal; // Player will start with Normal Status SpriteColor.color = Color.white; // sets the color to white by default DebuffCD = 2f; if (ChangeSize == true) { transform.localScale = new Vector2(0.75f, 0.75f); // fixes resizing issue with touch screen overlay } if (Enemy == EnemyType.Spawner) { // calls the Spawn function after a delay of the SpawnTime and then continue to call after the same amount of time. InvokeRepeating("Spawn", SpawnTime, SpawnTime); } // Stores the Undead EnemyAI's original sprite if (Enemy == EnemyType.Undead) { UndeadStoredSprite = SpriteColor.sprite; } }
// Event invocations. private void OnDied(EnemyStatus obj, int xp) { if (Died != null) { Died(obj, xp); } }
void SetInitialStats(int phase, int level, int maxPhase) { EnemyStatus enemyStatus = GetComponent <EnemyStatus>(); VampireController vampireController = GetComponent <VampireController>(); if (maxPhase > 0) { enemyStatus.SetMaxPhase(maxPhase); } else { if (level < 30) { enemyStatus.SetMaxPhase(1); maxPhase = 1; } else if (level < 60) { enemyStatus.SetMaxPhase(2); maxPhase = 2; } else { enemyStatus.SetMaxPhase(3); maxPhase = 3; } } enemyStatus.maxHealth = GetPhaseMaxHP(phase, level, maxPhase); GameObject player = GameObject.FindGameObjectWithTag("Player"); vampireController.SetPlayerTransform(player.transform); }
IEnumerator HurtRoutine() { status = EnemyStatus.Hurt; float timer = 0; bool blink = false; while (timer < hurtTimer) { blink = !blink; timer += Time.deltaTime; if (blink) { foreach (SpriteRenderer rend in sr) { rend.color = Color.white; } } else { foreach (SpriteRenderer rend in sr) { rend.color = Color.red; } } yield return(new WaitForSeconds(0.05f)); } foreach (SpriteRenderer rend in sr) { rend.color = Color.white; } status = EnemyStatus.Active; }
void Start() { statuses = GetComponent <EnemyStatus>(); attackstate = false; agent = GetComponent <NavMeshAgent>(); animator = GetComponent <Animator>(); GameObject[] windows = GameObject.FindGameObjectsWithTag("Window"); //finds all gameobjects with the tag window attached to them and lists them as boards GameObject[] doors = GameObject.FindGameObjectsWithTag("Door"); //finds all gameobjects with the tag window attached to them and lists them as boards GameObject[] entrances = new GameObject[windows.Length + doors.Length]; for (int i = 0; i < windows.Length; i++) { entrances[i] = windows[i]; } // for (int i = 0; i < doors.Length; i++) //creates an array out of the windows and doors { // entrances[windows.Length + i] = doors[i]; } Transform closest_entrance = entrances[0].transform; //the first entrance on the list is then made the closest entrance to compare all the other boards to float closest_entrance_distance = Vector3.Distance(entrances[0].transform.position, transform.position); //evaluates the distance of the closest entrance foreach (GameObject entrance in entrances) //loops through all the other possibilities { if (Vector3.Distance(entrance.transform.position, transform.position) < closest_entrance_distance) //compares the other entrances distances with the closest entrance distance { closest_entrance = entrance.transform; closest_entrance_distance = Vector3.Distance(entrance.transform.position, transform.position); } } target = closest_entrance; //claims the closest entrance as the target }
void Start() { player = GameObject.Find(playerName); es = GetComponent <EnemyStatus>(); rb = GetComponent <Rigidbody2D>(); anim = GetComponentInChildren <Animator>(); }
void Start() { enemyAttackLoopTime = 5.33f; attackWaveSpeed_temp = 5.33f; m_enemyData = m_battleManager.GetEnemyData(); maxHP_f = m_enemyData.maxHp; //attackDemage_f = m_enemyData.attack_demage; attackDemage_f = 1; //모든 적 데미지 1로 통일. //sunbi data 가져오기 m_sunbi.SetEnemyDamage(attackDemage_f); m_sunbi.AccessEnemyObject(); sunbiAttackDamage = (int)m_sunbi.GetSunbiDamage(); //StartCoroutine("AttackWave"); //currentHp = (int)maxHP_f; //maxHP = (int)maxHP_f; currentHp_f = maxHP_f; //transform.position = new Vector3(507.392f,405.248f,- 9000f); hpBarUpdate(); //m_battleManager.SetStatePlaying(); }
void OnTriggerEnter(Collider other) { float DamageHP; if (other.gameObject.tag == "Enemy" && Owner == OwnerType.Player) { EnemyStatus estat = other.gameObject.GetComponent <EnemyStatus>(); DamageHP = (CalculateDamage() - estat.Def); if (DamageHP <= 1) { DamageHP = 1; } estat.CurrentHp -= DamageHP; DrawText(DamageHP, other.transform.position); } if (other.gameObject.tag == "Player" && Owner == OwnerType.Enemy) { PlayerStatus pstat = other.gameObject.GetComponent <PlayerStatus>(); DamageHP = (CalculateDamage() - (pstat.Def + pstat.item_Def)); if (DamageHP <= 1) { DamageHP = 1; } pstat.CurrentHp -= DamageHP; DrawText(DamageHP, other.transform.position); } if (other.gameObject.tag == "Map" && this.tag == "ATKSkill") { Speed *= -0.8f; Destroy(gameObject, 0.5f); } }
/// <summary> /// 方法:接收增益状态信息并改变怪物状态 /// </summary> /// <param name="sds">增益状态</param> public void PacDotsMessageReceive(SuperDotStyle sds) { switch (sds) { case SuperDotStyle.ordinary: isChase = true; isEat = true; enemyStatus = EnemyStatus.Patrol; spriteRender.color = new Color(1.0f, 1.0f, 1.0f, 1.0f); break; case SuperDotStyle.Still: enemyStatus = EnemyStatus.Still; isChase = false; isEat = true; spriteRender.color = new Color(1.0f, 1.0f, 1.0f, 1.0f); break; case SuperDotStyle.Strengthen: enemyStatus = EnemyStatus.Flee; isChase = false; isEat = false; spriteRender.color = new Color(1.0f, 1.0f, 1.0f, 0.5f); break; case SuperDotStyle.Invincible: enemyStatus = EnemyStatus.Patrol; isChase = false; isEat = false; spriteRender.color = new Color(1.0f, 1.0f, 1.0f, 0.5f); break; } //LastEnemyStatus = enemyStatus; }
public void OnHurt() { SetSpeedX(0); es = EnemyStatus.Hurt; animator.SetTrigger("hurtTrigger"); PlaySoundEffect("SoundEffects/monsterSounds/wolf2die"); }
// Start is called before the first frame update void Start() { Timer = 0.0f; FindRange = 15.0f; SightAngle = 120.0f; ChaseRange = 30.0f; AttackRange = 2.0f; status = GetComponent <EnemyStatus>(); status.MaxHP = 500; status.Damage = 35; status.MoveSpeed = 12.0f; status.AttackRate = 2.7f; player = GameObject.Find("Player").transform; Weapon = weaponCollider; Weapon.enabled = false; StartPoint = transform; Agent = GetComponent <NavMeshAgent>(); Agent.speed = status.MoveSpeed; Animator = GetComponent <Animator>(); Animator.SetTrigger("Idle"); state = EnemyState.Idle; }
protected override void EnterBackState() { aniControlBoss.IsLocomotion = true; aniControlBoss.SpeedPercent = MoveControl.Magnitude / 2; EnemyStatus.ResetLife(); EnemyStatus.lifeBar.SetActive(false); }
void SetStats(int phase, int level, int maxPhase) { EnemyStatus enemyStatus = GetComponent <EnemyStatus>(); KnifeDummy knifeDummy = GetComponent <KnifeDummy>(); if (maxPhase > 0) { enemyStatus.SetMaxPhase(maxPhase); } else { if (level > 0 && level < 80) { enemyStatus.SetMaxPhase(1); maxPhase = 1; } else if (level == 0 || level < 90) { enemyStatus.SetMaxPhase(2); maxPhase = 2; } else { enemyStatus.SetMaxPhase(3); maxPhase = 3; } this.maxPhase = maxPhase; } GameObject player = GameObject.FindGameObjectWithTag("Player"); knifeDummy.SetPlayerTransform(player.transform); enemyStatus.maxHealth = GetPhaseMaxHP(phase, level, maxPhase); }
}; //Listの横列の番号-2を指定 // Use this for initialization void Awake() { status = gameObject.GetComponent <EnemyStatus>(); gameMaster = FindObjectOfType <GameMasterScript>(); aReader = FindObjectOfType <AbilityReader>(); Lv = gameMaster.GetEnemyLV(); }
public void ActivateEnemy() { //mySpriteRenderer.enabled = true; this.enabled = true; this.gameObject.SetActive(true); myStatus = EnemyStatus.Alive; }
// give status according to the trap type public void addStatusFromTraps(TrapType type, float damage = 0f) { switch (type) { case TrapType.BOMB_TRAP: addDamage(damage, TowerType.SNIPER); // the bomb has the same hit attribute as the sniper break; case TrapType.FREEZE_TRAP: status = EnemyStatus.FROZEN; conditionChanged = true; break; case TrapType.TIME_TRAP: if (status != EnemyStatus.FROZEN) { status = EnemyStatus.STOPPED; conditionChanged = true; } break; default: break; } }
public override void Initialize(GameObject usingObj) { eneTree = usingObj.GetComponent <BaseEnemyTree>(); status = usingObj.GetComponent <EnemyStatus>(); anim = usingObj.GetComponent <Animator>(); timer = 0; }
public void DestroySelf(string message) { //Debug.Log("DESTROYING SELF"); this.myStatus = EnemyStatus.Dead; this.enabled = false; this.gameObject.SetActive(false); }
void Start() { bloodPooler = ObjectPooler.sharedPooler; curMeth = "attack"; timer = -1f; attacked = true; right = true; //GAS = 2; GADone = false; grabbed = false; run = false; animator = GetComponent <Animator>(); bloodBulletIndex = bloodPooler.GetIndex(bloodBulletPrefab); batBulletIndex = bloodPooler.GetIndex(batBulletPrefab); status = GetComponent <EnemyStatus>(); canTurn = true; if (bloodBulletIndex == -1) { Debug.LogError("BloodBullet not found in object pooler"); bloodBulletIndex = 0; } if (moveLoc == null || moveLoc.Count != 4) { moveLoc = new List <Vector3>(); moveLoc.Add(new Vector3(-5.2f, -3.2f)); moveLoc.Add(new Vector3(5, -3)); moveLoc.Add(new Vector3(3.3f, 3.3f)); moveLoc.Add(new Vector3(-3, 3)); } }
public override void Initialize(GameObject usingObj) { eneTree = usingObj.GetComponent <BaseEnemyTree>(); status = usingObj.GetComponent <EnemyStatus>(); cMinInsideCircle.Set(1, 1); anim = GetComponent <Animator>(); }
public void setAnimation(EnemyStatus animation) { switch (animation) { case EnemyStatus.enemy_Idle: scrabAnimator.SetBool("Run", false); scrabAnimator.SetBool("Attack", false); break; case EnemyStatus.enemy_Attack: if (!attackSound.isPlaying) { attackSound.Play(); } scrabAnimator.SetBool("Run", false); scrabAnimator.SetBool("Attack", true); break; case EnemyStatus.enemy_Run: scrabAnimator.SetBool("Run", true); scrabAnimator.SetBool("Attack", false); break; case EnemyStatus.enemy_Death: scrabAnimator.SetBool("Death", true); deathParticle.SetActive(true); break; } }
// Use this for initialization void Start() { player = GameObject.FindGameObjectWithTag("Player"); playerStatus = player.GetComponent <PlayerStatus> (); enemyStatus = GetComponent <EnemyStatus> (); anim = GetComponent <Animator>(); }
void OnTriggerEnter2D(Collider2D other) { // if colliding with an enemy, deal damage play hit animation if (other.CompareTag("Enemy")) { EnemyStatus enemyStatus = other.GetComponent <EnemyStatus>(); if (enemyStatus != null) { float damage; if (userAttack >= 0) { damage = baseDamage * (1 + (userAttack / 100f)); } else { // for now scale negative attack downward disproportionately //float damage = baseDamage / (1 + (- userAttack / 100f)); damage = baseDamage * (1 + (userAttack / 100f)); } enemyStatus.TakeDamage(damage); } if (playerStatusReference != null) { playerStatusReference.gainEnergy(1f); } speed = 0f; gameObject.SetActive(false); } }
void Awake() { maxHitPoints = hitPoints; sr = GetComponentsInChildren <SpriteRenderer> (); inputModule = GetComponent <SimpleNPCInputModule> (); status = EnemyStatus.Active; }
void Awake() { animtor = GetComponent<Animator>(); navAgent = GetComponent<NavMeshAgent>(); opticSphereCol = GetComponent<SphereCollider>(); playerGameObject = GameObject.FindGameObjectWithTag(DoneTags.player); animatorController = GameObject.Find(PathHelper.gameManagerPath).GetComponent<EnemyAnimatorController>(); gameManager = GameObject.Find(PathHelper.gameManagerPath).GetComponent<GameManager>(); enemyStatus = gameObject.transform.FindChild(GameObjectNameHelper.robotGuardName).GetComponent<EnemyStatus>(); animtor.SetLayerWeight(1, 1f); animtor.SetLayerWeight(2, 1f); }
public void Initialize(EnemyStatus enemy_, CEnemy.AI AI_type_) { max_HP = enemy_.HP; HP = max_HP; ATK = enemy_.ATK; speed = enemy_.SPD; DEF = enemy_.DEF; coin_amount = enemy_.coin_amount; score = enemy_.score; ai_phase = 0; current_animation = AnimationName.normal; SetShooter(); SetAI(AI_type_); }
/// <summary> /// This method instanciates a new enemey. /// </summary> /// <param name="x">The x start positon.</param> /// <param name="startPosition">The start position on the level map.</param> /// <param name="speed">The speed of the enemey</param> /// <param name="movePattern">Which move pattern the enemy uses.</param> /// <param name="enemyType">Which type of enemey this is.</param> /// <param name="bulletType">Which type of bullets the enemy fires.</param> /// <param name="bulletPower">How powerfull the enemy bullets are.</param> /// <param name="bulletSpeed">How fast the enemey bullets are.</param> /// <param name="bulletReloadTime">How long it takes for the plane to reload.</param> /// <param name="shieldThicknes">How thick the shiled of the enemy is.</param> /// <param name="score">The score the player recives by killing this enemey.</param> public Enemy(int x, int startPosition, double speed, MovePattern movePattern, EnemyType enemyType, BulletType bulletType, int bulletPower, double bulletSpeed, double bulletReloadTime, int power, int score) { this.x = x; this.y = -32; this.tempY = this.y; this.speed = speed; this.score = score; this.startPosition = startPosition; this.movePattern = movePattern; this.enemyType = enemyType; this.bulletType = bulletType; this.bulletPower = bulletPower; this.bulletSpeed = bulletSpeed; this.bulletReloadTime = bulletReloadTime; this.bulletTick = (int)(bulletReloadTime - (bulletReloadTime / 4)); //Making the plane able to fire the first bullet after one fourth of the bullet reload time. this.power = power; this.spriteTick = 0; this.collitionRectangle = new Rectangle(x, y, spriteSize.Width, spriteSize.Height); this.Status = EnemyStatus.Idle; SetEnemySpesific(); }
public BaseEnemy(Color enemyColor) { this.IsFollowed = false; this.enemyColor = enemyColor; this.MainColor = Color.White; this.speed = 0; this.damagePercentage = 0.2f; this.freezeResistance = 0.1f; this.freezeReviving = 0.005f; this.lightingPercent = 1f; this.random = OGE.Random; IntializeParticleGenerators(); this.isHit = false; this.hitAlarm = new Alarm(0.2f, TweenType.OneShot, new AlarmFinished(HitEnded)); AddTween(hitAlarm); this.enemyStatus = EnemyStatus.Standing; this.aiFunctions = new Dictionary<EnemyStatus, AIEnemyFunction>(); this.aiFunctions.Add(EnemyStatus.Enterance, new AIEnemyFunction(EnteranceAI)); this.aiFunctions.Add(EnemyStatus.Standing, new AIEnemyFunction(StandingAI)); this.aiFunctions.Add(EnemyStatus.Moving, new AIEnemyFunction(MovingAI)); this.aiFunctions.Add(EnemyStatus.Attacking, new AIEnemyFunction(AttackingAI)); this.thrusters = new List<EnemyThrusterData>(); this.SlowFactor = 1; this.freezeImage = new Image(OGE.Content.Load<Texture2D>(@"Graphics\Entities\Enemies\Freeze")); this.freezeImage.CenterOrigin(); this.freezeImage.Angle = random.Next(360); this.EntityCollisionType = CollisionType.Enemy; }
/// <summary> /// Method moving the enemey. /// </summary> public void Move() { if(Status == EnemyStatus.Idle) Status = EnemyStatus.Moving; switch(movePattern) { case MovePattern.Straight : default : tempY += speed; y = (int)tempY; break; } }
protected virtual void AttackingAI() { UpdateMovingParameter(); List<BaseEntity> player = OGE.CurrentWorld.GetCollisionEntitiesType(CollisionType.Player); if (player.Count > 0) { destinationDirection = OGE.GetAngle(Position, player[0].Position); } else { enemyStatus = EnemyStatus.Moving; } Vector2 speedVector = OGE.GetProjection(speed, direction); Position = Position + speedVector; foreach (EnemyThrusterData thrust in thrusters) { trailGenerator.Angle = direction + thrust.Direction; trailGenerator.GenerateParticles(Position + OGE.GetProjection(thrust.Length, direction + thrust.Direction)); } }
/// <summary> /// Method drawing an exploding plane. /// </summary> /// <param name="g">The graphics object used to draw the explotion.</param> private void DrawExplotion(Graphics g) { if(spriteSize.Width > 32) g.DrawImage(SpriteList.Instance.BigExplotion[explotionSpriteIndexes[(int)spriteTick]], new Rectangle(x, y, spriteSize.Width, spriteSize.Height), 0, 0, spriteSize.Width, spriteSize.Height, GraphicsUnit.Pixel, imgAttribs); else g.DrawImage(SpriteList.Instance.SmallExplotion[explotionSpriteIndexes[(int)spriteTick]], new Rectangle(x, y, spriteSize.Width, spriteSize.Height), 0, 0, spriteSize.Width, spriteSize.Height, GraphicsUnit.Pixel, imgAttribs); spriteTick += 0.5; if(spriteTick == explotionSpriteIndexes.Length) Status = EnemyStatus.Dead; }
// Use this for initialization void Start() { enemyStatus = FindObjectOfType<EnemyStatus> (); score = FindObjectOfType<Score> (); }
/// <summary> /// LoadContent はゲームごとに 1 回呼び出され,ここですべてのコンテンツを /// 読み込みます. /// </summary> protected override void LoadContent() { // 新規の SpriteBatch を作成します.これはテクスチャーの描画に使用できます. spriteBatch = new SpriteBatch(GraphicsDevice); //シーンのロード textureTitle = Content.Load<Texture2D>("title"); sceneTextureList.Add(textureTitle); textureGameScene = Content.Load<Texture2D>("stage1"); sceneTextureList.Add(textureTitle); textureClear = Content.Load<Texture2D>("clear"); sceneTextureList.Add(textureClear); textureGameover = Content.Load<Texture2D>("gameover"); sceneTextureList.Add(textureGameover); //オブジェクトのロード textureArrow = Content.Load<Texture2D>("arrow"); title = new Titlescene(textureTitle, textureArrow); SceneList.Add(title); gamescene = new Gamescene(textureGameScene); SceneList.Add(title); clearscene = new Gamescene(textureClear); SceneList.Add(clearscene); gameoverscene = new Gamescene(textureGameover); SceneList.Add(gameoverscene); textureEnemy1 = Content.Load<Texture2D>("watermelon"); enemyTextureList.Add(textureEnemy1); textureEnemy1 = Content.Load<Texture2D>("melon"); enemyTextureList.Add(textureEnemy1); textureEnemy1 = Content.Load<Texture2D>("kingyo"); enemyTextureList.Add(textureEnemy1); textureEnemy1 = Content.Load<Texture2D>("stagbeetle"); enemyTextureList.Add(textureEnemy1); textureEnemy1 = Content.Load<Texture2D>("pantsu"); enemyTextureList.Add(textureEnemy1); textureEnemy1 = Content.Load<Texture2D>("bura"); enemyTextureList.Add(textureEnemy1); textureTama = Content.Load<Texture2D>("tamatate"); tamaTextureList.Add(textureTama); textureTama = Content.Load<Texture2D>("tama1"); tamaTextureList.Add(textureTama); textureTama = Content.Load<Texture2D>("tama2"); tamaTextureList.Add(textureTama); textureTama = Content.Load<Texture2D>("tama3"); tamaTextureList.Add(textureTama); textureTama = Content.Load<Texture2D>("tama4"); tamaTextureList.Add(textureTama); textureTama = Content.Load<Texture2D>("tama5"); tamaTextureList.Add(textureTama); textureTama = Content.Load<Texture2D>("tama6"); tamaTextureList.Add(textureTama); textureItem = Content.Load<Texture2D>("item1"); itemTextureList.Add(textureItem); textureItem = Content.Load<Texture2D>("item2"); itemTextureList.Add(textureItem); textureItem = Content.Load<Texture2D>("item3"); itemTextureList.Add(textureItem); textureItem = Content.Load<Texture2D>("item4"); itemTextureList.Add(textureItem); textureItem = Content.Load<Texture2D>("item5"); itemTextureList.Add(textureItem); textureItem = Content.Load<Texture2D>("item6"); itemTextureList.Add(textureItem); textureEffect = Content.Load<Texture2D>("effect1"); EffectSp = new sprite(textureEffect, new Vector2(0, 0), new Point(100, 100), new Point(2, 1), 200); effectspriteList.Add(EffectSp); textureEffect = Content.Load<Texture2D>("effect2"); EffectSp = new sprite(textureEffect, new Vector2(0, 0), new Point(50, 50), new Point(4, 1), 400); effectspriteList.Add(EffectSp); texturePlayer = Content.Load<Texture2D>("beetle"); playerSp = new sprite(texturePlayer, new Vector2(0, 0), new Point(40, 60), new Point(3, 1), 5000); soundeffect = Content.Load<SoundEffect>("soundclear");//0 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundgameover");//1 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundhpreduce");//2 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundgetitem");//3 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundenemypowerdown");//4 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot1");//5 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot2");//6 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot3");//7 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot4");//8 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot5");//9 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot6");//10 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot7");//11 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot8");//12 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot9");//13 soundeffectList.Add(soundeffect); soundeffect = Content.Load<SoundEffect>("soundshoot10");//14 soundeffectList.Add(soundeffect); //bgm = Content.Load<Song>("bgm"); //敵のステータスのロード EnemyStatus ene; ene = new EnemyStatus(1, 1, 10, 1); //スイカ enemyStatusList.Add(ene); ene = new EnemyStatus(2, 1, 20, 1); //メロン enemyStatusList.Add(ene); ene = new EnemyStatus(3, 1, 100, 1); //金魚 enemyStatusList.Add(ene); ene = new EnemyStatus(4, 1, 1000, 10); //クワガタ enemyStatusList.Add(ene); ene = new EnemyStatus(5, 1, 100, 10); //パンツ enemyStatusList.Add(ene); ene = new EnemyStatus(5, 1, 100, 10); //ブラ enemyStatusList.Add(ene); // TODO: this.Content クラスを使用して,ゲームのコンテンツを読み込みます. }
IEnumerator SummonEnemy(int number_of_summon, EnemyStatus enemy_, CEnemy.AI AI_type, CEnemy.StartPosition start_position, float delay = 0.5f) { GameObject enemy; enemy = ResourceLoad.PickGameObject(enemy_.name.ToString()); for (int formation = 0; formation < number_of_summon; formation++) { GameObject temp = (GameObject)Instantiate(enemy, CEnemy.GetStartPosition(start_position), Quaternion.identity); CEnemy temp_enemy = temp.GetComponent<CEnemy>(); temp_enemy.Initialize(enemy_, AI_type); yield return new WaitForSeconds(delay); } }
/// <summary> /// Method executed when the enemey is hit by a player bullet. /// </summary> /// <param name="bullet">The bullet hitting the plane.</param> public void Hit(Bullet b) { if(Status == EnemyStatus.Moving) { power -= b.BulletPower; if(power <= 0) { Status = EnemyStatus.Dying; spriteTick = 0; } } }
/// <summary> /// 敵のコンストラクタ /// </summary> /// <param name="setposi">敵の初期位置</param> /// <param name="settexture">敵のテクスチャ</param> /// <param name="setsize">敵のサイズ</param> /// <param name="enemynum">敵のテクスチャの種類番号</param> /// <param name="ugokinum">うごきの番号</param> /// <param name="es">敵のステータスクラスHP, speed, haveItem, scoreをもつ</param> /// <param name="setshootpatterni">弾道,玉の出し方</param> /// <param name="setshoottamai">打つ球のテクスチャの種類番号</param> public Enemy(Vector2 setposi, Texture2D settexture, Vector2 setsize, int enemynum, int ugokinum, EnemyStatus es, int sethaveitem, Uchikata setshootpatterni, int setshoottamatexturei) { position = new Vector2(setposi.X, setposi.Y); texture = settexture; //うまくいかなかったらここ size = new Vector2(setsize.X, setsize.Y); HP = es.HP; subayasa = es.subayasa; exist = true; shokiposi = setposi; haveitem = sethaveitem; status = 1; enemyn = enemynum; ugokin = ugokinum; score = es.score; sw1 = new Stopwatch(); swforstatus = new Stopwatch(); shootpatterni = setshootpatterni; shoottamatexturei= setshoottamatexturei; t = 0; ugokiflag1 = true; level = 1; AP = es.AP; haittaflg = false; speed.X = subayasa; speed.Y = subayasa; hansyaflg = false; }
public IEnumerator SummonEnemy(float summon_time, int number_of_summon, EnemyStatus enemy_, CEnemy.AI AI_type_, CEnemy.StartPosition start_position, float delay = 0.5f) { GameObject enemy; enemy = ResourceLoad.PickGameObject(enemy_.name.ToString()); yield return new WaitForSeconds(summon_time); level_difficulty = StageManager.LevelDifficulty; if (0 < level_difficulty) { enemy_.ATK *= (1 + (level_difficulty - 1) * 1.8f); enemy_.HP *= (1 + (level_difficulty - 1) * 1.1f); enemy_.score += (level_difficulty - 1) * 100; } for (int formation = 0; formation < number_of_summon; formation++) { GameObject temp = (GameObject)Instantiate(enemy, CEnemy.GetStartPosition(start_position), Quaternion.identity); CEnemy temp_enemy = temp.GetComponent<CEnemy>(); temp_enemy.Initialize(enemy_, AI_type_); yield return new WaitForSeconds(delay); } }