如何制作JAVA游戏框架代码?
制作游戏框架是制作游戏很重要的一个部分,特别是比较复杂的游戏,最好有一个框架,然后在这个框架进行修改。
那么,如何制作游戏框架再进行修改呢?
首先,我们需要一个对照物,你要做一个枪击类的游戏,还是冒险类的游戏呢?
选择好之后,就在网上寻找框架。那么,我们来做一下冒险类的游戏框架吧。
第一:在File菜单中选择-New–JavaProject,
新建一个项目,假设名称是pp,并在里面新建一个类pp.
在pp类中代码如下:
importjava.awt.*;
importjava.awt.event.*;
publicclasspp{
publicpp() {
Frame app =newFrame("DrawBall2");
//监视关闭窗体事件
app.addWindowListener(newWindowAdapter() {
publicvoidwindowClosing(WindowEvent e) {
exit(0);
}
});
app.setLocation(100, 100);
MyPanel drawB =newMyPanel(); //实例化MyPanel对象
app.add(drawB, BorderLayout.CENTER); //在窗体中间显示画版
app.pack();//运行app中的pack方法,动态调整frame的大小,使frame中的组件都可见
app.setVisible(true);
drawB.gameStart (); //运行app中的gameStart方法
}
/**
*@paramargs the command line arguments
*/
publicstaticvoidmain(String[] args) {
newpp();
//TODOcode application logic here
}
}
2.然后,我们新建一个类,类名为MyPanel,代码为:
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.*;
import java.util.*;
public class MyPanel extends Panel implements Runnable, KeyListener {
//这里定义变量
privateintx;
privateinty;
privateintdx,dy,direction;
privateintdiameter;
private int width;
private int height;
private Image im;
private Graphics dbg;
public MyPanel() {
//这里给变量赋初值
x=50;
y=50;
dx=10;
dy=10;
diameter=50;
width=500;
height=500;
setPreferredSize(new Dimension(width, height));//设置组件的大小
this.setFocusable(true);//设置焦点
this.requestFocus();//获取焦点
this.addKeyListener(this);//添加键盘监听事件
}
public void gamePaint() { //前屏绘制
Graphics g;
try {
g = this.getGraphics(); //获取当前屏幕的Graphics对象
if (g != null && im != null) {
g.drawImage(im, 0, 0, null);//将图像缓冲区中的内容复制到前屏缓冲区,显示出来
}
g.dispose();//释放当前屏幕的Graphics对象
} catch (Exception e) {
}
}
public void gameRender() { //离屏绘制
if (im == null) {
im = createImage(width, height);
if (im == null) {
out.println("im is null");
} else {
dbg = im.getGraphics();
}
}
dbg.setColor(Color.WHITE);
dbg.fillRect(0, 0, width, height);//用底色矩形填充画版,擦去图案
//这里画图
dbg.setColor(Color.blue);
dbg.fillOval(x, y, diameter, diameter); //画出椭圆
}
public void gameUpdate() { //更新游戏逻辑
//这里移动物体坐标和判断物体位置
}
public void keyPressed(KeyEvent e){
int keycode = e.getKeyCode();
//按向下
if (keycode ==KeyEvent.VK_DOWN)
{
}
//按向上
if (keycode ==KeyEvent.VK_UP)
{
}
//按向右
if (keycode == KeyEvent.VK_RIGHT)
{
}
//按向左
if (keycode == KeyEvent.VK_LEFT)
{
}
}
public void keyTyped(KeyEvent e){
}
public void keyReleased(KeyEvent e){
}
public void run() {
while(true){
gameUpdate();
gameRender();
gamePaint();
//以下我们用一个延时函数代替空循环来延时,sleep(10)中的数字代表延时毫秒,数字越小越快
try {
sleep(10);} //括号里面的10代表10毫秒,也就是0.001秒,可以该成你需要的时间
catch (InterruptedException e) {
e.printStackTrace();}
}
}
public void gameStart(){
Thread gamethread = new Thread(this);
gamethread.start();
}
}
小编结语:其实,这个就是我们需要制作的游戏框架,类型为冒险类的,很简单的一款游戏,可是却被称为世界上最难的游戏,那么它的框架是怎样的呢?我们可以根据上面的代码进行修改。感谢大家的支持。