java能做游戏吗?
Java当然可以做游戏,桌面,手游都可以,很多年前的手游都是j***a开发的,就是贪吃蛇,弹球类的游戏,但是因为j***a性能比较差后来就慢慢被淘汰了,如果你是兴趣爱好,不做复杂的游戏,可以用j***a做尝试。
如何用j***a实现一个贪吃蛇小游戏?
1、设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。
2、所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。
3、定义我们的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。所以,我们需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。
4、食物的位置信息是二维的,所以我简单定义了一个类用来保存二维信息。
5、接着就是实现游戏的功能了。开始,暂停,停止按钮添加***控制游戏开始。等级按钮定义游戏难度等。
为什么J***a不适合游戏开发?
因为j***a中间多出来一个jvm,效率低,游戏实时性很重要。
3.产品的侧重点。
就拿j***a和c++来说,j***a主要用于web开发,但是c++通过cgi也可以写web,而且c++的执行效率甩j***a几条街,但是为什么不用c++写web呢,因为c++的开发web的效率太低,而j***a有各种web方面的框架,开发效率高。
如果产品是游戏,游戏实时性很重要,你玩个游戏反应慢半拍那肯定很恼火。游戏这个产品的实时性就注定了要***用高效率的语言开发,那c,c++自然就跑不掉了。
J***a何来不适合游戏开发一说的呢?
很多游戏的服务端就是J***a的
而且实时性要求不高的游戏客户端,也可以用J***a开发,例如 我的世界
我想题主想问为什么3A大作没有用J***a开发的吧
这其实是一个路径绑定问题,目前大作基本上都是用游戏引擎做的,而且这些游戏引擎都是发展多年的,如果用J***a做,可能要用没经过业内验证的新东西,大公司不想冒险,还有J***a的垃圾回收机制本身也是个难点,不适合做实时性非常强的游戏。
j***a开发游戏性能和效率差,开发一些小游戏还可以,j***a面向对象,所有方法都是封装在类里的,要调用方法就得实例类,而游戏主要侧重的是逻辑
对象就像是很多功能的机器,但是我的游戏逻辑只要每台机器的其中一个功能,但要用的话必须把这一整台机器制造出来。这就是面向对象的缺陷吧
而c是面向过程的可以更加灵活地设计过程逻辑,少去很多多余东西,大大提高性能
j***a的长处就是利用各种现存的类包,达到复用的效果,大大提高开发效率,
当然j***a也可以只针对逻辑来设计类,但那不是j***a的长处,没有多大的意义