• 手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏03全屏显示游戏窗口


    项目源码

    项目源码

    实现全屏

    游戏一般都是全屏显示的,那我们如何使用java实现一个全屏窗体呢?本节我们就来教大家这个技巧。

    新增一个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

  • 相关阅读:
    ctags and vim
    [转]bash快捷键
    util-linux编译unknown architecture 'BSD_LABELSECTOR' undeclared错误
    HTML5安全攻防详析之八:Web Socket攻击
    HTML5安全攻防详析之七:新标签攻击
    HTML5安全风险详析之六:API攻击
    HTML5安全风险详析之五:劫持攻击
    HTML5安全风险详析之四:Web Worker攻击
    HTML5安全风险详析之二:Web Storage攻击
    HTML5安全风险详析之一:CORS攻击
  • 原文地址:https://www.cnblogs.com/songboriceboy/p/15752701.html
Copyright © 2020-2023  润新知