雖然經歷了Stage的libgdx源代碼中的本地參考,我遇到了這個段:的Java在實例變量
public void draw() {
Camera camera = viewport.getCamera();
camera.update();
if (!root.isVisible()) return;
Batch batch = this.batch;
if (batch != null) {
batch.setProjectionMatrix(camera.combined);
batch.begin();
root.draw(batch, 1);
batch.end();
}
if (debug) drawDebug();
}
我的是什麼興趣這一行:Batch batch = this.batch;
我的第一個猜測是一些緩存改進。我是對的,還是有其他原因避免直接使用實例變量?
你是否已經開始使用調試器?猜測,也許在身體遞歸(並修改實例'批次'參考)的東西。 – 2015-02-06 02:10:25
另請參見[「避免getfield操作碼」](http://stackoverflow.com/questions/4761681/avoiding-getfield-opcode)。 – Radiodef 2015-02-06 02:59:58
好的想法,但批處理實例引用在'begin()'和'end()'塊之間沒有改變,並且這種繪製方法不是遞歸的。 – EntangledLoops 2015-02-06 03:16:16