Java究竟怎么玩?http://blog.csdn.net/cping1982

菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

匿名不具ID:cping1982
135739次访问,排名575好友12人,关注者15
机密……
cping1982的文章
原创 134 篇
翻译 0 篇
转载 37 篇
评论 291 篇
鹏凌三千(cping1982)的公告
本博评论删除规则如下:

1、辱骂性发言,无视其辱骂对象,一律删。

2、登录发表的评论,不违背第一条者一律不删。非登录发表的评论,过激者删。

3、若发生例外情况,则为CSDN博客系统自动删除。

声援SOFF|声援珊瑚虫:如果你是珊瑚虫用户,请坚决力挺声援珊瑚虫!

平生进退如飙风,一睨人才天下空。独向苍天横冷剑,何必生我惭英雄。

本人有效BLOG:

cping1982

ceponline

最近评论
bluesmile979:番茄花园怎么了?看来孤陋寡闻了,得到网上找找新闻看看。
molanmsn:博主,看了您的博客,非常想和您交流下关于java游戏框架的技术~~ 我的QQ:747877829,也给您的博客发邮件了
molanmsn:博主,看了您的博客,非常想和您交流下关于java游戏框架的技术~~ 我的QQ:747877829,也给您的博客发邮件了
卡门:看了那么多恢复我已经无语了,但我支持楼主。易语言我非常讨厌,喜欢java,c++哈哈。
xu1314:很好,很强大,借鉴借鉴!
文章分类
收藏
    相册
    Java的PC游戏开发
    Java中的A*(A star)寻径实现
    Java制作的类祖码游戏-数字祖码
    Java实现窗体中角色逐渐风化效果
    Java版吃豆游戏
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[2]——踏破红尘
    Java[伪]寻径追踪实现
    JAVA中[人工无脑]系统(chatbot)的实现
    Java中2.5D游戏(斜45度角)的设计与实现(1)
    Java中2.5D游戏(斜45度角)的设计与实现(2)
    Java仿太阁立志传5
    JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
    JAVA实现拼图游戏
    Java来做马里奥[0]—让精灵再次舞动
    Java来做马里奥[1]—木叶传承
    Java来做马里奥[2]—食不厌精
    Java来做马里奥[3]—杂兵登场
    Java模拟桌球打击处理及绘制
    Java汉诺塔测试
    Java炸弹人实现及源码
    人生如梦游戏间,JAVA游戏开源开发讲座[番外篇]之AVG开发——皮影
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[0]——月晕础润
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[1]——风云初现
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[3]——邯郸学步
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[4]——一步莲华
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[5]——一树双花
    人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[6]——走马观花
    史上最扯Java图形绘制(J2SE)之一JAVA动画效果
    沉寂的国人开源项目
    bo-blog(blog系统,php项目)
    DockPanel Suite [Microsoft .NET Framework Winform UI]
    Hocate web framework[web框架]
    Loonframework-DAO[持久层框架]
    Loonframework-GAME[游戏框架,尚未发布]
    Loonframework-WEB[web框架,尚未发布]
    Luntbuild(软件管理工具)
    magike(php博客)
    myseelite(p2p流媒体系统,c++项目)
    newxy(新坐标)[web框架]
    opencrx(crm系统)
    redlion(web框架)
    x2blog(asp.net博客系统)
    YOYOPlayer(音乐播放器)
    袋鼠egg(服务器)
    经典Blog
    # gzfqh的专栏 →底层代码研究(病毒及汇编)(RSS)
    # java 3D 游戏编程(RSS)
    Struts框架应用
    Struts框架应用~
    千里冰封[JAVA 浓香四溢]
    网络安全圈子
    经典站点
    Google
    IBM中国站
    JavaGame开发论坛
    JAVA开源大全
    Java爱好者
    Struts标签文档
    SUN 中国社区
    中国IT实验室
    数据库专区
    偶的其它应用实例
    C#将图像文件压缩为AVI文件播放
    Java图形程序水纹倒映效果
    C#转换AVI文件为BMP文件
    ClassLoader调用外部jar包
    ExtJS2.0开发与实践笔记[0]——初识ExtJS
    ExtJS2.0开发与实践笔记[1]——ExtJS中的Dialog与Form
    ExtJS2.0开发与实践笔记[2]——Ext中的Layout
    ExtJS2.0开发与实践笔记[3]——Ext中的Menu
    ExtJS2.0开发与实践笔记[4]——Ext中的动画处理
    JavaFx实现(1)-渐变效果
    JavaFx实现(2)-随机图形绘制
    Java中DAO的实现
    Java中Image翻转操作
    Java中将byte[]转为Blob对象
    Java中的A*(A star)寻径实现
    Java制作绿色软件(GreenJVM_0.1.0发布)
    JAVA图形操作类
    Java图形程序中的对话逐字显示实现
    Java实现任意文件在bmp中的隐藏与导出
    JAVA实现可设置背景的MDI窗口
    Java实现嵌入式数据库(文本数据库)代码实例
    Java实现类Windows导航栏
    Java正则表达式入门
    JAVA版JAVA IDE环境(源码)
    JAVA线程池的简单实现及优先级设置
    Java自定义JSlider UI
    Java获得系统环境变量
    Java音乐播放类
    ResultSet转为实体对象
    SWT行,AWT/Swing也行系列(1)-实现半透明及不规则窗体
    在JTable中加载进度条及进行操作
    在Swing中使用Html标签
    在SWT中使用ChartDirector
    浅谈java.util.concurrent包的并发处理
    浅谈Java集合中Array(数组)的应用
    通过exe启动class
    偶的文章
    《三国以后有几国》
    中国本土化编程(汉语编程)之我见
    从珊瑚虫事件,看为什么中国出不了比尔.盖茨
    佛与专家
    叹今人无气节而作歌
    国产开源项目的七宗罪
    对Hibernate使用之愚见
    对Java(J2SE PC)开发之怪现象之我见
    浅谈命名规范[纯属强辩]
    灭了珊瑚虫,下一个是谁?
    率性而作无题歌一首
    百度对“十进制网络”的官方态度
    耻民
    论番茄花园的倒掉
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创  人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[0]——月晕础润收藏

    新一篇: 人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[1]——风云初现 | 旧一篇: 起点17K刷点刷票


    开场诗:
    不儒不道又不仙,非神非圣也非贤。轻吐心头寻常语,开辟文武一片天。
    自表诗:北冥沉渊有鲲鹏,吞噬金乌戮真龙。一日扶摇凌天起,三千世界可横行。

     

        小子“鹏凌三千”,欲将心头事,付与有缘人,列位看官请了。

    我们都知道,目前国内游戏引擎开发领域中(请注意,我是在说游戏引擎),大体以C/C++为主导,Delphi次之,其他参差不齐。由于游戏引擎开发耗时耗力,很多人不愿意参与进来,所以一提[引擎]似乎就延伸到所谓[高手][大神]的范围,而不应为我辈凡夫俗子所瞩目。

       所以,目前国内的真实情况是,有志于游戏开发的同好们,现状无外分成几类:

     

    1.       无敌悍匪型:有很高的数学与编程基础,加盟某些公司成为技术骨干,主导开发一款热门游戏(目前主要是网游……),终生受用不尽。这类人以游戏开发为本职工作,月收入不菲,平时除了编程就是了解游戏,大多数是偶老师或以上级别(本人并未学习过游戏开发,但是偶在大学时有个代课老师曾经是以前赫赫有名的[前导]骨干,据说他开发过[赤壁]且主导开发过[血狮]……残念……),这批人的工作就是公司项目,当然不会轻易加入到开源的工作中来,不过有时会为提高知名度,而发布一些非开源的游戏。

     

    2.       人中龙凤型:虽然没有很好的基础,但是学历较高,[EQ]较高,能够被领导认为适合担当管理型角色,基本上属于[挑刺]的能手,让这些人当产品测试再合适不过,做个企划,吸引投资也有胜任的可能,让他开发游戏,下辈子吧……

     

    3.       善用工具型:很多朋友现在常用的RMXP等工具一样可以开发同人游戏,而且熟悉Ruby语言的朋友也可以用在其中自定义脚本,利用其扩展现有程序,“本鹏”甚至见过同人版的S.RPG仙剑和同人的斜45°单机大话西游,效果也确实不错。不过是利用日本人的工具,始终刻上RM系列的烙印(别说你用eXeScope等工具修改,RM系列组件的接口标识你有办法抹去?……),而且由于其本身[玩具类]工具的通病,程序不可避免的存在大量冗余数据,一个同人游戏程序的大小,可能是原版程序体积的1-5倍还不止……也实在令人难以忍受……就算脚本作的异常之好,被某些公司当作[范本]进行二次开发,也不过是充当了个[剧本]的作用,当了一次[小编],实在太过鸡肋。

     

    4.       神笔马良型:不错,就是能写会画的剧本和美工们,决定一款游戏好坏的,除非系统算法上极大的突破,否则在大同小异的情况下,100%就是美工的插画和脚本的剧情。在Flash大行其道的今天,如果他们能多学习一些Action Script方面的知识,甚至完全可以自己开发出一款即叫好,又叫做,而且可移植性强的游戏来。如果一个人美工即强,编程又到了[从心所欲,不滞于物]的境界,那就意味着这个人已达[天人]境界,自己一个人几乎可以挑起整个公司了……当然,前提是他不被累死的话……

     

    5.       心大胆小型:[心比天高,命比纸薄]是这类人最真实的写照,大体上都属于[一瓶子不满,半瓶子晃荡]的角色(比如某鹏……||||),偶更经常看到有人在各种论坛上发帖招集美工,脚本等人员进行游戏开发,并且有时会发出一个地图编辑器类的东西作参考(上次看见一个要做《梦幻模拟战》同人的,地图编辑器照搬某平面打飞机游戏……),然后就不了了之,这类人说起来天下无敌,办起来有心无力,是国内号称[游戏开发者]中的绝大多数,也是中国人劣根性的集中体现……

     

    6.       有心无力型:有恒心,有决心,有痴心,就是没能力,同样是主流之一,同样典型,作品大多为真情流露之做,多为画面和程序很粗燥,但游戏性却很强的小游戏作者,比如,以前上学时记得有个VB的《北京飘流记》之类的游戏……

      

       目前除了专业公司的游戏开发人员,和有心进入各大公司或自立门户的[准专业]人员,大体上都属于小打小闹,做同人游戏[自娱自乐]的阶段,而同人游戏的开发者,目前则多以RMXP系列及Flash系列为开发工具,虽然也有部分利用DelphiVB制作的精良游戏,但是通常都以程序代码取代了引擎的作用,很难重用到新的开发中去。

     “本鹏”有鉴于此,就想到写几篇文章以起到抛砖引玉的效果,但是用什么语言呢?(虽然偶不反对使用现成的游戏制作工具,但毕竟能否“制造和使用工具”,目前还是区别人与动物的标准之一C/C++虽然效果最好,但是也最难……本人非C/C++程序员,用DelphiVB也是后续计划,目前这一阶段还是以本职工作Java为主作为RPG类游戏(包括A.RPG,S.RPG)开发语言较好(虽然偶压根不是做游戏开发的……)。

      PS:很奇怪,国内的Java游戏大体上集中在嵌入式开发的领域中,多以手机为主,虽然J2ME(Java微型版,用于嵌入式开发)确实适合手机游戏开发(默认提供Sprite类,且支持很多的游戏算法),但是在Web和桌面程序的领域中,却很少有人用J2SE进行开发(或者说,没有……),请不要提Java的效率问题,Java代码经过优化后效率并不慢。所以我更要使用Java开发,这样写坏了也没人知道,嘿嘿。

     

    从游戏运行效果上看,Java开发游戏的优点Flash几乎都有(Flash几乎就是为做界面而生的……),缺点却几乎都没有。但是从开发效率上将,Java游戏可以很轻易的实现复杂引擎并完成快速开发,而Flash游戏越大则开发效率将越低,就好比华山[气宗][剑宗]的关系(当然了,随着Action Script的增强,这个屏蔽始终是会被打破的,但是打几年却不知道……)。另外,Java是支持真3D的。

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

     

    下面,我们进入讲座开始前的预备内容,Java界面的构成。

     

    1.       Hello Java (关于Java中图形界面的显示)

     

    “本鹏”此次的RPG开发讲座将重心放置于J2SE架构之上,以Swing为基础架构JFrame之上,利用JPanel进行扩展。现在,我们从最基础的第一步开始讲起,即如何利用Java构建一个Windows窗口。

    运行界面如下图:

    文件名:Example0.java

     

    package org.loon.chair.example0;

    import java.awt.Container;

    import javax.swing.JFrame;

     

    /**

     *

     * Java RPG开发讲座之0

     *

     * @author chenpeng

     * 

     *

     */

     

    //Java开发中,[子类]可以通过[extends]关键字继承[父类]

     

    public class Example0 extends JFrame{

       

         public Example0() {

            

                //设置窗体标题,也可写作 super("Hello Java"); 的形式

                setTitle("Hello Java");

     

                //实例化自定义面板

                MyPanel panel = new MyPanel();

                //获得当前窗体[容器]的实例,实际上可以直接设定,此处为演示

                //故应用后设定。

                Container contentPane = getContentPane();

                //加载自定义的面板[MyPanel]到窗体中,就好比在底板上再帖一层画面。

                //也就是说显示什么内容,是由我们加载那个[面板]来决定的,可以轻松

                //的实现游戏中不同画面间的切换.

                contentPane.add(panel);

     

                //自动整合窗体

                pack();

            }

       

        public static void main(String[]args){

          

           Example0 e0=new Example0();

                   

                     //令窗体接受关闭[事件]

                     e0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                    

                     //显示窗体(PS:Java中本有show()方法,但已成为准淘汰方法,

                     //说不定什么时候便不支持了,强烈不建议使用,虽然Visible内部

                     //目前还是调用它……

                   

                     e0.setVisible(true);

     

          

        }

     

    }

     

    文件名:MyPanel.java

    package org.loon.chair.example0;

    import java.awt.Color;

    import java.awt.Dimension;

    import java.awt.Graphics;

    import javax.swing.JPanel;

    /**

     * 自定义面板,用以扩展原有JPanel类功能.

     *

     * @author chenpeng

     *

     * Loon Framework in Game

     *

     */

    public class MyPanel extends JPanel{

       

        //定义全局常量,为默认的[面板]宽与高

        private static final int WIDTH = 300;

        private static final int HEIGHT = 300;

     

        public MyPanel() {

       

           //设置背景颜色R,G,B参数,个人喜欢用白色做底

        setBackground(new Color(255,255,255));

           //设置Panel默认大小

            setPreferredSize(new Dimension(WIDTH, HEIGHT));     

        }

      

        /**

         *   Graphicsjava.awt下所有类,用以[描绘]图形界面

         * 大多数Java下的图形界面开发时,都是以此类为基础的。

         *

         */

        public void paintComponent(Graphics g) {

        //这里我们没有自定义Graphics,而是直接调用[父类]的同名方法实现。

            super.paintComponent(g);

            //MyPanel(20,50)的位置上"""Easy Java"

            //如果换成drawImage函数就能在指定位置加载一张图片。

            g.drawString("Easy Java", 40, 40);

           

        }

     

    }

     

    架构关系如下图所示。

     

    实际Java RPG游戏开发中案例:

      如下图,为日本某Java游戏运行画面,即为JFrameJPanel的拼合显示。

    下图为“本鹏”开发中Java S.RPG引擎地图(此项目完成后开源)运行画面,原理相同:

     

    发表于 @ 2007年06月20日 16:46:00|评论(loading...)|编辑

    新一篇: 人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[1]——风云初现 | 旧一篇: 起点17K刷点刷票

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 鹏凌三千(cping1982)