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

简介: 手把手一步一步教你使用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 修改如下:


image.png




目录
相关文章
|
2天前
|
NoSQL Java Redis
软件开发常见流程之宝塔初始化安装环境配置,Lam前面不选,直接跳商城,在宝塔内点击软件商城,安Mysql5.7,安java项目管理器,安Ngnix最新版,安Redis
软件开发常见流程之宝塔初始化安装环境配置,Lam前面不选,直接跳商城,在宝塔内点击软件商城,安Mysql5.7,安java项目管理器,安Ngnix最新版,安Redis
|
2天前
|
开发框架 Java Android开发
Java中的类反射与动态代理详解
Java中的类反射与动态代理详解
|
2天前
|
开发框架 Java API
Java中的REST API开发详解
Java中的REST API开发详解
|
2天前
|
消息中间件 存储 SpringCloudAlibaba
会员系统01----基于Java开发的 | BTC,完整的SpringClound微服务包含内容
会员系统01----基于Java开发的货币交易所 | BTC,完整的SpringClound微服务包含内容
|
2天前
|
敏捷开发 Java 测试技术
实现Java应用的快速开发与迭代
实现Java应用的快速开发与迭代
|
2天前
|
安全 Java
Java中的集合类性能比较与选择
Java中的集合类性能比较与选择
Java_Swing中让窗口居中显示的方法(三种方法)
Java_Swing中让窗口居中显示的方法(三种方法)
575 0
|
2天前
|
监控 安全 Java
Java中的线程调度与性能优化技巧
Java中的线程调度与性能优化技巧
|
2天前
|
缓存 安全 Java
Java中的线程安全问题及解决方案
Java中的线程安全问题及解决方案
|
2天前
|
并行计算 安全 Java
Java中的多线程与并发编程详解
Java中的多线程与并发编程详解