private void create_floor_block() { Vector3 block_position; if (!this.last_block.is_created) { block_position = this.player.transform.position; block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); block_position.y = 0.0f; } else { block_position = this.last_block.position; } block_position.x += BLOCK_WIDTH; // this.block_creator.createBlock(block_position); this.level_control.update(); block_position.y = level_control.current_block.height * BLOCK_HEIGHT; LevelControl.CreationInfo current = this.level_control.current_block; if (current.block_type == Block.TYPE.FLOOR) { this.block_creator.createBlock(block_position); } this.last_block.position = block_position; this.last_block.is_created = true; }
private void create_floor_block() { Vector3 block_position; if (!this.last_block.is_created) { block_position = this.player.transform.position; block_position.x -= block_width * ((float)block_num_in_screen / 2.0f); block_position.y = 0.0f; } else { block_position = this.last_block.position; } block_position.x += block_width; //this.block_creator.createBlock(block_position); this.level_control.update(); block_position.y = level_control.current_block.height * block_height; LevelControl.CreationInfo current = this.level_control.current_block; if (current.block_type == Block.Type.floor) { this.block_creator.createBlock(block_position); } this.last_block.position = block_position; this.last_block.is_created = true; }
// ================================================================ // // 블록을 만든다. private void create_floor_block() { Vector3 block_position; // -------------------------------------------------------------------- // // 다음에 만들 블록 타입(바닥 또는 구멍)을 결정한다. this.level_control.update(this.game_root.getPlayTime()); // -------------------------------------------------------------------- // // 블록의 위치. // '마지막에(직전에)' 만든 블록의 위치를 구한다. if (!this.last_block.is_created) { // 또한 하나도 블록을 만들지 않았을 때는. // 플레이어의 뒤쪽, 스크린 왼쪽 끝을 기준으로 한다. block_position = this.player.transform.position; block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); } else { block_position = this.last_block.position; } block_position.x += BLOCK_WIDTH; block_position.y = (float)this.level_control.current_block.height * BLOCK_HEIGHT; // -------------------------------------------------------------------- // // 블록 게임 오브젝트를 만든다. LevelControl.CreationInfo current = this.level_control.current_block; this.block_creator.createBlock(current, block_position); // -------------------------------------------------------------------- // // 코인을 만든다. LevelData level_data = this.level_control.getCurrentLevelData(); this.coin_creator.createCoin(level_data, this.level_control.block_count, block_position); // -------------------------------------------------------------------- // // 방해 캐릭터를 만든다. this.enemy_creator.createEnemy(level_data, this.level_control.block_count, block_position); // -------------------------------------------------------------------- // // '마지막에 만든 블록의 위치'를 갱신해 둔다. this.last_block.position = block_position; this.last_block.is_created = true; // -------------------------------------------------------------------- // }
private void create_monster() { LevelControl.CreationInfo current_block = this.level_control.current_block; //HACK : Second line for monster proper position if (level_control.current_monster.monster_type == MonsterType.Gumba && current_block.current_count >= current_block.max_sequnce_count * Random.Range(0.1f, 0.9f)) { Vector3 monster_position = last_block.position + new Vector3(0, 1, 0); monster_creator.createMonster(monster_position); level_control.current_monster.current_count++; } }
private void create_floor_block() { Vector3 block_position; // 이제부터 만들 블록의 위치. if (!this.last_block.is_created) // last_block이 생성되지 않은 경우. // 블록의 위치를 일단 Player와 같게 한다. { block_position = this.player.transform.position; // 그리고 나서 블록의 X위치를 화면 절반만큼 왼쪽으로 이동. block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); // 블록의 Y위치는 0으로. block_position.y = 0.0f; } else // last_block이 생성된 경우. // 이번에 만드는 블록의 위치를 직전에 만든 블록과 같게. { block_position = this.last_block.position; } // 블록을 1블럭만큼 오른쪽으로 이동. block_position.x += BLOCK_WIDTH; // BlockCreator 스크립트의 createBlock()메소드에 생성을 지시!. // 이제까지의 코드에서 설정한 block_position을 건네준다. // ↓ 이 행을 주석 처리(혹은 삭제). // this.block_creator.createBlock(block_position); // ↓ 볼드체 부분을 추가. this.level_control.update(); // LevelControl를 갱신. // level_control에 저장된 current_block(지금 만들 블록 정보)의. // height(높이)를 씬 상의 좌표로 변환. block_position.y = level_control.current_block.height * BLOCK_HEIGHT; // 지금 만들 블록에 관한 정보를 변수 current에 넣는다. LevelControl.CreationInfo current = this.level_control.current_block; // 지금 만들 블록이 마루면. if (current.block_type == Block.TYPE.FLOOR) { // block_position의 위치에 블록을 실제로 생성. this.block_creator.createBlock(block_position); } // last_block의 위치를 이번 위치로 갱신. this.last_block.position = block_position; // 블록이 생성되었으므로 last_block의 is_created를 true로 설정. this.last_block.is_created = true; }
private void create_floor_block() { Vector3 block_position; // 이제부터 만들 블록 위치. if (!this.last_block.is_created) // last_block을 미작성한 경우. // 블록 위치를 일단 Player와 같게 한다. { block_position = this.player.transform.position; // 그러고 나서 블록의 X위치를 화면 절반 만큼 왼쪽으로 이동. block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); // 블록의 Y위치는 0으로. block_position.y = 0.0f; } else // last_block이 이미 만들어진 경우. // 이번에 만들 블록 위치를 마지막에 만든 블록과 같게 한다. { block_position = this.last_block.position; } // 블록을 한 블록만큼 오른쪽으로 이동한다. block_position.x += BLOCK_WIDTH; // BlockCreator스크립트의 createBlock() 메소드에 작성 지시!. // 지금까지 코드에서 설정한 block_position을 전달한다. // ↓ 이 행을 주석처리(혹은 삭제). // this.block_creator.createBlock(block_position); // this.level_control.update(); // LevelControl을 갱신. this.level_control.update(this.game_root.getPlayTime()); // level_control에 배치된 current_block(지금 만들 블록 정보)의. // height를 씬 좌표로 변환 block_position.y = level_control.current_block.height * BLOCK_HEIGHT; // 이번 블록에 관한 정보를 변수 current에 저장. LevelControl.CreationInfo current = this.level_control.current_block; // 이번 블록이 바닥이면. if (current.block_type == Block.TYPE.FLOOR) { // block_position 위치에 블록을 실제로 작성. this.block_creator.createBlock(block_position); } // last_block의 위치를 이번 위치로 갱신. this.last_block.position = block_position; // 블록 작성이 끝났으니 last_block의 is_created를 true로 한다. this.last_block.is_created = true; }
private void create_floor_block() { Vector3 block_position; // 이제부터 만들 블록의 위치 if (!this.last_block.is_created) { // last_block이 생성되지 않은 경우 // 블록의 위치를 일단 Player와 같게 한다 block_position = this.player.transform.position; // 그러고 나서 블록의 X 위치를 화면 절반만큼 왼쪽으로 이동 block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); // 블록의 Y위치는 0으로 block_position.y = 0.0f; } else { // last_block이 생성된 경우 // 이번에 만들 블록의 위치를 직전에 만든 블록과 같게 block_position = this.last_block.position; } block_position.x += BLOCK_WIDTH; // ↓ 이 행을 주석 처리(혹은 삭제). // this.block_creator.createBlock(block_position); // ↓ 볼드체 부분을 추가. //this.level_control.update(); // LevelControl을 갱신. // level_control에 저장된 current_block(지금 만들 블록 정보)의 height(높이)를 씬 상의 좌표로 변환. this.level_control.update(this.game_root.getPlayTime()); block_position.y = level_control.current_block.height * BLOCK_HEIGHT; // 지금 만들 블록에 관한 정보를 변수 current에 넣는다. LevelControl.CreationInfo current = this.level_control.current_block; // 지금 만들 블록이 바닥이면 (지금 만들 블록이 구멍이라면) if (current.block_type == Block.TYPE.HOLE) { } if (current.block_type == Block.TYPE.FLOOR) { // block_position의 위치에 블록을 실제로 생성. this.block_creator.createBlock(block_position); } this.last_block.position = block_position; this.last_block.is_created = true; blockPos = block_position; }
private void create_floor_block() { Vector3 block_position; // これから作るブロックの位置 if (!this.last_block.is_created) // last_blockが未作成の場合 { // ブロックの位置を、とりあえずPlayerと同じにする block_position = this.player.transform.position; // それから、ブロックのX位置を半分画面、左に移動 block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); // ブロックのY位置はゼロに block_position.y = 0.0f; } else // last_blockが作成済みの場合 { // 今回作るブロックの位置を、前回作ったブロックと同じに block_position = this.last_block.position; } // ブロックを1ブロック分、右に移動 block_position.x += BLOCK_WIDTH; // BlockCreatorスクリプトのcreateBlock()メソッドに作成指示! // this.level_control.update(); // LevelControlを更新 this.level_control.update(this.game_root.getPlayTime()); // level_controlに置かれたcurrent_block(今作るブロックの情報)の // height(高さ)を、シーン上の座標に変換 block_position.y = level_control.current_block.height * BLOCK_HEIGHT; // 今回作るブロックに関する情報を変数currentに収める LevelControl.CreationInfo current = this.level_control.current_block; // 今回作るブロックが床なら if (current.block_type == Block.TYPE.FLOOR) { // block_positionの位置に、ブロックを実際に作成 this.block_creator.createBlock(block_position); } // last_blockのいちを、今回の位置に更新 this.last_block.position = block_position; // ブロック作成済みなので、last_blockのis_createdをtrueに this.last_block.is_created = true; }
private void create_floor_block() { Vector3 block_position; // 이제부터 만들 블록의 위치 if (!this.last_block.is_created) // last_block이 생성되지 않은 경우. { // 블록의 위치를 일단 Player와 같게 한다. block_position = this.player.transform.position; // 그러고 나서 블록의 X 위치를 화면 절반만큼 왼쪽으로 이동. block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); // 블록의 Y위치는 0으로 block_position.y = 0.0f; } else { // last_block이 생성된 경우 // 이번에 만들 블록의 위치를 직전에 만든 블록과 같게 block_position = this.last_block.position; } // 블록을 1블록만큼 오른쪽으로 이동 block_position.x += BLOCK_WIDTH; this.level_control.update(this.game_root.getPlayTime()); // level_control에 저장된 current_block(지금 만들 블록 정보)의 // height(높이)를 씬 상의 좌표로 변환 block_position.y = level_control.current_block.height * BLOCK_HEIGHT; // 지금 만들 블록에 관한 정보를 변수 current에 넣는다 LevelControl.CreationInfo current = this.level_control.current_block; // 지금 만들 블록이 바닥이면 if (current.block_type == Block.TYPE.FLOOR) { // block_position의 위치에 블록을 생성 this.block_creator.createBlock(block_position); } // last_block의 위치를 이번 위치로 갱신 this.last_block.position = block_position; // 블록이 생성되었으므로 last_block의 is_created를 true로 설정 this.last_block.is_created = true; }
// ================================================================ // // 블록을 만든다. public void createBlock(LevelControl.CreationInfo current_block, Vector3 block_position) { if (current_block.block_type == Block.TYPE.FLOOR) { // 다음에 만들 블록의 종류를 결정한다. // blockPrefabs에 설정된 블록이 차례로 나온다. // int next_block_type = this.block_count % this.blockPrefabs.Length; GameObject go = GameObject.Instantiate(this.blockPrefabs[next_block_type]) as GameObject; BlockControl new_block = go.GetComponent <BlockControl>(); new_block.transform.position = block_position; // BlockControl 클래스에 MapCreator를 기록해 둔다. // (BlockControl 클래스에서 MapCreator 클래스의 메소드를 호출하기 위해). // new_block.map_creator = this.map_creator; this.block_count++; } }
private void creare_blocks() { Vector3 block_position; if (!this.last_block.is_created) { block_position = this.player.transform.position; block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); block_position.y = 0.0f; } else { block_position = this.last_block.position; } block_position.y = level_control.current_block.height * BLOCK_HEIGHT; LevelControl.CreationInfo current = this.level_control.current_block; if (current.block_type == Block.TYPE.FLOOR) { block_position.x += BLOCK_WIDTH; block_creator.CreateBlock(block_position); } else if (current.block_type == Block.TYPE.SPINE_FLOOR) { block_position.x += SPINE_BLOCK_WIDTH - BLOCK_WIDTH * 0.5f; block_creator.CreateSpineBlock(block_position); block_position.x += BLOCK_WIDTH * 0.5f; } else { block_position.x += BLOCK_WIDTH; } level_control.current_block.current_count++; this.last_block.position = block_position; this.last_block.is_created = true; }
private void create_floor_block() { Vector3 block_position; if (!this.last_block.is_created) { block_position = this.player.transform.position; block_position.x -= BLOCK_WIDTH * ((float)BLOCK_NUM_IN_SCREEN / 2.0f); block_position.y = -8.3f; } else { block_position = this.last_block.position; } block_position.x += BLOCK_WIDTH; // ↓ 이 행을 주석 처리(혹은 삭제). // this.block_creator.createBlock(block_position); // ↓ 볼드체 부분을 추가. //this.level_control.update(); // LevelControl을 갱신. // level_control에 저장된 current_block(지금 만들 블록 정보)의 height(높이)를 씬 상의 좌표로 변환. // this.level_control.update(); this.level_control.Update(this.game_root.getPlayTime()); block_position.y = level_control.current_block.height * BLOCK_HEIGHT - 8.3f; // 지금 만들 블록에 관한 정보를 변수 current에 넣는다. LevelControl.CreationInfo current = this.level_control.current_block; // 지금 만들 블록이 바닥이면 (지금 만들 블록이 구멍이라면) if (current.block_type == Block.TYPE.FLOOR) { // block_position의 위치에 블록을 실제로 생성. this.block_creator.createBlock(block_position); } this.last_block.position = block_position; this.last_block.is_created = true; }