1
FastRenderView.java
package framework.impl;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import framework.Game;
public class FastRenderView extends SurfaceView implements Runnable {
Game game;
Bitmap frameBuffer;
Thread renderThread = null;
SurfaceHolder holder;
volatile boolean running = false;
public FastRenderView(Game game, Bitmap frameBuffer) {
super(game);
this.game = game;
this.frameBuffer = frameBuffer;
this.holder = getHolder();
}
@Override
public void run() {
Rect dstRect = new Rect();
long startTime = System.nanoTime();
while(running) {
if(!holder.getSurface().isValid()) {
continue;
}
float deltaTime = (System.nanoTime() - startTime)/1000000000.0f;
startTime = System.nanoTime();
game.getScreen().update(deltaTime);
game.getScreen().present(deltaTime);
Canvas canvas = holder.lockCanvas();
canvas.getClipBounds(dstRect);
canvas.drawBitmap(frameBuffer, null, dstRect, null);
holder.unlockCanvasAndPost(canvas);
}
}
public void resume() {
running = true;
renderThread = new Thread(this);
renderThread.start();
}
public void pause() {
running = false;
while(true) {
try {
renderThread.join();
break;
} catch(Exception e) {
// retry
}
}
}
}
的问题是,上线19我得到的是上面显示的错误 '超(游戏);'
问题是我该如何解决这个问题?
如果您需要更多信息,请告诉我!
感谢您的帮助!
非常简单的修复,我将第18行的游戏更改为AndroidGame,这样我就可以获得上下文。非常感谢! – Zeveso 2012-02-01 03:45:18
没问题!事实证明,这是一个比我预想的更简单的问题,这太棒了! – Tom 2012-02-01 03:46:10