ゲームっぽい画面にしてみる

ゲームっぽい画面にしてみる




真っ黒な画面ではつまらない!
ってことでそろそろゲーム画面を作ってみましょう!

まず↓の画像をassetsフォルダに追加します。

back.png
back.png
bill.png
bill.png

追加した例

追加した

次に、この画像を読み込めるようにします。
TextureResource.javaに以下のテクスチャタイプを追加します。

    //  テクスチャタイプ
    public enum TEXTURE_TYPE
    {
        CHARA,
        BACK,       //<  追加
        MENU,
    }

        :
        :

    //  タイプに応じたディレクトリ取得
    private String  _GetDirectory( TEXTURE_TYPE type )
    {
        switch( type )
        {
        case CHARA:     return "model/chara";
        case BACK:      return "model/back";      //<  追加
        case MENU:      return "model/menu";
        default:        return "";
        }
    }

これで画像を読み込めるようになったので実際に読み込んでみます。
MainActivityに以下のコードを追加します。

MainActivity.java
    //  コンストラクタ
    public  MainActivity()
    {
            :
        m_Back          = null;
        m_Bill          = null;
    }

        :
        :

    //  描画フレーム
    @Override
    public void onDrawFrame( GL10 gl )
    {
                :
                :

            //  テクスチャがなければ読み込む
            if( m_Image == null )
            {
                    :
                m_Back  = m_TexRes.Load( "back", TEXTURE_TYPE.BACK );
                m_Bill  = m_TexRes.Load( "bill", TEXTURE_TYPE.BACK );
            }

            //  描画
            if( m_Back != null )
            {
                //  まず、背景を描画
            }
            if( m_Image != null )
            {
                //  次にキャラを描画
            }
            if( m_Bill != null )
            {
                //  最後にビルを描画する
            }

あとは実際に描画してみるだけです!
まずは背景とビルを描画してみます。

            //  描画
            if( m_Back != null )
            {
                //  まず、背景を描画
                Sprite      sprite      = m_DrawDevice.GetSprite();
                DrawParam   drawParam   = sprite.CreateDrawParam( m_Back );
                {
                    drawParam.m_Pos.set( 0.0f, 0.0f );

                    drawParam.m_ImageRect.left      = 0;
                    drawParam.m_ImageRect.top       = 0;
                    drawParam.m_ImageRect.right     = ( int )DrawDevice.DRAW_WIDTH;
                    drawParam.m_ImageRect.bottom    = ( int )DrawDevice.DRAW_HEIGHT;
                }
                sprite.Draw( drawParam );
            }
                :
                :
            if( m_Bill != null )
            {
                //  最後にビルを描画する
                Sprite      sprite      = m_DrawDevice.GetSprite();
                DrawParam   drawParam   = sprite.CreateDrawParam( m_Bill );
                {
                    drawParam.m_Pos.set( 0.0f, 0.0f );

                    drawParam.m_ImageRect.left      = 0;
                    drawParam.m_ImageRect.top       = 0;
                    drawParam.m_ImageRect.right     = ( int )DrawDevice.DRAW_WIDTH;
                    drawParam.m_ImageRect.bottom    = ( int )DrawDevice.DRAW_HEIGHT;
                }
                sprite.Draw( drawParam );
            }

背景、ビルは描画領域のサイズに合わせているので位置は(0,0)、
サイズを描画領域のサイズに設定しています。

ヒットマンもビルの窓から顔を出すようにしてみましょう!

            if( m_Image != null )
            {
                //  次にキャラを描画
                Sprite      sprite      = m_DrawDevice.GetSprite();
                DrawParam   drawParam   = sprite.CreateDrawParam( m_Image );
                for( int y = 0; y < 3; ++y )
                {
                    for( int x = 0; x < 3; ++x )
                    {
                        drawParam.m_Pos.set(( float )x * 92.0f + 108.0f, ( float )y * 72.0f + 71.0f );

                        drawParam.m_ImageCenter.x       = m_Image.GetWidth() * 0.5f;
                        drawParam.m_ImageCenter.y       = m_Image.GetHeight();
                        drawParam.m_ImageRect.left      = 0;
                        drawParam.m_ImageRect.top       = 0;
                        drawParam.m_ImageRect.right     = m_Image.GetWidth();
                        drawParam.m_ImageRect.bottom    = m_Image.GetHeight();

                        sprite.Draw( drawParam );
                    }
                }
            }

キャラを各窓に配置しています。
座標はビルの画像に合わせた値です。

この状態で実行すると以下のようになります。

背景やビルも描画!

すべての窓からヒットマンがこちらを見てくるようになりましたw
これだとターゲットにすぐにバレそうww

このソースコード、描画部分がもろ被りしてますね。
次はこの描画部分を別のクラスにやってもらうようにしましょう。



<前のページ
次のページ>