问题标签 [bufferstrategy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3202 浏览

java - 使用 createBufferStrategy() 的正确方法是什么?

即使在使用 Java Swing 一年多之后,它对我来说仍然很神奇。如何正确使用 BufferStrategy,尤其是方法createBufferSrategy()

我想要一个 JFrame 和一个 Canvas 被添加到它然后绘制。我还希望能够调整 ( setSize()) 画布的大小。每次我调整 Canvas 的大小时,似乎我BufferStrategy都会被丢弃,或者更确切地说,变得无用,因为使用show()onBufferStrategy实际上并没有做任何事情。此外,createBufferStrategy()有一个奇怪的非确定性行为,我不知道如何正确同步它。

这就是我的意思:

MyCanvas有一个方法makeBufferStrat()repaint()

我只是从 main 方法中的 while(true) 循环中调用MyFrame'srepaint()方法。当threshold很小(即 2)时,bufferStrat.show()大约 70% 的情况下什么都不做 - JFrame 在启动程序时保持灰色。剩下的 30% 它按照它应该的方式绘制矩形。如果我这样做threshold = 200;了,那么在我执行程序的时间里,绘画成功率接近 100%。Javadoc 说这createBufferStrategy()可能需要一段时间,所以我认为这就是问题所在。但是,如何正确同步和使用它?显然,我在这里做错了什么。我无法想象它应该如何使用。

有没有人有一个最小的工作示例?

0 投票
3 回答
2225 浏览

c - 如何确定每次读取系统调用要读取的合理字节数?

我正在玩文件读/写,但很难决定为“读”系统调用设置多大的读缓冲区。

特别是,我正在查看“ http://pubs.opengroup.org/onlinepubs/009695399/functions/read.html

除了 SSIZE_MAX 之外,它似乎没有说明我一次可以读取多少字节。

更糟糕的是,如果我用 SSIZE_MAX 个字符创建一个数组,程序会产生:

是否有任何合理的方法来决定每次读取系统调用读取多少字节?我担心这可能会因系统而异(我不能只进行尽可能多的读取,直到读取无法确定我可以读取的确切字节数,即使我这样做了,它也不一定会更快比读取更少的字节)。

我的一个想法是检查我的 CPU 缓存大小并尝试使我的缓冲区不大于该大小,但是由于我不知道 CPU 缓存是如何工作的,所以我不确定这是否一定正确。

提前谢谢。

0 投票
0 回答
689 浏览

java - 组件必须有一个有效的对等点(BufferStrategy)

所以我在 java 上制作了一个 2D 游戏,并在我的游戏中实现了 BufferStrategy 方法。它卡在“this.createBufferStrategy(3);”这一行

从那时起,我收到此错误:

我不知道为什么..请帮忙。这是我的 Game.java 代码:

和 WindowFrame.java 代码:

0 投票
0 回答
1517 浏览

java - 在java中渲染图像

我试图在java JFrame中放一张图片,但我想修改每个像素,所以我想逐个像素地加载它。我被困在应该将像素加载到屏幕上的部分,但我看不到任何效果。我错过了什么?

我很确定它很小,但由于某种原因我看不到它。

显示.java

屏幕截图.java

渲染.java

图像.java

0 投票
1 回答
2795 浏览

java - 组件必须有一个有效的对等点 - BufferStrategy

首先,我知道以前有人问过这样的问题,但似乎没有答案可以解决我的问题。

我正在开发一个小游戏,由于某种原因,每当我尝试创建新的缓冲区策略时,java 都会返回 IllegalStateException。我正在将游戏添加到 JFrame,但仍然抛出异常,这是添加到 JFrame 的代码:

这是创建窗口的代码(位于 Main 类中):

0 投票
1 回答
133 浏览

java - 当我调用“BufferStrategy.show()”时会发生什么?

调用是否bs.show()实际显示缓冲的帧?如果是这样,怎么做?它只是说它使下一个可用缓冲区可见,但是当前缓冲区呢?什么时候显示?

0 投票
0 回答
14 浏览

java - 缓冲区策略和图形对象在 IDE 中工作正常,但在导出到 jar 时不能

所以,我正在为我的编程课制作一个瓷砖游戏,并且我已经取得了一些进展。但是当我尝试将我的游戏导出到一个可运行的 jar 中时,它在 IDE 中还不起作用。

渲染一切的渲染方法。

导出时的游戏

IDE中的游戏

如您所见,它不起作用

我加载图像的代码:

0 投票
0 回答
59 浏览

java - 在没有对象的情况下调用 getBufferStrategy 和 createBufferStrategy

我正在观看有关使用 Java 制作游戏的视频,并看到以下用于创建 BufferStrategy 对象的代码:

我在其他示例和视频中看到了这个确切的代码块,所以它看起来很标准。我的问题是,既然 getBufferStrategy() 或 createBufferStrategy() 都不是静态方法,不应该用对象调用它们吗?而且由于这个render方法属于扩展Canvas类的类,代码不应该是这样的吗?:

Canvas 类的 docs.oracle 页面将这些方法列为非静态方法。那么为什么我们可以在没有对象的情况下调用它们呢?任何帮助是极大的赞赏。

0 投票
0 回答
95 浏览

java - 用java写的游戏摇晃口吃

我的新项目是一个用 Java 编写的 Flappy Bird 游戏,我遇到了一个小问题。它口吃很多。我不知道该怎么办。我一直在寻找其他主题的解决方案,但不幸的是我不知道出了什么问题。我使用了缓冲策略,但我不确定它是否做得好。这是整个代码。

}

0 投票
1 回答
463 浏览

java - 在 java 中使用 createBufferStrategy() 时,拥有 2 个以上的缓冲区是否有帮助?有缺点吗?

似乎大多数人建议只使用 2 或 3。这仅仅是因为超过 3 占用了太多的处理能力或其他什么(请原谅我对此有点陌生)?在什么样的程序中你会使用超过 3 个缓冲区?

2或3适用于我的程序,我只是好奇。