Я новичок в Java и пытаюсь создать простую игру для изучения веревок.
Всякий раз, когда я пытаюсь createBufferStrategy( 2/3 );
, я получаю исключение о недопустимом состоянии.
Если я пытаюсь использовать стандартное исправление -Dsun.java2d.d3d=false
, я не получаю ошибок, но ничего не отображается.
Я попытался использовать -Dsun.java2d.d3d=false
в качестве параметра сборки, но когда я это сделал, у меня отображается только белое поле.
Я могу установить стратегию буфера на 1, и она будет работать нормально, однако изображения постоянномерцание.
public Boolean initialize( int p_Width, int p_Height, String p_Name,
AbyssMazeJava p_AbyssMazeJava )
{ // Start setUp.
if( isLocked() )
return false;
p_AbyssMazeJava.setPreferredSize( new Dimension( p_Width, p_Height )
);
p_AbyssMazeJava.setMaximumSize( new Dimension( p_Width, p_Height ) );
p_AbyssMazeJava.setMinimumSize( new Dimension( p_Width, p_Height ) );
JFrame _frame = new JFrame( p_Name );
_frame.add( p_AbyssMazeJava );
_frame.pack();
_frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
_frame.setResizable( false );
_frame.setLocationRelativeTo( null );
_frame.setIgnoreRepaint(true);
_frame.setVisible( true );
p_AbyssMazeJava.initialize();
p_AbyssMazeJava.start();
//
// Test Code:
//
return true;
} // End setUp.
private void draw()
{ // Start draw.
//
// Initializing our buffer and graphics:
//
bufferStrategy = getBufferStrategy();
if( bufferStrategy == null )
{
this.createBufferStrategy( GameDefines.DefaultNumberOfBUffers );
return;
}
graphics = bufferStrategy.getDrawGraphics();
graphics.setColor( GameDefines.DefaultWindowColor );
graphics.fillRect( 0, 0, getWidth(), getHeight() );
//
// Game Draw Code
//
//testPlayer.draw(graphics);
graphics.drawImage( testImage, 0, 0, null );
//
// Disposing our Buffer and Graphics:
//
bufferStrategy.dispose();
graphics.dispose();
} // End draw.
В идеале я бы хотел, чтобы стратегия буфера работала, однако я остановлюсь на устранении мерцания на изображениях.