前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏03全屏显示游戏窗口

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

原创
作者头像
豆约翰
发布2022-01-07 17:08:50
3280
发布2022-01-07 17:08:50
举报

项目源码

项目源码

实现全屏

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

新增一个managers包,包里新建一个ScreenManager.java类,代码如下:

主要代码就一行:device.setFullScreenWindow(mainFrame);

代码语言:txt
复制
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
1640590049(1).png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目源码
  • 实现全屏
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档