美文网首页
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏03

手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏03

作者: __豆约翰__ | 来源:发表于2021-12-27 15:31 被阅读0次

项目源码

项目源码

实现全屏

游戏一般都是全屏显示的,那我们如何使用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

相关文章

网友评论

      本文标题:手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏03

      本文链接:https://www.haomeiwen.com/subject/rwyyqrtx.html