java写游戏按键脚本如何写?java写游戏按键脚本实例

Java在生活中应用范围还是很广的,我们利用java可以编写出很多应用软件,就连游戏也可以使用java开发,那java写游戏按键脚本如何写?接下来我们就来给大家讲解一下这方面的内容。

java写游戏按键脚本.png

在 Java 中,如何用Swing实现打字游戏.需要掌握多线程,JFrame的创建方法。多线程的创建方法,一个是继承Thread类,一个是实现Runnable接口。框架的实现,直接创建一个类继承JFrame.

基本思路是:创建一个JFrame ;2.启动十个线程,每个线程携带了一个JLabel,用到了随机函数,每个JLabel的刚出现的时候,他们的y坐标都是一样的,x坐标是随机的(随机范围在JFrame的宽度内.JLabel显示的值,是Ascii对应的拉丁字母 .3.线程控制每个JLael的y坐标增加,这样字母就在往下掉 4.响应键盘事件

//载入包
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import java.applet.*;
// 创建一个线程
class MyThread extends Thread
{
    int height = 0;
    // JLabel的x坐标
    int intx = 0;
    // JLabel 的y坐标
    int inty = 0;
    static int com = 0;
    JLabel lb1;
    public MyThread(ThreadGroup g, String name, int width, int fheight)
    {
        this.setName(name);
        height = fheight;
        // 设置JLabel显示的大写字母,通过随机值控制.65是大写A的Ascii值
        lb1 = new JLabel(“”+(char)(int)(Math.random() * 26 + 65));
        // 设置JLabel的背景颜色,红,绿,蓝组成自然界所有色彩
        lb1.setForeground(new Color((int)(Math.random() * 250), (int)(Math.random() * 250), (int)(Math.random() * 250)));
        intx = (int)(Math.random() * (width - 20));
        //线程启动
        start();
    }
    public void run()
    {
        try
        {
            while (true)
            {
                //睡眠50毫秒往下掉
                sleep((int)(Math.random() * 50));
                lb1.setBounds(intx, inty, 15, 15);
                //改变y坐标
                inty++;
                if (inty >= (height - 20))
                {
                    lb1.show(false);
                    MyThread.com++;
                    break;
                }
            }
        }
        catch (Exception e)
        {}
    }
}
//创建窗口
class TestKey extends JFrame
{
    JButton b1, b2;
    static int index = 0;
    Container conent = getContentPane();
    static int idd = 0;
    static int count = 0;
    int ixx;
    static ThreadGroup dg = new ThreadGroup(“group1”);
    static ThreadGroup dg1;
    static MyThread t1;
    Thread list[];
    public TestKey() throws ArrayStoreException
    {
        setSize(400, 600);
        b1 = new JButton(“开始”);
        b2 = new JButton(“结束”);
        conent.setLayout(null);
        b1.setBounds(getWidth() / 2 - 100, getHeight() - 70, 80, 30);
        b2.setBounds(getWidth() / 2 + 50, getHeight() - 70, 80, 30);
        conent.add(b1);
        conent.add(b2);
        conent.setBackground(Color.blue);
        Container cont = getContentPane();
        conent.setBackground(Color.white);
        show();
        //响应按钮事件
        b1.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent even)
            {
                for (int i = 0; i < 10; i++)
                {
                    t1 = new MyThread(dg, ”t” + i, getWidth(), getHeight());
                    getContentPane()
                        .add(t1.lb1);
                }
            }
        });
        b2.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent even)
            {
                int num = conent.getComponentCount() - 2;
                for (int i = 2; i < num + 2; i++) < p = "" >
                {
                    conent.remove(2);
                    conent.repaint();
                }
                if ((float) num / count <= 0.02)
                    JOptionPane.showMessageDialog(null, ”共有” + count + ”个字母n” + ”只有” + num + ”个未打掉!n您真是高手, 佩服, 佩服!”);
                else if ((float) num / count <= 0.15)
                    JOptionPane.showMessageDialog(null, ”共有” + count + ”个字母n” + ”有” + num + ”个未打掉!n水平不错, 继续努力吧!”);
                else if ((float) num / count <= 0.3)
                    JOptionPane.showMessageDialog(null, ”共有” + count + ”个字母n” + ”有” + num + ”个未打掉!n您很有潜力, 不要虚度光阴哦!”);
                else if ((float) num / count <= 0.4)
                    JOptionPane.showMessageDialog(null, ”共有” + count + ”个字母n” + ”有” + num + ”个未打掉!n挺危险的, 加把劲啊!”);
                else
                    JOptionPane.showMessageDialog(null, ”共有” + count + ”个字母n” + ”有” + num + ”个未打掉!n不蛮你, 你真的很差劲, 抓紧练习吧!”);
            }
        });
        //监听窗口事件
        addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent event)
            {
                if (conent.getComponentCount() == 2)
                    JOptionPane.showMessageDialog(null, ”您真的要退出吗 ? n记得经常来练习啊!”);
                else
                    JOptionPane.showMessageDialog(null, ”您确定要退出吗 ? n我还没为您评分的啊!”);
                System.exit(0);
            }
        });
        b1.addKeyListener(new KeyAdapter()
        {
            public void keyTyped(KeyEvent event)
            {
                list = new Thread[dg.getParent()
                    .activeCount()];
                int count = dg.getParent()
                    .enumerate(list);
                for (int i = 0; i < list.length; i++) < p = "" >
                {
                    try
                    {
                        MyThread mt = null;
                        mt = (MyThread)(list[i]); // instanceof MyThread)
                        if (event.getKeyChar() == mt.lb1.getText()
                            .charAt(0))
                        {
                            mt.lb1.setVisible(false);
                            MyThread hh = new MyThread(dg, ”t” + i, getWidth(), getHeight());
                            getContentPane()
                                .add(hh.lb1);
                        }
                    }
                    catch (Exception e)
                    {}
                }
            }
        });
    }
    public static void main(String args[])
    {
        TestKey mf = new TestKey();
        Container cont = mf.getContentPane();
        cont.setBackground(Color.white);
        cont.setLayout(null);
        //创建十个线程,携带十个字母往下掉
        for (int i = 0; i < 10; i++)
        {
            t1 = new MyThread(dg, ”t” + i, mf.getWidth(), mf.getHeight());
            cont.add(t1.lb1);
        }
    }
}

java写游戏按键脚本如何写?java写游戏按键脚本实例.png

这样我们就可以利用Java开发出游戏脚本了,其实使用java可以开发很多小型游戏,大家感兴趣可以试试哦!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

java泛型方法怎么定义?java泛型有什么作用?

java初学者视频教程在哪里找?java初学者怎么学好?

qt乱码选择编码选哪个?Qt编程会涉及哪些术语以及名词?