备案 控制台
开发者社区 开发与运维 文章 正文

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




豆约翰
目录
相关文章
长梦
|
23小时前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
长梦
10 2
长梦
|
23小时前
|
安全 Java 开发者
Java一分钟之-Optional类:优雅处理null值
【5月更文挑战第13天】Java 8的`Optional`类旨在减少`NullPointerException`,提供优雅的空值处理。本文介绍`Optional`的基本用法、创建、常见操作,以及如何避免错误,如直接调用`get()`、误用`if (optional != null)`检查和过度使用`Optional`。正确使用`Optional`能提高代码可读性和健壮性,建议结合实际场景灵活应用。
长梦
16 3
秋说
|
1天前
|
存储 Java ice
【Java开发指南 | 第十六篇】Java数组及Arrays类
【Java开发指南 | 第十六篇】Java数组及Arrays类
秋说
8 3
秋说
|
1天前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
秋说
11 1
秋说
|
1天前
|
存储 Java ice
【Java开发指南 | 第十四篇】Java Number类及Math类
【Java开发指南 | 第十四篇】Java Number类及Math类
秋说
9 1
秋说
|
1天前
|
存储 缓存 Java
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
秋说
9 2
秋说
|
1天前
|
Java 编译器
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
【Java开发指南 | 第一篇】类、对象基础概念及Java特征
秋说
9 4
贾志刚
|
Java API Windows
Java创建透明与任意形状窗口
Java创建透明与任意形状窗口 一: Java 2D图形基础知识 自从Java Swing发布以来,Java的图形能力得到了很大的提升,JDK6的高级版本开始支持创 建自定义形状的JFrame,结合Java 2D图形的相关API,可以实现任意形状JFrame的创建。
贾志刚
976 0
肥猪肥猪-17824
|
1天前
|
Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第13天】在计算机科学中,多线程是一种使得程序可以同时执行多个任务的技术。在Java语言中,多线程的实现主要依赖于java.lang.Thread类和java.lang.Runnable接口。本文将深入探讨Java中的多线程编程,包括其基本概念、实现方法以及一些常见的问题和解决方案。
肥猪肥猪-17824
11 3
shuj
|
1天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第13天】 在Java开发中,并发编程是一个复杂且重要的领域。它不仅关系到程序的线程安全性,也直接影响到系统的性能表现。本文将探讨Java并发编程的核心概念,包括线程同步机制、锁优化技术以及如何平衡线程安全和性能。通过分析具体案例,我们将提供实用的编程技巧和最佳实践,帮助开发者在确保线程安全的同时,提升应用性能。
shuj
9 1

热门文章

最新文章

  • 1
    Java工程师该如何编写高效代码?
  • 2
    Java已五年1—二本物理到前端实习生到Java程序员「回忆贴」
  • 3
    Java 面向对象 之 代码块
  • 4
    java的定时器详解
  • 5
    Java方法的参数是按值传递的.
  • 6
    如何在Ubuntu 11.10下安装Java
  • 7
    Java反射机制总结(实例分析)(一)
  • 8
    深入探索Java对象的序列化
  • 9
    Java---注解、类加载器-加强-实现运行任意目录下class中加了@MyTest的空参方法
  • 10
    Java中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
  • 1
    Java 文件处理完全指南:创建、读取、写入和删除文件详细解析
    289
  • 2
    Java的语法基础
    19
  • 3
    Java的面向对象设计
    17
  • 4
    java的类加载过程
    15
  • 5
    java的常见算法
    18
  • 6
    Java的IO技术和NIO技术
    25
  • 7
    JAVA字符串与其他类型数据的转换
    37
  • 8
    JAVA字符串的基本操作
    22
  • 9
    JAVA一维数组
    28
  • 10
    JAVA跳转控制语句
    24
  • 相关课程

    更多
  • Java面试疑难点解析 - 面试技巧及语言基础
  • Java面试疑难点解析 - Java Web开发
  • Java面试疑难点解析 - 系统架构及项目设计
  • Java编程入门
  • Java面向对象编程
  • Java高级编程
  • 相关电子书

    更多
  • Spring Cloud Alibaba - 重新定义 Java Cloud-Native
  • The Reactive Cloud Native Arch
  • JAVA开发手册1.5.0
  • 相关实验场景

    更多
  • 基于ECS搭建Java Web开发环境
  • 使用Aliyun Java Intializr进行项目开发
  • 搭建Java Web开发环境
  • 小试牛刀,一键部署电商商城
  • 部署基于Dragonwell的Java运行环境
  • 1分钟部署经典小游戏
  • 下一篇
    部署LAMP环境(Alibaba Cloud Linux 3)

    深圳SEO优化公司横岗网站搭建报价襄阳优秀网站设计价格沈阳网站排名优化公司邵阳网站改版价格宁波模板制作价格丹竹头百度seo多少钱双龙网站关键词优化多少钱海西关键词按天计费多少钱海南阿里店铺运营推荐黄石至尊标王同乐关键词排名包年推广价格潮州关键词按天计费哪家好楚雄关键词按天扣费公司包头SEO按天收费哪家好海南推广网站多少钱咸阳优化多少钱朝阳外贸网站设计报价襄阳百度标王南通建站哪家好襄阳百度爱采购推荐通辽优秀网站设计推荐喀什网页设计推荐云浮网站设计模板多少钱海南推广网站大理企业网站建设哪家好新余百度爱采购价格天水外贸网站建设公司昆明百度竞价包年推广公司陇南网站优化按天收费哪家好厦门百度爱采购歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化