java游戏开发杂谈 - 画布和画笔

在Eclipse里,编写如下两个类:

package game2;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;
/**
 * java游戏开发杂谈
 * ---demo2:画布和画笔
 * 
 * @author 台哥
 * @date 2019-04-02
 */

public class GamePanel extends JPanel {
	/** 屏幕的宽和高 */
	private int width,height;
	
	public GamePanel(int width, int height) {
		this.width = width;
		this.height = height;
		this.setSize(width, height);
	}


	/**
	 * 覆盖paintComponent()方法
	 * 参数中的Graphics是画笔,使用它可以绘制出字符串、直线、矩形、圆、图片等等。
	 */
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		
		//画绿色背景
		g.setColor(new Color(0x839156));
		g.fillRect(0, 0, width, height);
		
		//画一行字
		g.setColor(Color.pink);
		g.drawString("我学java,我骄傲", 100, 80);
		
		//再画一行字
		g.setColor(Color.yellow);
		g.drawString("游戏好玩,开发游戏更好玩", 300, 80);
		
		//画一条线
		g.setColor(Color.black);
		g.drawLine(5, 120, 580, 120);
		
		//画一个矩形(不填充内部)
		g.setColor(Color.green);
		g.drawRect(100, 160, 100, 60);
		
		//画一个矩形(填充内部)
		g.setColor(Color.blue);
		g.fillRect(300, 160, 100, 60);
	}
}
package game2;

import javax.swing.JFrame;
/**
 * java游戏开发杂谈
 * ---demo2:画布和画笔
 * 
 * @author 台哥
 * @date 2019-04-02
 */
public class GameFrame extends JFrame{
	
	private int width = 600, height = 400;
	
	public GameFrame() {
		//设置窗体标题
		this.setTitle("java游戏开发杂谈-台哥出品");
		
		//创建一个画布
		GamePanel panel = new GamePanel(width, height);
		//把画布加入到窗体中
		getContentPane().add(panel, "Center");
		
		//设置窗体大小
		this.setSize(width, height); 
		//设置能否调整窗体大小
		this.setResizable(false); 
		//这句会使得在屏幕上居中显示
		this.setLocationRelativeTo(null);
		//当关闭窗体的时候退出程序
		this.setDefaultCloseOperation(EXIT_ON_CLOSE); 
		//把窗体显示出来
		this.setVisible(true); 
	}

	/**
	 * 主方法
	 */
	public static void main(String[] args) {
		GameFrame frame = new GameFrame();
	}
}

运行效果,如下图所示:

窗体JFrame,表示操作系统的一个窗口,可以想象成绘画用的画板。

画布JPanel, 用来放到JFrame中,可在上面作画,可以想象成绘画用的画纸。

画笔Graphics, 用来绘画,提供了一些最基础的绘制方法。比如drawRect绘制一个矩形,drawString绘制字符串。


台哥,一个老的忘记了年龄的程序员,忙里偷闲,瞎扯几篇java游戏开发杂谈,内容浅显,代码简陋。。。

技术精深的同行,一笑而过就好。刚刚入门的同学,感谢你的关注。

转载于:https://www.cnblogs.com/chaohi/p/10697987.html

我学习Java时做的实验题目的一些答案,可供正在学习Java的莘莘学子们参考一下,应该有你想要的实验的答 案。部分题目如下,可看一下和你们老师布置的实验题目是否一样:编写一个程序输出如下图案。编制applet 程序,绘制一个长120、宽80的红色矩形,并在矩形内部绘制一个兰色内切椭圆。设有一批英文单词存放在一个 数组中,编制一个图形界面程序浏览单词。在界面中安排一个标签显示单词,另有“上一个”、“下一个”两 个按钮实现单词的前后翻动。编写一个鼠标位置跟踪程序,在鼠标所在位置为中心绘制一个红色十字架。编制 一个声音播放控制程序,在Applet面板上安排“播放”和“停止”两个按钮,点击“播放”将播放声音,点击 “停止”可停止播放。另外,Applet启动和离开时将自动播放和停止播放,要播放的声音文件名由Applet参数 提供。有一个南北向的桥,只能容纳一个人,现桥的两边分别有10人和12人,编制一个多线程序让这些人到达 对岸,每个人用一个线程表示,桥为共享资源。在过桥的过程中显示谁在过桥及其走向。编写一个可变颜色的 标签,用一个按钮控制颜色的改变与停止。点击按钮颜色停止变化,再点击该按钮颜色又变化。颜色的变化可 用随机数确定。编写一个图片播放程序,图片的文件名为 file01.jpg,file02.jpg,…filen.jpg, 其中n由命 令行输入,要求用多线程自动播放。1)设有一个由10个英文单词构成的字符串数组,要求: (1)统计以字母w开头的单词数; (2)统计单词中含“or”字符串的单词数; (3)统计长度为3的单词数。 创建一个程序,输出今天的年、月、日。 提示:创建一个java.util.Date类的对象代表当前的系统日期,使用对象的getYear()方法、getMonth()方法、 getDay()方法可获得对应的年月日。编写一个三角形类,能根据3个实数构造三角形对象,如果三个实数不满足 三角形的条件,则自动构造以最小值为边的等边三角形。输入任意三个数,求构造的三角形面积。1) 利用随机 函数定义10对(x,y)值,由此创建的Point类实例存入一个数组中,按与原点(0,0)的距离由小到大的顺序输 出所有的点及到原点的距离。 编写一个人与计算机对拿火柴的游戏程序。利用随机函数Math.random()产生火 柴数量(20~50), 每次最多拿3根,拿到最后一根为胜者。 要求:游戏过程要显示火柴总数,选择谁先拿;每步要显示剩余火柴数量,以及计算机拿的数量,并提示用户 输入拿多少;结束时显示谁是胜者。 【解题算法提示】 (1) 产生火柴总数(amount); (2) 决定随先拿(whoplay:1--人, 2--计算机); (3) 定义一个变量保存剩余火柴数量(remain)=amount ; (4) 当remain>0 循环 4.1 根据whoplay的值决定是计算机拿x根还是提示人拿x根;计算机拿时最好带有智能,人拿时要限制输 入数量。 4.2 修改 whoplay的值; 4.3 修改remain的值; (5) 根据whoplay的值决定胜者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值