Example #1
0
    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;
    }
Example #2
0
    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;
    }
Example #3
0
    // ================================================================ //

    // 블록을 만든다.
    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;

        // -------------------------------------------------------------------- //
    }
Example #4
0
 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++;
     }
 }
Example #5
0
    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;
    }
Example #6
0
    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;
    }
Example #7
0
    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;
    }
Example #8
0
    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;
    }
Example #9
0
    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;
    }
Example #10
0
    // ================================================================ //

    // 블록을 만든다.
    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++;
        }
    }
Example #11
0
    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;
    }
Example #12
0
    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;
    }