首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
java游戏开发杂谈 - 创建一个窗体
】的更多相关文章
java游戏开发杂谈 - 创建一个窗体
package game1; import javax.swing.JFrame; /** * java游戏开发杂谈 * ---demo1:创建一个窗体 * * @author 台哥 * @date 2019-04-02 */ public class GameFrame extends JFrame{ public GameFrame() { //设置窗体标题 this.setTitle("java游戏开发杂谈-台哥出品"); //设置窗体大小 this.setSize(600, 4…
java游戏开发杂谈 - 线程
线程,让游戏拥有了动态变化的能力. java的图形界面,在启动的时候,就开始了一个线程. 这个线程负责处理:JFrame.JPanel等的绘制.事件处理. 它是由操作系统调用的,在程序启动时开启,程序关闭时消亡. 这个线程里执行的逻辑,支撑着图形框架的基础逻辑,我们无法控制它. 想一下,游戏里那些动画效果.呼啸而出的子弹.飘来飘去的云朵.. 这些行为都不是我们用按键和鼠标来控制的,是随着时间自己在动的. 它们在动,说明它们的坐标发生了变化,那么谁来控制这些坐标变化的呢? 答案是:另一个线程! 先…
java游戏开发杂谈 - 实现游戏主菜单
经常玩游戏的同学,大家都知道,游戏都会有个主菜单,里面有多个菜单选项:开始游戏.游戏设置.关于游戏.退出游戏等等,这个菜单是怎么实现的呢. 有一定桌面软件开发基础的同学可能会想到,用JButton组件就可以实现,每个选项就是一个按钮嘛. 嗯,这样做是可以的.但是,系统自带的JButton按钮,样式是已经定义好的,虽然可以设置它的颜色.背景等属性,但终归是受限制的. 我们既然是学习游戏开发,那么时刻要记住台哥在之前的一个章节里所讲的,游戏里所有的东西都是计算机画出来的,程序员的工作就是,控制计算机…
java游戏开发杂谈 - 事件处理
大家都知道,游戏需要跟玩家交互,需要接收玩家的鼠标.键盘发出的命令,比如在地图上点击一下,人物就自动寻路走过去:键盘上按下某个键,就弹出一个背包界面. 这些逻辑是怎么处理的呢? 大家先不用深究太详细的,只需要知道,当我们按下键盘时,操作系统会接收到指令,然后把指令传递给java虚拟机,java虚拟机再把指令转发给当前的游戏程序. java定义了一些类来封装事件,比如KeyEvent对应按键事件,按下键盘,就会产生一个KeyEvent对象: 还有另外的一些接口,用来监听处理事件,比如KeyList…
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 wid…
java游戏开发杂谈 - 游戏物体
现实生活中,有很多物体,每个物体的长相.行为都不同. 物体存在于不同的空间内,它只在这个空间内发生作用. 物体没用了,空间就把它剔除,不然既占地方,又需要花精力管理. 需要它的时候,就把它造出来,不需要它的时候,就把它销毁. 按照面向对象的设计思想,游戏里的物体,我们也把它定义为一个类. 一个类就定义了一种物体的属性.行为.类是对象的模板,对象是类的实例. 我们用一个集合,把所有的游戏物体都放在里面,对它们进行统一的管理. 随着游戏线程的运行,集合里的物体,它们的逻辑和绘制也不断被调用执行. 我…
java游戏开发杂谈 - 有限状态机
在不同的阶段,游戏所运行的逻辑.所显示的界面,都是不同的. 以五子棋举例,游戏开始.游戏中.胜负已分,对应的界面和逻辑都不同. 在游戏中,又分为:自己下棋.对方下棋.游戏暂停.悔棋等多个状态. 再比如RPG游戏的人物,站立.行走.奔跑.攻击.死亡都是不同的动画, 发出一颗子弹,从出现,到往前运动.打到目标,或飞出屏幕,都是不同逻辑. 怎么实现这些效果呢? 程序里设定不同的状态,当前是什么状态,就执行什么逻辑. 这个就叫做:有限状态机! 是不是很简单,不要小瞧它,复杂的游戏功能都是靠它实现的. 接…
java游戏开发杂谈 - 游戏编程浅析
每个游戏,你所看到的它的一切,都是计算机画出来的! 地图是画出来,人物是画出来的,树木建筑是画出来的,菜单按钮是画出来的,滚动的文字.闪烁的图标.云雾烟火,都是画出来的. 游戏编程,所要做的,就是控制程序,在什么时间,界面上画出什么东西! 大多数游戏,需要不断的重新绘制,以达到动态的效果.比如植物大战僵尸中的向日葵,它一直在动. 这类游戏,是隔很小一段时间,就会重绘.不断的重绘,每次绘制不同的帧,于是界面上显示出向日葵的摇摆动画. 还有些游戏,不需要不断的重绘,比如扫雷,这种没有动画…
java游戏开发杂谈 - java是什么
java是一门编程语言, 它有三个开发平台:j2ee.j2se. j2me.(其实android也算一个了) j2ee, 也就是web开发,比如网站.各类管理系统,主要是围绕数据库.网页等进行的开发.j2ee涵盖的技术比较多,除了java语法,还需要掌握html/css/javascript等浏览器前端开发技术.jsp/servlet等服务器开发技术,mysql/oracle/sqlsever等数据库,sql语言,以及struts/hibernate/spring等开发框架.这类开发简…
java游戏开发杂谈 - 界面刷新、坐标系
之前几篇博客里的例子,大家运行过的话,就能看出来,界面是需要刷新的. JPanel里的绘制方法是paintComponent,界面上的东西都是这个方法画出来的. JPanel对象有一个repaint方法,从字面意思大家也看的懂,这个是重绘方法. 可以粗浅的这么认为:每调用一次repaint,就会执行一次paintComponent 例如:界面上有一个方块,位置在坐标(20,20)处, 按一下向右的方向键,需要方块往右移动一个像素,变为坐标(21,20) 那么在按键监听方法里,判断按下的如果是向右…