protected override void Awake() { base.Awake(); _MaxBullet = 5; for (int i = 0; i < _MaxBullet; ++i) { GameObject obj = Instantiate(Resources.Load("Prefabs/Bullet/Bullet")) as GameObject; cBullet _Bullet = obj.GetComponent <cBullet>(); _Bullet._Speed = 40.0f; _Bullet._Damage = 0; _Bullet.transform.SetParent(transform); //총알 발사하기 전까지는 비활성화 해준다. _Bullet.gameObject.SetActive(false); _Bullet._BulletState = BulletState.PlayerSniper; _BulletPoll.Add(_Bullet); } _Delay = 0.2f; _ItemID = 9; _ItemName = "1898년형 단기병총"; //아이템이름 _ItemDescrIption = "이 나라의 기술력은 세계 제일이지! -피아트-"; //아이템설명 _Type = ItemType.OneShot; //아이템타입 _MinAttackDamage = 27; //최소데미지 _MaxAttackDamage = 35; //최대데미지 _AttackSpeed = 0.87f; //공격속도 _Quality = ItemQuality.Unique; //아이템등급 _ItemIcon = Resources.Load <Sprite>("Itemp/Kar98"); //아이템 이미지 _ItemPrice = 3000; //아이템가격 _SkillText = "다음 한발의 총알의 공격력이 아주강해집니다."; _SkillIcon = Resources.Load <Sprite>("Skill/Skill_DeadlyShot"); //아이템 이미지 _SkillCoolTime = 30; _ReloadTime = 2.5f; }
private int getIndexOfClosestMonsterColliding(List <cMonster> mons, cBullet bul, Vector2f pos_by, float time) { int index = -1; double prevDist = Double.MaxValue; double newDist = 0.0; for (int i = 0; i < mons.Count; i++) { if (mons[i].IsKilled) { continue; } // order by distance to find the closest if (cSatCollision.checkAndResolve(bul, mons[i], time, false)) { newDist = cAppMath.Vec2DistanceSqrt(mons[i].Bounds.center, pos_by); if (newDist < prevDist) { prevDist = newDist; index = i; } } } return(index); }
protected override void Awake() { base.Awake(); _MaxBullet = 25; for (int i = 0; i < _MaxBullet; ++i) { GameObject obj = Instantiate(Resources.Load("Prefabs/Bullet/Bullet")) as GameObject; cBullet _Bullet = obj.GetComponent <cBullet>(); _Bullet._Speed = 30.0f; _Bullet._Damage = 0; _Bullet.transform.SetParent(transform); //총알 발사하기 전까지는 비활성화 해준다. _Bullet.gameObject.SetActive(false); _Bullet._BulletState = BulletState.Player; _BulletPoll.Add(_Bullet); } _Delay = 0.03f; _ItemID = 10; _ItemName = "AK-77"; //아이템이름 _ItemDescrIption = "냉탕에 넣고 온탕에 넣어도 아주 튼튼한 믿음직한 총"; //아이템설명 _Type = ItemType.Gun; //아이템타입 _MinAttackDamage = 5; //최소데미지 _MaxAttackDamage = 10; //최대데미지 _AttackSpeed = 10f; //공격속도 _Quality = ItemQuality.Unique; //아이템등급 _ItemIcon = Resources.Load <Sprite>("Itemp/Rifle1"); //아이템 이미지 _ItemPrice = 2000; //아이템가격 _SkillText = "30초간 이동속도 대폭 증가"; _SkillIcon = Resources.Load <Sprite>("Skill/Skill_WindForce"); //아이템 이미지 _SkillCoolTime = 45; _ReloadTime = 2f; }
//float shootDelay = 0.5f; protected override void Awake() { base.Awake(); _MaxBullet = 3; for (int i = 0; i < _MaxBullet; ++i) { GameObject obj = Instantiate(Resources.Load("Prefabs/Bullet/Bullet")) as GameObject; cBullet _Bullet = obj.GetComponent <cBullet>(); _Bullet._Speed = 100.0f; _Bullet._Damage = 0; _Bullet.transform.SetParent(transform); //총알 발사하기 전까지는 비활성화 해준다. _Bullet.gameObject.SetActive(false); _Bullet._BulletState = BulletState.PlayerSniper; _BulletPoll.Add(_Bullet); } _Delay = 1; _ItemID = 3; _ItemName = "화승총"; //아이템이름 _ItemDescrIption = "비가 오면 사용할수 없는총"; //아이템설명 _Type = ItemType.OneShot; //아이템타입 _MinAttackDamage = 30; //최소데미지 _MaxAttackDamage = 41; //최대데미지 _AttackSpeed = 1f; //공격속도 _Quality = ItemQuality.Normal; //아이템등급 _ItemIcon = Resources.Load <Sprite>("Itemp/MatchlockGun"); //아이템 이미지 _ItemPrice = 700; //아이템가격 _ReloadTime = 3f; }
protected override void Awake() { base.Awake(); _MaxBullet = 30; for (int i = 0; i < _MaxBullet; ++i) { GameObject obj = Instantiate(Resources.Load("Prefabs/Bullet/Bullet")) as GameObject; cBullet _Bullet = obj.GetComponent <cBullet>(); _Bullet._Speed = 30.0f; _Bullet._Damage = 0; _Bullet.transform.SetParent(transform); //총알 발사하기 전까지는 비활성화 해준다. _Bullet.gameObject.SetActive(false); _Bullet._BulletState = BulletState.Player; _BulletPoll.Add(_Bullet); } _Delay = 0.03f; _ItemID = 6; _ItemName = "MT8 카빈"; //아이템이름 _ItemDescrIption = "가볍고 연사가 빠른 돌격소총"; //아이템설명 _Type = ItemType.Gun; //아이템타입 _MinAttackDamage = 3; //최소데미지 _MaxAttackDamage = 5; //최대데미지 _AttackSpeed = 10.53f; //공격속도 _Quality = ItemQuality.Rare; //아이템등급 _ItemIcon = Resources.Load <Sprite>("Itemp/Rifle0"); //아이템 이미지 _ItemPrice = 1500; //아이템가격 _ReloadTime = 2.1f; }
//불릿발사후3초후 불릿삭제 IEnumerator ActiveBullet(cBullet Bullet) { yield return(new WaitForSeconds(3.0f)); Bullet._Start = false; Bullet.gameObject.SetActive(false); }
public cBullet GetObject(int index) { cBullet obj = m_objects[index].GetOneObject; return(obj); }
public virtual void fire(Vector2f target) { if (this.isReadForNextShot()) { Vector2f dir = cAppMath.Vec2NormalizeReturn(target - owner.Bounds.center); Vector2f toSpreadTarget = cAppMath.GetRandomVecBySpread(dir, spread); cBullet b = new cBullet(this.owner, owner.Bounds.center, toSpreadTarget); owner.Scene.EntityPool.AddBullet(b); } }
public void FireBulet(Vector3 Dir, float _angle) { cBullet Bullet = cMonsterBullet.GetInstance.GetObject(4); Bullet.transform.position = this.transform.position; Bullet.transform.rotation = Quaternion.Euler(0f, 0f, _angle); Bullet._Start = true; Bullet.gameObject.SetActive(true); StartCoroutine("ActiveBullet", Bullet); }
IEnumerator SkillCourutin() { Player.GetInstance._Buff.SetTrigger("PowerBuff"); cBullet Bullet = _BulletPoll[_CurBulletIndex]; Bullet._Damage += 30; yield return(new WaitForSeconds(30.0f)); Bullet._Damage = 0; Player.GetInstance._Buff.SetTrigger("BuffOff"); }
void FireBulet(Vector3 Dir, float _angle, int Count) { cBullet Bullet = cMonsterBullet.GetInstance.GetObject(4); Bullet.transform.position = Dir; Bullet.transform.rotation = Quaternion.Euler(0f, 0f, _angle); Bullet.gameObject.SetActive(true); if (Count == 9) { cMonsterBullet.GetInstance.AllFire(4); cMonsterBullet.GetInstance.ActiveBullet(4); } }
public static void resolveMonsterVsBullet(cMonster m, cBullet bullet, Vector2f intersection) { Vector2f impulse = new Vector2f(); impulse.X = bullet.Heading.X * Constants.BULLET_HIT_FORCE; impulse.Y = bullet.Heading.Y * Constants.BULLET_HIT_FORCE; m.AddForce(impulse); m.Hit(1, bullet); // bullet.Position = intersection; // bullet.LastPosition = intersection; bullet.kill(); }
public void Inititlized(ref GameObject obj, int MaxIndex, int Damage, float Speed, BulletState Type, Transform transform) { _MaxIndex = MaxIndex; //복사본 갯수에 맞춰 만들어주기. for (int i = 0; i < _MaxIndex; ++i) { GameObject _obj = MonoBehaviour.Instantiate(obj); cBullet _Bullet = _obj.GetComponent <cBullet>(); _Bullet._Speed = Speed; _Bullet._Damage = Damage; _Bullet._BulletState = Type; _Bullet._Start = false; _Bullet.transform.SetParent(transform); _Bullet.gameObject.SetActive(false); _BulletList.Add(_Bullet); } }
public override void fire(Vector2f target) { if (this.isReadForNextShot()) { int numShots = 4; Vector2f dir = cAppMath.Vec2NormalizeReturn(target - owner.Bounds.center); float dirAngle = (float)cAppMath.GetAngleOfVector(dir); float unitAngle = spread / numShots; float tangle = dirAngle - ((numShots / 2.0f) * unitAngle); for (int i = 0; i < numShots; ++i) { tangle += i * unitAngle; //Vector2f toSpreadTarget = cAppMath.GetRandomVecBySpread(dir, spread); Vector2f toSpreadTarget = new Vector2f((float)Math.Cos(tangle), (float)Math.Sin(tangle)); cBullet b = new cBullet(this.owner, owner.Bounds.center, toSpreadTarget); owner.Scene.EntityPool.AddBullet(b); } } }
/* * { * if(this.isReadForNextShot()) * { * Vector2f dir = AppMath.Vec2NormalizeReturn(target - owner.Bounds.center); * Vector2f toSpreadTarget = AppMath.GetRandomVecBySpread(dir, spread); * cBullet b = new cBullet(this.owner, owner.Bounds.center, toSpreadTarget); * owner.Scene.EntityPool.AddBullet(b); * } * } */ // in every weapon, the same method used to add a bullet to the scene protected void Shot(Vector2f direction) { cBullet b = new cBullet(this.owner, BulletBreed.GetBreed(this.bulletBreedID), owner.Bounds.center, direction); owner.Scene.EntityPool.AddBullet(b); }
public void AddBullet(cBullet bullet) { bullets.Add(bullet); }
public void AddBullet(cGameObject owner, Vector2f pos, Vector2f direction) { cBullet bullet = new cBullet(owner, pos, direction); bullets.Add(bullet); }
public static void resolvePlayerVsBullet(cPlayer player, cBullet bullet, Vector2f intersection) { bullet.kill(); }