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

    作者:课课家教育更新于: 2018-11-23 14:48:29

    大神带你学编程,欢迎选课

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

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

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

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

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

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

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

    如何运用JAVA代码制作游戏框架代码? _JAVA游戏设计_游戏制作_编程语言_课课家

      在pp类中代码如下:

    import java.awt.*;

    import java.awt.event.*;

     

    public class pp{

     

        public pp() {

            Frame app = new Frame("DrawBall2");

            //监视关闭窗体事件

            app.addWindowListener(new WindowAdapter() {

                public void windowClosing(WindowEvent e) {

    1. exit(0);

                }

            });

            app.setLocation(100, 100);

            MyPanel drawB = new MyPanel(); //实例化MyPanel对象

            app.add(drawB, BorderLayout.CENTER); //在窗体中间显示画版

          

            app.pack();//运行app中的pack方法,动态调整frame的大小,使frame中的组件都可见

            app.setVisible(true);

            drawB.gameStart (); //运行app中的gameStart方法

        }

     

        /**

         * @param args the command line arguments

         */

        public static void main(String[] args) {

            new pp();

        // TODO code 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  {

    //这里定义变量

        private int x;

        private int y;

        private int dx,dy,direction;

        private int diameter;

        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) {

    1. 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 {

    1. sleep(10);} //括号里面的10代表10毫秒,也就是0.001秒,可以该成你需要的时间

            catch (InterruptedException e) {

               e.printStackTrace();}          

            }

       }

     

            public void gameStart(){

            Thread gamethread = new Thread(this);

            gamethread.start();

       }

    }

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

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

课课家教育

未登录

1