【发布时间】:2013-07-02 01:45:43
【问题描述】:
我正在学习 BufferStrategy,但我对 BS 的创建有点困惑。
我的代码看起来像这样...
public class Game extends Canvas{
/*code not relevant to this topic..
*/
public void render(){
BufferStrategy bs = this.getBufferStrategy();
if(bs == null){
createBufferStrategy(3);
}
}
}
基本上,我的“游戏”类是 Canvas 的子类。
并且该类获取缓冲区策略并将其存储在bs中。
但是,bs 没有“创建”缓冲区策略,如果它为 null(在本例中为 null),我会说“createBufferStrategy(3)”。
我很困惑当我createBufferStrategy(3) 或this.createBufferStrategy(3)(这是同一件事)时会发生什么。
createBufferStrategy(3) 的值究竟存储在哪里?
它不能存储在bs.. 所以当我只告诉我的子类创建缓冲区策略时,bs 如何从null 到实际被初始化或持有一个值。我看不出我是如何将bs 的状态从 null 更改为任何..
我尝试做bs = createBufferStrategy(3),但显然它不起作用。我想知道为什么、如何以及到底发生了什么。
提前谢谢你。
【问题讨论】:
-
看看api文档docs.oracle.com/javase/6/docs/api/java/awt/…,BufferStrategy是在
Component中创建的 -
是的,但这如何改变
bs的状态? -
你能发更多的
render吗?我猜你只发布了一部分。
标签: java graphics buffer graphics2d bufferstrategy