`
无量
  • 浏览: 1146225 次
  • 性别: 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游戏开发 (经典)”资源很可能是对上述知识点的详细讲解,包括实例和练习,对于初学者来说是一份宝贵的参考资料。如果你希望深入学习Java游戏开发,可以从这些方面入手,结合实际项目进行实践,不断提升...

    Java游戏编程小手册

    本资源是一个Java游戏编程的小手册,涵盖了Java游戏开发的基本概念、技术和框架。下面是从该资源中提炼出的知识点: 一、Java游戏开发概述 Java游戏开发是使用Java语言创建游戏的过程。Java语言可以用于开发2D和...

    Java游戏开发ppt

    Java游戏开发是一个涵盖广泛的技术领域,它涉及到计算机图形学、数据结构、算法、网络编程以及用户界面设计等多个方面。...无论是想开发简单的桌面游戏还是复杂的移动游戏,掌握Java游戏开发的知识都是一个很好的起点。

    Java游戏编程(游戏开发与编程序列).rar

    Java游戏编程是软件开发领域中的一个分支,它...这个“Java游戏编程(游戏开发与编程序列).rar”可能包含了这些知识点的讲解和实践,通过学习,开发者能够逐步掌握Java游戏开发的各个方面,从而创建出自己的游戏作品。

    java游戏开发高级教程

    《Java游戏开发高级教程》是一本面向有一定Java基础并希望深入学习Java游戏开发的书籍,主要基于JDK1.4版本进行讲解。虽然这个版本现在看来相对较旧,但其核心概念和原理对于理解Java游戏编程仍然是非常有价值的。...

    Java游戏开发

    Java游戏开发是一个广阔而引人入胜的领域,它涵盖了从简单的2D游戏到复杂的3D大型多人在线游戏的各种类型。Java作为一种跨平台、面向对象的编程语言,由于其强大而灵活的特性,成为了游戏开发中的热门选择。在这个...

    java手机游戏开发教程

    游戏引擎是开发过程中的重要工具,例如LibGDX是一个流行的Java游戏开发框架,它提供了一整套工具和库,包括图形渲染、物理模拟、音频处理、资源管理等功能。使用游戏引擎可以大大提高开发效率,让开发者专注于游戏的...

    手机JAVA游戏开发必备书下载

    《手机JAVA游戏开发必备书》是一本专注于微Java游戏开发的专业书籍,对于想要涉足或深入理解手机Java游戏开发的读者来说,它提供了丰富的知识和实践经验。Micro Java Game Development这一主题涵盖了移动设备上的...

    Java手机游戏开发专辑

    Java手机游戏开发专辑是一系列深度探讨Java在手机游戏开发中的应用资源。这个专辑主要涵盖了三个核心部分:手机游戏开发的概述、MIDP编程的基础教程以及具体的MIDP图形设计和游戏开发实例。 首先,手机游戏开发概述...

    用Java开发的一些经典游戏源码

    总的来说,这个Java游戏源码集合提供了一个宝贵的实践平台,对于想要提升编程技能,尤其是对游戏开发感兴趣的开发者来说,这是一个不可多得的学习资源。通过深入研究这些源码,你不仅可以学会如何在Java环境中构建...

    java网络游戏开发

    Java网络游戏开发是一个涵盖广泛的技术领域,它涉及到网络通信、图形渲染、并发处理、数据库交互等多个方面的知识。在Java平台上进行网络游戏开发,可以利用其强大的跨平台能力,丰富的库支持以及高效的性能来创建...

    Java游戏开发 Java游戏体验.pdf

    Java游戏开发是一个涵盖广泛的主题,涉及使用Java编程语言来创建各种类型的游戏,从小型的桌面游戏到复杂的在线多人游戏。Java作为一种多用途的、面向对象的编程语言,因其跨平台的可移植性、高效的性能以及丰富的...

    Java手机游戏开发专辑教程chm

    总的来说,《Java手机游戏开发专辑教程》是一本全方位的指导书,不仅传授了Java编程和游戏开发的技术知识,还涵盖了从概念设计到实际发布的整个流程,适合初学者和有一定经验的开发者参考学习。

    java游戏开发之射击游戏

    总的来说,"java游戏开发之射击游戏"涵盖了Java编程、图形界面设计、游戏逻辑构建、用户输入响应、动画制作、状态管理以及音频处理等多个方面的知识点。通过这样的项目实践,开发者可以深入了解Java在游戏开发中的...

    Java游戏开发入门源码合集

    Java游戏开发是一个涵盖众多技术领域的综合实践,这个“Java游戏开发入门源码合集”提供了15款游戏的源代码,对于初学者来说是极好的学习资源。通过这些游戏源码,我们可以深入理解Java在游戏开发中的应用,以及游戏...

    java开发魔塔小游戏

    1. **Java基础知识**:游戏的开发离不开基本的Java语法,如变量、数据类型、控制结构(if语句、for循环、while循环)、函数的定义和调用等。 2. **面向对象编程**:Java是面向对象的语言,游戏中的角色、怪物、物品...

    《Java游戏开发》的中文翻译

    《Java游戏开发》的中文翻译是对原书"Developing Games In Java"的部分内容进行的本地化处理,专注于向中文读者介绍使用Java进行游戏编程的基本概念和技术。这本书的翻译旨在帮助那些对Java编程有一定基础,同时对...

    JAVA游戏开发课程

    在Java游戏开发领域,学习者需要掌握一系列关键技术点,才能构建出引人入胜的游戏。此“JAVA游戏开发课程”专为对游戏编程感兴趣的初学者和进阶开发者设计,旨在教授如何利用Java语言进行手机游戏的开发。 首先,...

    《21天学会用JAVA开发网络游戏》电子书

    《21天学会用JAVA开发网络游戏》是一本旨在引导初学者快速掌握JAVA游戏开发技能的电子书籍。在21天的学习计划中,本书将逐步深入地介绍JAVA编程语言的基础、网络编程原理以及如何利用JAVA来构建网络游戏的关键技术。...

Global site tag (gtag.js) - Google Analytics