public static void createPool() { pool_ = new Shutter[POOL_MAX]; for (var i = 0; i < POOL_MAX; ++i) { var task = new Shutter(); task.alive_ = false; pool_[i] = task; } pool_index_ = 0; }
private void initialize() { #if UNITY_PSP2 UnityEngine.PSVita.Diagnostics.enableHUD = true; #endif DontDestroyOnLoad(gameObject); stopwatch_ = new System.Diagnostics.Stopwatch(); stopwatch_.Start(); rendering_front_ = 0; camera_ = GameObject.Find("MainCamera").GetComponent <Camera>(); // Camera.main; camera_.eventMask = 0; { player_go_ = Instantiate(player_prefab_) as GameObject; player_arm_transform_ = player_go_.transform.Find("fighter_arm"); { var go = new GameObject(); go.name = "LockonRangeRenderer"; go.transform.position = CV.Vector3Zero; go.transform.rotation = CV.QuaternionIdentity; var lr = go.AddComponent <LockonRangeRenderer>(); LockonRangeRenderer.setInstance(lr); go.transform.SetParent(player_go_.transform); go.transform.localPosition = new Vector3(0f, 0.5f, 0f); } { var go = new GameObject(); go.name = "ShieldRenderer"; go.transform.position = Vector3.zero; go.transform.rotation = Quaternion.identity; go.AddComponent <ShieldRenderer>(); go.transform.SetParent(player_go_.transform); go.transform.localPosition = new Vector3(0f, 0f, 0f); } } Options.Instance.init(); InputManager.Instance.init(); GameManager.Instance.init(); TaskManager.Instance.init(); MyCollider.createPool(); LockTarget.createPool(); Missile.createPool(); Bullet.createPool(); Enemy.createPool(); EnemyBullet.createPool(); Shutter.createPool(); Debris.Instance.init(debris_material_); Spark.Instance.init(spark_material_); Beam.Instance.init(beam_material_); Beam2.Instance.init(beam2_material_); Trail.Instance.init(trail_material_); Explosion.Instance.init(explosion_material_); Hahen.Instance.init(hahen_material_); Shockwave.Instance.init(shockwave_material_); // HUD.Instance.init(); LockonRange.Instance.init(lockon_range_material_); LockonRangeRenderer.Instance.init(camera_); Shield.Instance.init(shield_material_); Sight.Instance.init(sight_material_); if (SightRenderer.Instance) { SightRenderer.Instance.init(camera_); } VRSprite.Instance.init(sprites_, vrsprite_material_); if (VRSpriteRenderer.Instance) { VRSpriteRenderer.Instance.init(camera_); } Notice.createPool(); MySprite.Instance.init(sprites_, sprite_material_); MySpriteRenderer.Instance.init(camera_); MyFont.Instance.init(font_, font_material_); MyFontRenderer.Instance.init(camera_); draw_buffer_ = new DrawBuffer[2]; for (int i = 0; i < 2; ++i) { draw_buffer_[i].init(); } manual_reset_event_ = new System.Threading.ManualResetEvent(false); #if UNITY_PS4 setFPS(120); #else setFPS(90); #endif update_frame_ = 0; update_sync_frame_ = 0; update_time_ = 0f; render_frame_ = 0; render_sync_frame_ = 0; camera_holder_transform_ = camera_holder_.transform; ProjectionMatrix = camera_.projectionMatrix; if (zako_prefab_ != null) { zako_pool_ = new GameObject[ZAKO_MAX]; for (var i = 0; i < ZAKO_MAX; ++i) { zako_pool_[i] = Instantiate(zako_prefab_) as GameObject; zako_pool_[i].SetActive(false); } } if (dragon_head_prefab_ != null) { dragon_head_pool_ = new GameObject[DRAGON_HEAD_MAX]; for (var i = 0; i < DRAGON_HEAD_MAX; ++i) { dragon_head_pool_[i] = Instantiate(dragon_head_prefab_) as GameObject; dragon_head_pool_[i].SetActive(false); } } if (dragon_body_prefab_ != null) { dragon_body_pool_ = new GameObject[DRAGON_BODY_MAX]; for (var i = 0; i < DRAGON_BODY_MAX; ++i) { dragon_body_pool_[i] = Instantiate(dragon_body_prefab_) as GameObject; dragon_body_pool_[i].SetActive(false); } } if (dragon_tail_prefab_ != null) { dragon_tail_pool_ = new GameObject[DRAGON_TAIL_MAX]; for (var i = 0; i < DRAGON_TAIL_MAX; ++i) { dragon_tail_pool_[i] = Instantiate(dragon_tail_prefab_) as GameObject; dragon_tail_pool_[i].SetActive(false); } } if (shutter_prefab_ != null) { shutter_pool_ = new GameObject[SHUTTER_MAX]; for (var i = 0; i < SHUTTER_MAX; ++i) { shutter_pool_[i] = Instantiate(shutter_prefab_) as GameObject; shutter_pool_[i].SetActive(false); } } uv_scroller_list_ = new UVScroller[8]; // audio audio_sources_bullet_ = new AudioSource[AUDIOSOURCE_BULLET_MAX]; for (var i = 0; i < AUDIOSOURCE_BULLET_MAX; ++i) { audio_sources_bullet_[i] = gameObject.AddComponent <AudioSource>(); audio_sources_bullet_[i].clip = se_bullet_; audio_sources_bullet_[i].volume = 0.4f; } audio_source_bullet_index_ = 0; audio_sources_explosion_ = new AudioSource[AUDIOSOURCE_EXPLOSION_MAX]; for (var i = 0; i < AUDIOSOURCE_EXPLOSION_MAX; ++i) { audio_sources_explosion_[i] = gameObject.AddComponent <AudioSource>(); audio_sources_explosion_[i].clip = se_explosion_; audio_sources_explosion_[i].volume = 0.25f; } audio_source_explosion_index_ = 0; audio_sources_missile_ = new AudioSource[AUDIOSOURCE_MISSILE_MAX]; for (var i = 0; i < AUDIOSOURCE_MISSILE_MAX; ++i) { audio_sources_missile_[i] = gameObject.AddComponent <AudioSource>(); audio_sources_missile_[i].clip = se_missile_; audio_sources_missile_[i].volume = 0.25f; } audio_source_missile_index_ = 0; audio_sources_lockon_ = new AudioSource[AUDIOSOURCE_LOCKON_MAX]; for (var i = 0; i < AUDIOSOURCE_LOCKON_MAX; ++i) { audio_sources_lockon_[i] = gameObject.AddComponent <AudioSource>(); audio_sources_lockon_[i].clip = se_lockon_; audio_sources_lockon_[i].volume = 0.20f; } audio_source_lockon_index_ = 0; audio_sources_shield_ = new AudioSource[AUDIOSOURCE_SHIELD_MAX]; for (var i = 0; i < AUDIOSOURCE_SHIELD_MAX; ++i) { audio_sources_shield_[i] = gameObject.AddComponent <AudioSource>(); audio_sources_shield_[i].clip = se_shield_; audio_sources_shield_[i].volume = 0.25f; } audio_source_shield_index_ = 0; audio_sources_voice_ikuyo_ = gameObject.AddComponent <AudioSource>(); audio_sources_voice_ikuyo_.clip = se_voice_ikuyo_; audio_sources_voice_ikuyo_.volume = 0.75f; audio_sources_voice_uwaa_ = gameObject.AddComponent <AudioSource>(); audio_sources_voice_uwaa_.clip = se_voice_uwaa_; audio_sources_voice_uwaa_.volume = 0.75f; audio_sources_voice_sorosoro_ = gameObject.AddComponent <AudioSource>(); audio_sources_voice_sorosoro_.clip = se_voice_sorosoro_; audio_sources_voice_sorosoro_.volume = 0.75f; audio_sources_voice_ototo_ = gameObject.AddComponent <AudioSource>(); audio_sources_voice_ototo_.clip = se_voice_ototo_; audio_sources_voice_ototo_.volume = 0.75f; audio_sources_voice_yoshi_ = gameObject.AddComponent <AudioSource>(); audio_sources_voice_yoshi_.clip = se_voice_yoshi_; audio_sources_voice_yoshi_.volume = 0.75f; audio_sources_bgm_ = gameObject.AddComponent <AudioSource>(); audio_sources_bgm_.clip = bgm01_; audio_sources_bgm_.volume = 0.5f; audio_sources_bgm_.loop = true; is_bgm_playing_ = false; gc_start_count_ = System.GC.CollectionCount(0 /* generation */); my_camera_ = MyCamera.create(); player_ = Player.create(); flow_speed_target_ = 0f; flow_speed_ = 0f; }
private IEnumerator act() { game_phase_ = GamePhase.Title; Player.Instance.setPhaseTitle(); Player.Instance.setPositionXY(0f, -27f); SystemManager.Instance.registBgm(DrawBuffer.BGM.Stop); SystemManager.Instance.registMotion(DrawBuffer.Motion.Play); SystemManager.Instance.setFlowSpeed(0f); SystemManager.Instance.setSubjective(true); for (var w = new Utility.WaitForSeconds(4f, update_time_); !w.end(update_time_);) { yield return(null); } Notice notice; { notice = Notice.create(-400f, 400f, MySprite.Kind.GamePadPress, MySprite.Type.Full, false /* blink */); } var leave_time_start = update_time_; while (game_phase_ == GamePhase.Title) { bool exit_title = false; var elapsed_time = update_time_ - leave_time_start; if (InputManager.Instance.getButton(InputManager.Button.Fire) > 0) { exit_title = true; replay_manager_.startRecording(update_time_); replay_mode_ = false; } else { if (replay_manager_.hasRecorded()) { bool start_replay = false; if (replay_mode_) { if (elapsed_time > 1f) { start_replay = true; } } else { if (elapsed_time > 30f) { start_replay = true; replay_mode_ = true; } } if (start_replay) { exit_title = true; SystemManager.Instance.setSubjective(false); replay_manager_.startPlaying(update_time_, Player.Instance); } } } if (exit_title) { game_phase_ = GamePhase.Game; SystemManager.Instance.registSound(DrawBuffer.SE.Missile); SystemManager.Instance.registMotion(DrawBuffer.Motion.GoodLuck); } yield return(null); } notice.destroy(); MyRandom.setSeed(123456789u); for (var w = new Utility.WaitForSeconds(1.5f, update_time_); !w.end(update_time_);) { yield return(null); } Player.Instance.setPhaseStart(); SystemManager.Instance.registBgm(DrawBuffer.BGM.Battle); for (var w = new Utility.WaitForSeconds(4f, update_time_); !w.end(update_time_);) { yield return(null); } Notice.create(0f, 0f, update_time_ + 3f, MySprite.Kind.GamePadPress, MySprite.Type.Full, true /* blink */); for (var w = new Utility.WaitForSeconds(1f, update_time_); !w.end(update_time_);) { yield return(null); } Player.Instance.setPhaseBattle(); SystemManager.Instance.setFlowSpeed(-100f); while (TubeScroller.Instance.getDistance() < 100f) { yield return(null); } for (var j = 0; j < 4; ++j) { for (var w = new Utility.WaitForSeconds(2f, update_time_); !w.end(update_time_);) { yield return(null); } for (var i = 0; i < 4; ++i) { for (var w = new Utility.WaitForSeconds(0.5f, update_time_); !w.end(update_time_);) { yield return(null); } Enemy.create(Enemy.Type.Zako2); } if (j == 1) { Notice.create(-200f, 200f, update_time_ + 3f, MySprite.Kind.GamePadRelease, MySprite.Type.Full, true /* blink */); } } while (TubeScroller.Instance.getDistance() < 2400f) { yield return(null); } Enemy dragon = Enemy.create(Enemy.Type.Dragon); SystemManager.Instance.setFlowSpeed(-10f); while (TubeScroller.Instance.getDistance() < 2800f) { for (var w = new Utility.WaitForSeconds(5f, update_time_); !w.end(update_time_);) { yield return(null); } for (var j = new Utility.WaitForSeconds(2f, update_time_); !j.end(update_time_);) { yield return(null); Enemy.create(Enemy.Type.Zako2); for (var w = new Utility.WaitForSeconds(0.25f, update_time_); !w.end(update_time_);) { yield return(null); } } yield return(null); } float flow_speed = 150f; SystemManager.Instance.setFlowSpeed(-150f); dragon.setMode(Dragon.Mode.Chase); for (var i = 0; i < 4; ++i) { for (var v = new Utility.WaitForSeconds(3f, update_time_); !v.end(update_time_);) { Enemy.create(Enemy.Type.Zako2); for (var w = new Utility.WaitForSeconds(0.5f, update_time_); !w.end(update_time_);) { yield return(null); } } for (var w = new Utility.WaitForSeconds(2f, update_time_); !w.end(update_time_);) { yield return(null); } } for (var w = new Utility.WaitForSeconds(2f, update_time_); !w.end(update_time_);) { yield return(null); } dragon.setMode(Dragon.Mode.Farewell); for (var i = 0; i < 16; ++i) { float rot = 30f * i; Shutter.create(rot, flow_speed, update_time_); Shutter.create(rot + 180f, flow_speed, update_time_); for (var w = new Utility.WaitForSeconds(1f, update_time_); !w.end(update_time_);) { yield return(null); } } while (TubeScroller.Instance.getDistance() < 9400f) { yield return(null); } dragon.setMode(Dragon.Mode.LastAttack); for (var w = new Utility.WaitForSeconds(11f, update_time_); !w.end(update_time_);) { yield return(null); } Notice.create(0f, 0f, update_time_ + 6f, MySprite.Kind.Logo, MySprite.Type.Full, false); for (var w = new Utility.WaitForSeconds(5f, update_time_); !w.end(update_time_);) { yield return(null); } SystemManager.Instance.restart(); }