java能否编程写游戏摇杆控制的程序

java能否编程写游戏摇杆控制的程序,第1张

据我所知,目前java没有这样的库。java是一种运行在虚拟机里面的语言,无法直接访问 *** 作系统甚至是硬件。如果你知道如何通过directX的编程(比如使用C++),那么就可以通过java本地接口(jni技术)实现。即通过java来调用C++,以实现对底层的调用

使用png格式的,除去坦克以外部分镂空,一来看起来好看点,二来能减少不少不必要的像素绘制。

另外就是尽量小点,宁可作做放大处理,资源越小,纹理越小,加载到内存的过程越快。另外对于这种坦克、还有场景的一些固有的资源,最好不要让它自动从内存中释放掉,打开游戏的时候自己做个预加载这些资源到内存中,整个程序结束的时候再从内存中释放资源。java和objective-c都是有资源引用计数的,一开始你就给它们多添加一次引用就可以保证它们不会被自动释放了(java我不怎么用了,应该有现有的库做这种事的吧,至少做android游戏开发内存预加载常要用的。)

什么是JAVA

提问者: nan7913 - 见习魔法师 二级

----------------------------

Java是SUN公司开发的一种面向对象的新一代网络编程语言,它可以在各种不同的机器、 *** 作系统的网络环境中进行开发,具有解释型语言(如Basic语言)和编译型语言(如C语言)的特性。Java摒弃了C 中各种弊大于利的功能和许多很少用到的功能,用Java开发的程序可以在网络上传输,并运行于任何客户机上。

特点

1、简单性:

Java语言通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,Java也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持大概有215KB左右。

2、面向对象:

Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。

3、分布性:

Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。

4、可靠性:

Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,Java提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。

5、安全性:

用于网络、分布环境下的Java必须要防止病毒的入侵。Java不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针 *** 作中容易产生的错误。

6、体系结构中立:

Java解释器生成与体系结构无关的字节码指令,只要安装Java运行系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。

7、可移植性:

与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java 系统本身也具有可移植性。

8、解释执行:

Java解释器直接对Java字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。

9、高性能:

和其它解释执行的语言如BASIC、TCL不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。

10、多线程:

多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确 *** 作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。

11、动态性:

Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。

Java语言的特性使它可以最大限度地利用网络。Ap-plet是Java的小应用程序,它是动态、安全、跨平台的网络应用程序。JavaApplet嵌入HTML语言,通过主页发布到Internet。网络用户访问服务器的Applet时,这些Applet 从网络上进行传输,然后在支持Java的浏览器中运行。由于Java语言的安全机制,用户一旦载入Applet,就可以放心地来生成多媒体的用户界面或完成复杂的计算而不必担心病毒的入侵。虽然Applet可以和图像、声音、动画等一样从网络上下载,但它并不同于这些多媒体的文件格式,它可以接收用户的输入,动态地进行改变,而不仅仅是动画的显示和声音的播放。

Java的开发工具。

1、 UltraEdit

UltraEdit是共享软件,最新版本是V1020b。其官方网址是:[url][/url] 。它是一个功能强大的文本、HTML、程序源代码编辑器。作为源代码编辑器,它的默认配置可以对C/C , VB, HTML, Java和 Perl进行语法着色。用它设计Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计。它具有完备的复制、粘贴、剪切、查找、替换、格式控制等编辑功能。可以在Advanced菜单的Tool Configuration 菜单项配置好Java的编译器Javac和解释器Java,直接编译运行Java程序。

配置Javac:在Command Line里输入:D:jspj2sdkinJavac %f,这里Javac的路径要根据JDK的实际安装路径来指定,%f是指当前活动文档的全文件名。在Menu Item Name 里输入Javac ,让其显示在Advanced菜单里,这样就可以直接执行它进行编译了。选中Output To List Box和Capture Output ,这样就可以在源代码下面的输出窗口里看到编译时的错误信息了。

配置不带参数运行的解释器Java:在Command Line里输入:D:jspj2sdkinJava %n,在Menu Item Name 里输入: Java filename,选中Output To List Box和Capture Output ,运行结果显示在输出窗口里。

配置带参数运行的解释器Java:在Command Line里输入:d:jspj2sdkinJava %n%modify%,在Menu Item Name 里输入:Java filename parameter,这样当执行这个菜单项的时候,会显示一个要求输入参数的对话框。

2、 Editplus

EditPlus也是共享软件,最新版本是EditPlus 212。其官方网址是:[url][/url]。EditPlus也是功能很全面的文本、HTML、程序源代码编辑器。默认的支持HTML、CSS、PHP、ASP、Perl、C/C 、Java、JavaScript和VBScript的语法着色。通过定制语法文件还可以扩展到其他程序语言。可以在Tools菜单的Configure User Tools菜单项配置用户工具,类似于UltraEdit的配置,配置好Java的编译器Javac和解释器Java后,通过EditPlus的菜单可以直接编译执行Java程序。

3、Jcreator

Jcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。官方网址是:[url][/url] 。当前最新版本是Jcreator 310,它又分为LE和Pro版本。LE版本功能上受到一些限制,是免费版本。Pro版本功能最全,但这个版本是一个共享软件。这个软件比较小巧,对硬件要求不是很高,完全用C 写的,速度快、效率高。具有语法着色、代码自动完成、代码参数提示、工程向导、类向导等功能。第一次启动时提示设置Java JDK主目录及JDK JavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDK Help。但目前这个版本对中文支持性不好。

4、Eclipse

Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,还可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。它的官方网址是:[url][/url],提供Releases、Stable Builds、Integration Builds和Nightly Builds下载。建议使用Releases或Stable Builds版本。

Releases版本是Eclipse开发团队发布的主要发行版本,是经过测试的稳定的版本,适合要求稳定而不需要最新改进功能的使用者选择。目前最新的Release版本是Eclipse 30。Stable Builds版本对大多数使用者而言已足够稳定,由开发团队用比较稳定的Integration Build版本提升到Stable Build而来,适合想使用Eclipse新功能的使用者选择。对于Releases版本21x,在Eclipse的官方网站上有一个语言包可以下载,这样Eclipse及其帮助都有简体中文版。Eclipse用于Java开发,与UltraEdit、Editplus两种编辑器和Jcreator IDE比较,Eclipse更专业,功能更强大。

总之,Java语言提供一种强有力的工具支援程序设计员。Java让程序设计变得更容易,因为它属于面向对象语言,而且提供了自动的内存垃圾收集功能。再者,由于Java码具备结构中立性,因此其应用程序成为非同质性运算环境 (例如Internet)的理想方案。

没有看明白是A击中B后,是A移除数据还是B移除,2种情况都写了,个人感觉随机数这块需要更好的算法处理下,代码如下:

package t;

import javautilArrayList;

import javautilRandom;

/

  海盗船的游戏:创建两个数组,每个数组大小都5,数组里面都存INT值,1-10之间的数字。

  随机生成。哪果A向B发射炮d,读一个随机数,是否在在B中存,若存在则B中d。

  则移除相应的数据。哪一个先被移除三个数字,则为输。

  @author hyc

 

 /

public class Test {

    

    static boolean isLog = true;

    public static void main(String[] args) {

        isLog =false;

        for (int i = 0; i < 100; i++) {

            AToB(5, 10, 3);

        }

    }

    public static void print(String str){

        if (isLog) {

            Systemoutprintln(str);

        }

    }

    /

      @param len d数

      @param max    最大随机范围

      @param dieNum    最大中d数

      @return

     /

    public static void AToB(int len,int max,int dieNum){

        ArrayList<Integer> a = new ArrayList<Integer>(5);

        ArrayList<Integer> b = new ArrayList<Integer>(5);

        Random random = new Random(SystemcurrentTimeMillis());

        for (int i = 0; i < len; i++) {

            aadd(randomnextInt(max));

            badd(randomnextInt(max));

        }

        print("A:"+a);

        print("B:"+b);

        int d_a = 0; //a中d次数

        int d_b = 0;// b中d次数

        for (int i = 0; i < len2; i++) {

            if (d_a >=dieNum) {

                Systemoutprintln("A输了");

                return;

            }

            if (d_b >=dieNum) {

                Systemoutprintln("B输了");

                return;

            }

            

            if (i%2==0) {

                print(i+"--:"+"A向B发射炮d");

                int index = randomnextInt(asize());

                Integer value = aget(index);

                print(i+"--:"+"A炮d索引:"+index+",炮d值:"+value);

                if (bcontains(value)) {

                    d_b++;

                    aremove(index);//B中dA移除数据

//                    bremove(value);//B中dB移除数据

                    print(i+"--:"+"A的炮d命中B"+d_b+"次");

                }else {

                    print(i+"--:"+"A的炮d未命中B");

                }

            }else {

                print(i+"--:"+"B向A发射炮d");

                int index = randomnextInt(bsize());

                Integer value = bget(index);

                print(i+"--:"+"B炮d索引:"+index+",炮d值:"+value);

                if (acontains(value)) {

                    d_a++;

                    bremove(index);//A中dB移除数据

//                    aremove(value);//A中dA移除数据

                    print(i+"--:"+"B的炮d命中A"+d_a+"次");

                }else {

                    print(i+"--:"+"B的炮d未命中A");

                }

            }

            

        }

        Systemoutprintln("A和B打成了平手");

    }

    

    public static boolean launch(int index,ArrayList<Integer> list1,ArrayList<Integer> list2){

        if (list2contains(list1get(index))) {

            list1remove(index);

            return true;

        }else {

            return false;

        }

    }

}

这个坦白地说,非常难,但也不是不可以,就看你有没有恒心了。

需要学习JAVA SE的基础,包括AWT、SWING的一些知识,二进制与文本IO,3D图象,可能还涉及很多运算,包括声音与视频的输出,动画或flash的输出,甚至有可能要有与windows DirectX的交互。我在外面看过有JAVA游戏编程方面的书,你可以买来看看

以上就是关于java能否编程写游戏摇杆控制的程序全部的内容,包括:java能否编程写游戏摇杆控制的程序、用Java开发简单的游戏、用java代码编辑的游戏都有些什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10163330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存