java游戏制作_如何运用JAVA代码制作游戏框架代码?

如何制作JAVA游戏框架代码?

制作游戏框架是制作游戏很重要的一个部分,特别是比较复杂的游戏,最好有一个框架,然后在这个框架进行修改。

那么,如何制作游戏框架再进行修改呢?

首先,我们需要一个对照物,你要做一个枪击类的游戏,还是冒险类的游戏呢?

选择好之后,就在网上寻找框架。那么,我们来做一下冒险类的游戏框架吧。

第一:在File菜单中选择-New–JavaProject,

新建一个项目,假设名称是pp,并在里面新建一个类pp.

2c607bd69075bfd02feb457d36a33c9b.png

在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();

}

}

144381359d8d580c59b5e43385f57c38.png

小编结语:其实,这个就是我们需要制作的游戏框架,类型为冒险类的,很简单的一款游戏,可是却被称为世界上最难的游戏,那么它的框架是怎样的呢?我们可以根据上面的代码进行修改。感谢大家的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值