浅谈Java的PC端游戏开发

来源:百度文库 编辑:神马文学网 时间:2024/04/28 04:49:01

    最近看一些游戏实现方法的资料,理解了RPG游戏的实现,从小喜欢玩游戏,曾经为了深爱的口袋妖怪买了第一个掌机GBC,放学就飙去网吧星际、CS,这么多年了,玩过的游戏N多,也曾经想过着手去做游戏,大三的时候拿C++写过一个五子棋游戏,而且没有加入AI,后来改写成Java的。当时网上看很多人说Java不适合做游戏,大概就是说在JVM下游戏的性能很难保证,经过这么长时间,Java有了他自己的发展,最新版的JDK也摒弃了原来一直很推崇的SWING,回到了优化AWT上,这都是为了性能考虑的,SUN也增加了一些对AWT的实现方法。

    言归正传,今天先说下RPG的游戏,对于地图的实现其实很容易,只要定义一个二维数组,比如:

    private int[][] map = {

        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},

        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},

        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},

        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},

        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},

        {1,0,0,0,0,1,1,1,1,1,0,0,0,0,1},

        {1,0,0,0,0,1,0,0,0,1,0,0,0,0,1},

        {1,0,0,0,0,1,0,0,0,1,0,0,0,0,1},

        {1,0,0,0,0,1,0,0,0,1,0,0,0,0,1},

        {1,0,0,0,0,1,1,0,1,1,0,0,0,0,1},

        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},

        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},

        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},

        {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},

        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};

这样有1的地方就可以设置成阻碍,像墙壁这类的。0就可以提供给人物移动的地板。在继承一个JPanel面板上面绘制地图。条件判断这个二维数组,使用drawImage方法,画出墙壁或者地板。

    人物也一样,对刚才继承的那个JPanel面板实现KeyListener接口,然后对键盘监听,对每一个方向操作,画入不同的人物方向图片,并且需要判断是否此方向有障碍,否则不改变人物坐标和绘制人物。

    贴个简单实现的效果图,代码就不贴了。

    人物使用口袋妖怪叶绿的主人公。截VBA的图,呵呵。

    

    天下武学,殊途同归,招无强弱,人有优劣。