1

私は本当にこれにこだわっていて、無料のアプリケーションに広告を表示するのは難しいので、大きな質問があります。まず、この本に従っています

Android ゲームの始まり 2011

http://www.apress.com/9781430230427

現在、この本は私が使用している非常に素晴らしくシンプルなゲーム フレームワークを実装しています (よりシンプルなバージョンはここにあります)。

http://www.kilobolt.com/day-5-the-android-game-framework-part-i.html

現在、このフレームワークはどのような種類の XML ファイルも使用しておらず、フレームバッファを使用して画面に描画しています。アプリケーションが最初に起動されたとき、これは AndroidGame.java にある最初に呼び出されるメソッドです。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    boolean isPortrait = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
    int frameBufferWidth = isPortrait ? 480: 800;
    int frameBufferHeight = isPortrait ? 800: 480;
    Bitmap frameBuffer = Bitmap.createBitmap(frameBufferWidth,
            frameBufferHeight, Config.RGB_565);

    float scaleX = (float) frameBufferWidth
            / getWindowManager().getDefaultDisplay().getWidth();
    float scaleY = (float) frameBufferHeight
            / getWindowManager().getDefaultDisplay().getHeight();

    renderView = new AndroidFastRenderView(this, frameBuffer);
    graphics = new AndroidGraphics(getAssets(), frameBuffer);
    fileIO = new AndroidFileIO(this);
    audio = new AndroidAudio(this);
    input = new AndroidInput(this, renderView, scaleX, scaleY);
    screen = getInitScreen();

    setContentView(renderView);

    PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "MyGame");
}

ここのどこで admob バナーを試して実装できますか? また、これはスクリーンクラスがどのように見えるかです

public LogoScreen(Game game)
{
    super(game);
}

@Override
public void update(float deltaTime)
{
    Graphics g = game.getGraphics();
    List<TouchEvent> touchEvents = game.getInput().getTouchEvents();

    int len = touchEvents.size();

    for(int i = 0; i < len; i ++)
    {
        try
        {
            TouchEvent event = (TouchEvent) touchEvents.get(i);
            if(event.type == TouchEvent.TOUCH_DOWN)
            {
                game.setScreen(new MainMenuScreen(game));
            }
        }
        catch(IndexOutOfBoundsException io)
        {

        }
    }

}

@Override
public void paint(float deltaTime) 
{
    Graphics g = game.getGraphics();
    g.drawImage(Assets.logoScreen, 0, 0);
}

@Override
public void pause() {
    // TODO Auto-generated method stub

}

@Override
public void resume() {
    // TODO Auto-generated method stub

}

@Override
public void dispose() {
    // TODO Auto-generated method stub

}

@Override
public void backButton() 
{
    android.os.Process.killProcess(android.os.Process.myPid());
}

logoScreen に admob 広告を表示したい場合、どうすればうまくいきますか? アプリケーションに admob を実装する方法について本当に混乱しています。誰かがこれに光を当てたり、私を助けてくれるなら、それは素晴らしいことです:)

ありがとうございました

キャンバス

---更新--- FastRenderView のコードは次のとおりです。

package com.CC.framework.implementation;

//Imports
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class AndroidFastRenderView extends SurfaceView implements Runnable 
{
//Variables
AndroidGame game;
Bitmap framebuffer;
Thread renderThread = null;
SurfaceHolder holder;
volatile boolean running = false;

public AndroidFastRenderView(AndroidGame game, Bitmap framebuffer) 
{
    super(game);
    this.game = game;
    this.framebuffer = framebuffer;
    this.holder = getHolder();

}

public void resume() 
{ 
    running = true;
    renderThread = new Thread(this);
    renderThread.start();
}      

public void run() 
{
    Rect dstRect = new Rect();
    long startTime = System.nanoTime();
    while(running) 
    {  
        if(!holder.getSurface().isValid())
        {
            continue;           
        }

        float deltaTime = (System.nanoTime() - startTime) / 10000000.000f;
        startTime = System.nanoTime();

        if (deltaTime > 3.15)
        {
            deltaTime = (float) 3.15;
        }


        game.getCurrentScreen().update(deltaTime);
        game.getCurrentScreen().paint(deltaTime);

        Canvas canvas = holder.lockCanvas();
        canvas.getClipBounds(dstRect);
        canvas.drawBitmap(framebuffer, null, dstRect, null);                           
        holder.unlockCanvasAndPost(canvas);

    }
}

public void pause() 
{                        
    running = false;                        
    while(true) 
    {
        try 
        {
            renderThread.join();
            break;
        } 
        catch (InterruptedException e) 
        {
            // retry
        }

    }
}     


}
4

2 に答える 2