手把手一步一步教你使用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




目录
相关文章
|
8天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
21 4
|
6天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
10天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
32 4
|
9天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
21 0
|
10天前
|
Java API Android开发
kotlin和java开发优缺点
kotlin和java开发优缺点
24 0
|
3月前
|
Java 开发者
奇迹时刻!探索 Java 多线程的奇幻之旅:Thread 类和 Runnable 接口的惊人对决
【8月更文挑战第13天】Java的多线程特性能显著提升程序性能与响应性。本文通过示例代码详细解析了两种核心实现方式:Thread类与Runnable接口。Thread类适用于简单场景,直接定义线程行为;Runnable接口则更适合复杂的项目结构,尤其在需要继承其他类时,能保持代码的清晰与模块化。理解两者差异有助于开发者在实际应用中做出合理选择,构建高效稳定的多线程程序。
58 7
|
22天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
16 3
|
22天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
28 2
|
22天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
28 1
|
3月前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的