項(xiàng)目源碼
實(shí)現(xiàn)全屏
游戲一般都是全屏顯示的,那我們?nèi)绾问褂胘ava實(shí)現(xiàn)一個全屏窗體呢灶轰?本節(jié)我們就來教大家這個技巧看峻。
新增一個managers包穿剖,包里新建一個ScreenManager.java類妄壶,代碼如下:
主要代碼就一行:device.setFullScreenWindow(mainFrame);
package managers;
import config.Config;
import java.awt.*;
public class ScreenManager {
public static GraphicsDevice device = null;
private DisplayMode[] _bestDisplayModes = new DisplayMode[] {
new DisplayMode(640, 480, 32, 0),
new DisplayMode(640, 480, 16, 0)
};
public ScreenManager(Frame mainFrame){
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = env.getDefaultScreenDevice();
device.setFullScreenWindow(mainFrame);
if(device.isDisplayChangeSupported()){
_chooseBestDisplayMode(device);
}
mainFrame.createBufferStrategy(Config.BUFFERS);
}
private DisplayMode _getBestDisplayMode(GraphicsDevice device){
for(int x = 0; x < _bestDisplayModes.length; x++){
DisplayMode[] modes = device.getDisplayModes();
for(int i = 0; i < modes.length; i++){
if(modes[i].getWidth() == _bestDisplayModes[x].getWidth() &&
modes[i].getHeight() == _bestDisplayModes[x].getHeight() &&
modes[i].getBitDepth() == _bestDisplayModes[x].getBitDepth()){
return _bestDisplayModes[x];
}
}
}
return null;
}
private void _chooseBestDisplayMode(GraphicsDevice device){
DisplayMode bestMode = _getBestDisplayMode(device);
if (bestMode!=null){
device.setDisplayMode(bestMode);
}else{
System.out.println("ERROR!");
}
}
}
GameApp.java 修改如下:
1640590049(1).png