- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码,作为游戏的一部分每 10 毫秒运行一次:
private void gameRender()
{
if(dbImage == null)
{
//createImage() returns null if GraphicsEnvironment.isHeadless()
//returns true. (java.awt.GraphicsEnvironment)
dbImage = createImage(PWIDTH, PHEIGHT);
if(dbImage == null)
{
System.out.println("dbImage is null"); //Error recieved
return;
}
else
dbg = dbImage.getGraphics();
}
//clear the background
dbg.setColor(Color.white);
dbg.fillRect(0, 0, PWIDTH, PHEIGHT);
//draw game elements...
if(gameOver)
{
gameOverMessage(dbg);
}
}
问题是它进入 if 语句来检查图像是否为空,即使在我尝试定义图像之后也是如此。我环顾四周,如果 GraphicsEnvironment.isHeadless() 返回 true,createImage() 似乎将返回 null。
我不太明白 isHeadless() 方法的用途是什么,但我认为它可能与编译器或 IDE 有关,所以我尝试了两个,两者都得到相同的错误(Eclipse 和蓝J)。任何人都知道错误的根源是什么,以及我如何解决它?
提前致谢
乔纳森
...................................................... ......................
编辑:我正在使用 java.awt.Component.createImage(int width, int height)。此方法的目的是确保创建和编辑包含游戏玩家 View 的图像,稍后将通过 JPanel 将其绘制到屏幕上。如果这有帮助,这里还有一些代码:
public class Sim2D extends JPanel implements Runnable
{
private static final int PWIDTH = 500;
private static final int PHEIGHT = 400;
private volatile boolean running = true;
private volatile boolean gameOver = false;
private Thread animator;
//gameRender()
private Graphics dbg;
private Image dbImage = null;
public Sim2D()
{
setBackground(Color.white);
setPreferredSize(new Dimension(PWIDTH, PHEIGHT));
setFocusable(true);
requestFocus(); //Sim2D now recieves key events
readyForTermination();
addMouseListener( new MouseAdapter() {
public void mousePressed(MouseEvent e)
{ testPress(e.getX(), e.getY()); }
});
} //end of constructor
private void testPress(int x, int y)
{
if(!gameOver)
{
gameOver = true; //end game at mousepress
}
} //end of testPress()
private void readyForTermination()
{
addKeyListener( new KeyAdapter() {
public void keyPressed(KeyEvent e)
{ int keyCode = e.getKeyCode();
if((keyCode == KeyEvent.VK_ESCAPE) ||
(keyCode == KeyEvent.VK_Q) ||
(keyCode == KeyEvent.VK_END) ||
((keyCode == KeyEvent.VK_C) && e.isControlDown()) )
{
running = false; //end process on above list of keypresses
}
}
});
} //end of readyForTermination()
public void addNotify()
{
super.addNotify(); //creates the peer
startGame(); //start the thread
} //end of addNotify()
public void startGame()
{
if(animator == null || !running)
{
animator = new Thread(this);
animator.start();
}
} //end of startGame()
//run method for world
public void run()
{
while(running)
{
long beforeTime, timeDiff, sleepTime;
beforeTime = System.nanoTime();
gameUpdate(); //updates objects in game (step event in game)
gameRender(); //renders image
paintScreen(); //paints rendered image to screen
timeDiff = (System.nanoTime() - beforeTime) / 1000000;
sleepTime = 10 - timeDiff;
if(sleepTime <= 0) //if took longer than 10ms
{
sleepTime = 5; //sleep a bit anyways
}
try{
Thread.sleep(sleepTime); //sleep by allotted time (attempts to keep this loop to about 10ms)
}
catch(InterruptedException ex){}
beforeTime = System.nanoTime();
}
System.exit(0);
} //end of run()
private void gameRender()
{
if(dbImage == null)
{
dbImage = createImage(PWIDTH, PHEIGHT);
if(dbImage == null)
{
System.out.println("dbImage is null");
return;
}
else
dbg = dbImage.getGraphics();
}
//clear the background
dbg.setColor(Color.white);
dbg.fillRect(0, 0, PWIDTH, PHEIGHT);
//draw game elements...
if(gameOver)
{
gameOverMessage(dbg);
}
} //end of gameRender()
} //end of class Sim2D
希望这有助于澄清一些事情,乔纳森
最佳答案
我通常使用 BufferedImage,而不是 createImage(...)。
关于java - createImage(int width, int height) 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541845/
我正在尝试使用 opencv v 2.1 创建图像,但出现此错误: image=cv.CreateImage((w,h),no_of_bits,channels) AttributeError: 'm
所以我注意到 DropzoneJS 有以下配置选项:createImageThumbnails ( http://www.dropzonejs.com/#config-createImageThumb
我已经使用 AWS 的 Java API 一段时间了,但不知何故,我找不到如何删除使用 CreateImage 请求创建的快照。 此请求将为您提供包含图像 ID 的图像。当您想要删除图像时,您可以根据
我正在构建一个 Android 应用程序,但出现以下错误: java.lang.IllegalStateException E/AndroidRuntime: at android.graphics.
此代码在 for 循环中的 Image.createImage(path) 上给我一个 NullPointerException。怎么可能? 我使用一个数组作为名称,一个数组作为路径,一个 Array
我有以下代码,作为游戏的一部分每 10 毫秒运行一次: private void gameRender() { if(dbImage == null) { //crea
我正在使用 Swing 创建一个 UI,我想在 JLabel 中显示图像。我使用的代码如下: JLabel label = new JLabel(new ImageIcon(ImageIO.read
我有一个简单的 react 应用程序来使用 openai api 生成图像,如下所示。 ` import logo from './logo.svg'; import './App.css'; imp
我有一个简单的 react 应用程序来使用 openai api 生成图像,如下所示。 ` import logo from './logo.svg'; import './App.css'; imp
我正在尝试使用 LWUIT 创建启动屏幕。我想要一个表单来加载并显示文本和图像 5 秒钟,然后继续下一个表单。我有代码,但无法显示图像。类和图像一起存储在同一个包中。相反,它显示一个错误。 java.
我正在研究 Java 分形程序。在我的设计中,我想实现一个特定的 ImageProducer 类,该类在调用 startProduction(ImageConsumer) 时在后台工作线程中计算像素。
这是我的代码。我无法从此 vector 对象创建图像。 Hashtable metaData = new Hashtable(); Vector Ad = IADView.getBannerAdDat
这是我的任务 async function generateImage() { try { const response = await openai.createImage({
这是我的任务 async function generateImage() { try { const response = await openai.createImage({
我是一名优秀的程序员,十分优秀!