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

本文介绍了如何在Java中创建全屏游戏窗体。通过创建一个`ScreenManager`类,设置默认屏幕设备为全屏窗口,并根据可用的显示模式选择最佳分辨率。在`GameApp`中应用这些更改,实现了全屏显示。
摘要由CSDN通过智能技术生成

项目源码

项目源码

实现全屏

游戏一般都是全屏显示的,那我们如何使用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游戏开发。下面我将手把手你如何用Java开发这款游戏,并提供相应的源码。 步骤一:创建游戏窗口游戏 首先,我们需要创建游戏窗口,可以使用Java提供的Swing框架来实现。创建一个GameWindow,继承JFrame,并在构造方法中设置窗口的基本属性。 步骤二:添加游戏画布 在GameWindow中,创建一个GameCanvas,继承JPanel,并重写paintComponent()方法,在此方法中实现游戏场景的绘制,包括大鱼、小鱼和其他游戏元素。 步骤三:添加游戏逻辑 在GameWindow中,添加游戏逻辑的处理方法,包括大鱼的移动、小鱼的生成和碰撞检测等。 步骤四:添加游戏控制 在GameWindow中,添加游戏控制的方法,包括键盘事件的处理和游戏状态的切换等。 步骤五:运行游戏 在GameWindow中,添加一个main()方法,创建游戏窗口对象,并启动游戏循环。 以上是《大鱼吃小鱼》游戏的基本开发步骤,下面提供相应的源码供参考: ```java import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; public class GameWindow extends JFrame implements KeyListener{ private GameCanvas gameCanvas; private boolean isRunning; public GameWindow(){ super("大鱼吃小鱼"); setSize(800, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); addKeyListener(this); gameCanvas = new GameCanvas(); add(gameCanvas, BorderLayout.CENTER); isRunning = true; } public void start(){ while(isRunning){ update(); gameCanvas.repaint(); try{ Thread.sleep(10); }catch(InterruptedException e){ e.printStackTrace(); } } } public void update(){ // 游戏逻辑更新 } public void keyPressed(KeyEvent e){ // 键盘按下事件处理 } public void keyReleased(KeyEvent e){ // 键盘释放事件处理 } public void keyTyped(KeyEvent e){ // 键盘输入事件处理 } public static void main(String[] args){ GameWindow gameWindow = new GameWindow(); gameWindow.setVisible(true); gameWindow.start(); } } class GameCanvas extends JPanel{ protected void paintComponent(Graphics g){ super.paintComponent(g); // 游戏场景绘制 } } ``` 通过以上源码和步骤,我们可以实现《大鱼吃小鱼》游戏的基本开发,通过添加更多的游戏逻辑和个性化设计,可以进一步完善这款游戏。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值