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语言可以用于开发2D和...
Java游戏开发是一个涵盖广泛的技术领域,它涉及到计算机图形学、数据结构、算法、网络编程以及用户界面设计等多个方面。...无论是想开发简单的桌面游戏还是复杂的移动游戏,掌握Java游戏开发的知识都是一个很好的起点。
Java游戏编程是软件开发领域中的一个分支,它...这个“Java游戏编程(游戏开发与编程序列).rar”可能包含了这些知识点的讲解和实践,通过学习,开发者能够逐步掌握Java游戏开发的各个方面,从而创建出自己的游戏作品。
《Java游戏开发高级教程》是一本面向有一定Java基础并希望深入学习Java游戏开发的书籍,主要基于JDK1.4版本进行讲解。虽然这个版本现在看来相对较旧,但其核心概念和原理对于理解Java游戏编程仍然是非常有价值的。...
Java游戏开发是一个广阔而引人入胜的领域,它涵盖了从简单的2D游戏到复杂的3D大型多人在线游戏的各种类型。Java作为一种跨平台、面向对象的编程语言,由于其强大而灵活的特性,成为了游戏开发中的热门选择。在这个...
游戏引擎是开发过程中的重要工具,例如LibGDX是一个流行的Java游戏开发框架,它提供了一整套工具和库,包括图形渲染、物理模拟、音频处理、资源管理等功能。使用游戏引擎可以大大提高开发效率,让开发者专注于游戏的...
《手机JAVA游戏开发必备书》是一本专注于微Java游戏开发的专业书籍,对于想要涉足或深入理解手机Java游戏开发的读者来说,它提供了丰富的知识和实践经验。Micro Java Game Development这一主题涵盖了移动设备上的...
Java手机游戏开发专辑是一系列深度探讨Java在手机游戏开发中的应用资源。这个专辑主要涵盖了三个核心部分:手机游戏开发的概述、MIDP编程的基础教程以及具体的MIDP图形设计和游戏开发实例。 首先,手机游戏开发概述...
总的来说,这个Java游戏源码集合提供了一个宝贵的实践平台,对于想要提升编程技能,尤其是对游戏开发感兴趣的开发者来说,这是一个不可多得的学习资源。通过深入研究这些源码,你不仅可以学会如何在Java环境中构建...
Java网络游戏开发是一个涵盖广泛的技术领域,它涉及到网络通信、图形渲染、并发处理、数据库交互等多个方面的知识。在Java平台上进行网络游戏开发,可以利用其强大的跨平台能力,丰富的库支持以及高效的性能来创建...
Java游戏开发是一个涵盖广泛的主题,涉及使用Java编程语言来创建各种类型的游戏,从小型的桌面游戏到复杂的在线多人游戏。Java作为一种多用途的、面向对象的编程语言,因其跨平台的可移植性、高效的性能以及丰富的...
总的来说,《Java手机游戏开发专辑教程》是一本全方位的指导书,不仅传授了Java编程和游戏开发的技术知识,还涵盖了从概念设计到实际发布的整个流程,适合初学者和有一定经验的开发者参考学习。
总的来说,"java游戏开发之射击游戏"涵盖了Java编程、图形界面设计、游戏逻辑构建、用户输入响应、动画制作、状态管理以及音频处理等多个方面的知识点。通过这样的项目实践,开发者可以深入了解Java在游戏开发中的...
Java游戏开发是一个涵盖众多技术领域的综合实践,这个“Java游戏开发入门源码合集”提供了15款游戏的源代码,对于初学者来说是极好的学习资源。通过这些游戏源码,我们可以深入理解Java在游戏开发中的应用,以及游戏...
1. **Java基础知识**:游戏的开发离不开基本的Java语法,如变量、数据类型、控制结构(if语句、for循环、while循环)、函数的定义和调用等。 2. **面向对象编程**:Java是面向对象的语言,游戏中的角色、怪物、物品...
《Java游戏开发》的中文翻译是对原书"Developing Games In Java"的部分内容进行的本地化处理,专注于向中文读者介绍使用Java进行游戏编程的基本概念和技术。这本书的翻译旨在帮助那些对Java编程有一定基础,同时对...
在Java游戏开发领域,学习者需要掌握一系列关键技术点,才能构建出引人入胜的游戏。此“JAVA游戏开发课程”专为对游戏编程感兴趣的初学者和进阶开发者设计,旨在教授如何利用Java语言进行手机游戏的开发。 首先,...
《21天学会用JAVA开发网络游戏》是一本旨在引导初学者快速掌握JAVA游戏开发技能的电子书籍。在21天的学习计划中,本书将逐步深入地介绍JAVA编程语言的基础、网络编程原理以及如何利用JAVA来构建网络游戏的关键技术。...