Exemplo n.º 1
0
	public IEnumerator move(int _sum, float _reload_time,
		float _rotation, float _init_rotation_speed, float _inwavessum, float _wave_rot_spawn, danmaku_types _type, float[] _danmaku_move_params,float [] _bullet_params, movement_type movement)
	{
		_inwavessum =(_inwavessum <= 0) ? 1 : _inwavessum;
		// При инициализации пули, её экземпляр класса принимает null.
		// Поэтому создаем два экземпляра - первый хранит тип пули, второй используется для инициализации пули
		// и копирует тип из первого экземпляра
		Danmaku create_new = set_danmaku_type (_type); 
		Danmaku clone_bullet;


		// wave_1 - число волн - параметр sum
		// wave_2 - кол-во пуль в одной волне - новый параметр
		// wave_3 - угловая разница между пулями в волне
		// на будущее - параметры положения спауна пуль
		// итого 2 параметра для волны 
		for (float timer = 0; timer < _sum; timer += 1) 
        {
			float cur_wave_rot = 0;
			for (int i = 0; i < _inwavessum; i++) {
				clone_bullet = create_new;
				set_move_params (clone_bullet, _danmaku_move_params, movement);
				set_bul_params (_bullet_params, _type);
				clone_bullet = Instantiate (clone_bullet.transform, emiiter_transform.position, Quaternion.Euler (0, emiiter_transform.rotation.eulerAngles.y + _rotation+cur_wave_rot, 0)) as Danmaku;
				cur_wave_rot += _wave_rot_spawn;
			}
            _rotation += _init_rotation_speed;
            if (_reload_time > 0)
            {
                yield return new WaitForSeconds(_reload_time);
            }
        }
	}
Exemplo n.º 2
0
 public Enemy(int new_health, int new_speed, movement_type new_movement)
 {
     health   = new_health;
     speed    = new_speed;
     movement = new_movement;
 }
Exemplo n.º 3
0
	/// <summary>
	/// Задает параметры движения пули в зависимости от типа движения
	/// </summary>
	/// <param name="_params">Массив значений.</param>
	/// <param name="_type">Тип движения пули.</param>
	void set_move_params(Danmaku _bullet, float [] _params, movement_type _type)
	{
		_bullet.type = _type;
		switch (_type) 
		{
		// Порядок значения в массиве и тип движения определяют за что отвечает каждая цифра в массиве параметров.
		// Неудобно, нет подсказки при вводе.
		case movement_type.simple:

			_bullet.Speed = _params [0];
			_bullet.Acceleration = _params [1]; 
			_bullet._rotation = _params [2];
			_bullet._angular_acceleration = _params [3];
			break; 
		case movement_type.second:
			_bullet.Speed = _params [0];
			_bullet.Acceleration = _params [1]; 
			_bullet._rotation = _params [2];
			_bullet._angular_acceleration = _params [3];
			_bullet._max_rotation = _params [4];
			break;
		default:
			//print ("Неправильно задан тип движения");
			break;
		}
	}