コード例 #1
0
    void InitializeGame()
    {
        //инициализируем пулл объектов
        Instantiate(ObjectPoolSetup);

        //инициализируем звездное небо
        Instantiate(StarsGenerator);
        //инициализируем игрока
        _player = Instantiate(PlayerPrefab) as GameObject;
        _playerMovementModel = new PlayerMovementModel(_player, RotationSpeed, MovingSpeed);

        //инициализируем стрельбу и урон
        _shotModel        = new ShootModel(_player);
        _damageController = new DamageController();
        Instantiate(StrongWeaponController);

        //инициализируем пользовательский ввод
        _inputController = new UserInputController(_playerMovementModel, _shotModel);
        _userInput       = _inputController.GetUserInputView();

        //инициализируем UI
        _playerPannel = new PlayerPannelController(PlayerPannel);
        _uiController = new UIController();
        _gameEventSystem.UpdateStrongBulletValueLaunch(MaxSrongBulletsCount);
        _scoreController = new ScoreController(ScoreDisplay);

        //инициализируем спавн астероидов
        Instantiate(AwaitingControllerPrefab);
        _spawnModel = new ObjectSpawnModel(AsteroidsSpawnPointsObject);
        _asteroidsSpawnController = new AsteroidsSpawnController(_spawnModel);
        _ufoSpawnController       = new UFOSpawnController(_spawnModel);

        _isGameInitialized = true;
    }
コード例 #2
0
    public UserInputController(PlayerMovementModel movementModel, ShootModel shotModel)
    {
        _playerMovModel = movementModel;
        _shootModel     = shotModel;
        _userInputView  = new UserInputView(this);
        GameManager.Instanse.GameEventSystem.StartGame  += OnStartGame;
        GameManager.Instanse.GameEventSystem.KeyPress   += OnKeyPressed;
        GameManager.Instanse.GameEventSystem.KeyUp      += OnKeyUp;
        GameManager.Instanse.GameEventSystem.FinishGame += OnFinishGame;

        //инициализируем команды
        _commandsDictionary.Add(KeyCode.UpArrow, new MoveTowardsCommand(_playerMovModel));
        _commandsDictionary.Add(KeyCode.LeftArrow, new RotateLeftCommand(_playerMovModel));
        _commandsDictionary.Add(KeyCode.RightArrow, new RotateRightCommand(_playerMovModel));
        _commandsDictionary.Add(KeyCode.Space, new FireWithWeakWeaponCommand(_shootModel));
        _commandsDictionary.Add(KeyCode.LeftShift, new FireWithStrongBulletCommand());
        _commandsDictionary.Add(KeyCode.LeftControl, new FireWithStrongLaserCommand());
        _commandsDictionary.Add(KeyCode.Escape, new GamePauseCommand());
    }
コード例 #3
0
		public virtual void Initialize(WeaponSocket weaponSocket, Weapon weapon, WeaponHud hud, AimOrigin aimOrigin,
			HitEvent hitEvent)
		{
			PhotonView = GetComponent<PhotonView>();
			m_rigidbody = GetComponent<Rigidbody>();
			WeaponAudio = GetComponent<AudioSource>();
			m_shield = GetComponent<Shield>();
			m_playerMovementModel = GetComponent<PlayerMovementModel>();
			HitEvent = hitEvent;
			m_weaponHud = hud;
			WeaponSocket = weaponSocket;
			Weapon = weapon;
			AimOrigin = aimOrigin;
			CameraShake = CameraShake.Instance;

			CreateWeapon();
			CreateMuzzleFlash();

			WeaponCollision = WeaponObject.GetComponent<WeaponCollision>();

			m_currentAmmo = Weapon.AmmoClip;

			m_weaponHud.SetAmmoAmount(m_currentAmmo, Weapon.AmmoClip);
		}
コード例 #4
0
 public MoveTowardsCommand(PlayerMovementModel model)
 {
     _model = model;
 }
コード例 #5
0
 public RotateRightCommand(PlayerMovementModel model)
 {
     _model = model;
 }
コード例 #6
0
 private void Start()
 {
     m_playerMovementModel = GetComponent <PlayerMovementModel>();
     m_playerBootsModel    = GetComponent <PlayerBootsModel>();
     m_weaponModel         = GetComponent <WeaponModel>();
 }