`
无量
  • 浏览: 1133975 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java游戏开发基本知识一

阅读更多
JAVA游戏开发基础一:
1、完成窗口的加载
2、用画笔画基本图形,改变画笔颜色,
3、用画笔画字符串,改变字符串字体
4、动画效果实现,通过线程轮训,不停调用重画方法,间接调用paint方法实现

package com.hank.test;

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * 游戏基本知识学习类
 * 游戏窗口类
 * @author huangqun08312
 */
public class GameFrame extends Frame{      //GUI编程,awt,swing,jframe等
	private static final long serialVersionUID = -8342342546611528706L;

	Image image = GameUtil.getImage("images/95501.jpg");
	
	/**
	 * 启动主窗口
	 */
	public void launchFrame() {
		this.setSize(800, 800);            //设置窗体大小
		this.setLocation(100, 100);        //设置窗体在屏幕显示的位置
		this.setVisible(true);             //设置窗体是否可见
		
		//启动重画线程,可以产生动态效果
		new Thread(new PaintThread()).start();
		
		//加个监听器,监听器用匿名内部类,监听窗口关闭动作,来执行相应动作
		//WindowAdapter类实现了三个重要监听接口WindowListener,WindowStateListner,WindowFocusListner
		//但WindowAdapter具体方法的实现没有写,需要我们手动完成
		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
	
	private int x = 200;
	private int y = 200;
	
	//在窗体里面画东西,这个是构造函数回调自动调用的,一定会被执行
	public void paint(Graphics g) {
		System.out.println("painting!!!");
		Color hisColor = g.getColor();    //用之前保存画笔的颜色,用完给改回去,保证方法调用完,不改动人家的东西
		
		g.drawLine(100, 100, 200, 200);   //画直线:注意画线的坐标是相对于窗口来说的
		g.drawRect(100, 100, 200, 200);   //画矩形:
		g.drawOval(100, 100, 400, 300);   //画圆:画的是矩形的内切圆,或者是内切椭圆
		
		Font font = new Font("宋体", Font.BOLD, 100);      //定义字体
		g.setFont(font);                    //设置画笔的字体
		g.drawString("我是黄群", 200, 200); //画字符串:在界面画字符串
		
		g.setColor(Color.BLUE);          //给当前画笔填充颜色
		g.fillRect(100, 100, 50, 50);    //用当前画笔颜色填充矩形
		g.setColor(Color.RED);
		g.fillOval(400, 400, 40, 40);    //用当前画笔颜色填充原型
		g.setColor(hisColor);            //用完画笔,把画笔还原成之前的颜色
		
		g.drawImage(image, x, y, null);  //通过每次画不同的位置实现动态效果
		x += 4;
		y += 4;
	}

	/**
	 * 定义一个重画窗口的线程类,也是一个内部类,方便访问外部类属性,方法
	 */
	class PaintThread implements Runnable {
		public void run() {
			while (true) {
				repaint();     //重画相当于反复调用paint()方法
				try {
					Thread.sleep(40);//为了不太耗cpu,大约40ms重画一次,大约1s25张图片
				} catch (InterruptedException e) {
					e.printStackTrace();
				}  
			}
		}
	}

	public static void main(String[] args) {
		GameFrame gameFrame = new GameFrame();
		gameFrame.launchFrame();
	}
}

游戏项目公共类
package com.hank.test;

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;

/**
 * 游戏开发中常用的工具类
 * 工具类:1.通常将构造方法私有
 * 		   2.工具类基本都是静态的方法,方便调用
 */
public class GameUtil {
	/**
	 * 加载图片方法
	 * @param path
	 * @return
	 */
	public static Image getImage(String path) {
		URL url = GameUtil.class.getClassLoader().getResource(path); //要搞懂这句话 FIXME
		BufferedImage image = null;
		try {
			image = ImageIO.read(url);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return image;
	}
}
分享到:
评论

相关推荐

    JAVA语言挖雷游戏开发

    掌握Java的基本知识后,希望通过此次的课程设计来巩固和提高Java编程技术,从整体上了解使用Java语言在应用系统开发和网络开发中的技巧。进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的...

    java基本的知识结构

    JavaME,用于开发嵌入式应用(例如手机游戏);JavaEE,用于开发企业级WEB应用。国内公司对Java的需求多数集中在J2EE(Java企业级应用)方面,即用Java、JSP结合数据库进行B/S结构的Web应用开发。故要想能更好地去...

    java编写扫雷游戏

    运用java图形化开发,结合java基本知识,编写的扫雷游戏

    计算机程序设计(Java)-教案--单元二--Java语言开发基础.docx.docx

    六、技能拓展 :・在保证学生掌握了各个任务所涉及的基本知识和技能的基础上,再通过介绍一定的附加知识并辅导学生完成指定的"技能拓展任务",最终使学生对所学知识到达举一反三,融会贯通的学习目的; 七、指导与...

    从零开始学Java ME手机开发光盘

    从零开始学Java ME手机开发光盘,该书系统地介绍了Java ME在...本书适合于具有基本Java编程知识并对开发移动应用程序有兴趣的读者,对读者的移动应用程序开发经验没有任何前提要求,可以从零开始学会Java ME手机开发。

    Java游戏设计打飞机程序源代码

    Java游戏设计打飞机程序设计与实现项目是一个基于Java语言编写的游戏开发系统,主要使用JavaFX编程语言,实现了一个打飞机飞行游戏。这个游戏的目标是玩家通过操纵飞机躲避障碍物敌人的攻击,获得更高的分数和更多的...

    Java实现的贪吃蛇游戏代码

    它可以帮助大家掌握Java图形界面编程的基本知识,理解事件处理机制,以及学习游戏循环和状态管理的概念。同时,它也是一个很好的实践项目,可以帮助大家将所学的Java知识应用到实际的项目中。 学习Java图形界面编程...

    Java毕业设计-java手机游戏(堡垒)的设计与开发(源代码+论文).rar

    该项目旨在通过毕业设计的实践,使学生能够综合运用Java编程知识,掌握游戏设计的基本原理和开发流程。 **项目简介** “堡垒”是一款策略类游戏,玩家需要利用有限的资源建造和升级防御工事,抵御敌人的进攻。游戏...

    飞机大战 - Java FX入门级小游戏 - 帮你快速熟悉Java FX

    一个简单的Java FX入门级的飞机大战小游戏,能实现飞机的上下左右移动,发射子弹能消灭敌方飞机,有计分系统,当敌方飞机碰到我方飞机时,游戏结束。此游戏没有复杂的贴图,只有矩形来表示飞机和子弹。 适合人群:...

    Java网上五子棋游戏设计(代码+设计文档)

    【作者】 傅伟,吴希忠 【来源】JavaThinker.org 本程序是一个基于网络协议为... 通过本程序,我们初步熟悉并掌握java语言的基本知识,掌握服务器-客户端的网络架构模式,为以后学习高级web开发课程做准备。

    java课程设计报告贪吃蛇游戏设计.doc

    本设计所开发的是基于Java的一个贪吃蛇游戏软件,主要实现游戏的速度控制、游戏 的暂停、游戏的退出等功能,分为: 游戏主界面模块、游戏控制模块以二个模块。 3.1.2程序概述 本程序是一个利用Java应用软件制作的...

    JAVA上百实例源码以及开源项目

    内容索引:JAVA源码,游戏娱乐,JAVA游戏源码  JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java...

    基于Java的五子棋游戏的设计源代码.rar

    基于Java的五子棋游戏的设计与实现项目是一款基于Java语言开发的棋类游戏,主要使用Java GUI技术实现游戏的界面,AI技术实现游戏的智能对战。该系统主要适用于需要进行休闲娱乐的用户,提供了简单、有趣、具有挑战性...

    JAVA上百实例源码以及开源项目源代码

    内容索引:JAVA源码,游戏娱乐,JAVA游戏源码  JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java...

    JAVA贪吃蛇游戏毕业设计.rar

    通过开发这款贪吃蛇游戏,学生可以加深对Java语言基础知识的理解,包括面向对象编程、图形界面设计等方面。 同时,学生还可以通过项目管理和团队协作来提高自己的软件开发能力,包括需求分析、设计、编码、测试等...

    游戏开发的教程.txt

    游戏开发是一个复杂且有趣的过程,涉及多个领域的知识和技能。以下是一个简化的游戏开发教程,帮助你了解基本的开发步骤和所需的技术。 一、确定游戏类型和概念 首先,你需要明确你想要开发的游戏类型,如动作游戏...

    JAVA泡泡堂网络游戏的设计与实现(源代码+WORD论文).zip

    本论文从研究开发一个模仿泡泡堂网络游戏的例子出发,讲述网络游戏开发中用到的一些最基本的知识和设计思想,使大家清晰的理解游戏开发的过程。 整个设计中利用java中的swing编程,结合游戏的操作流程,对整个游戏...

Global site tag (gtag.js) - Google Analytics