zoukankan      html  css  js  c++  java
  • 移动终端网页游戏移植研发框架【客户端战斗系统】

         传统网页游戏中的战斗系统无非两种,服务器端请求数据资源后,在游戏中进行配置,然后以动画形式表现出来。诸如十年一剑这类网游,战斗系统就是,靠装备+技能配置+家将辅助。在这里我想说决定一款游戏是否好玩,关键就在2个地方,游戏性【新颖的系统,和各种创新玩法】和交互性。所以我们除了要有研发游戏技术,还要有研发游戏的点子。做出什么样的系统才能吸引玩家?我们的游戏中,战斗系统算是一个小亮点,和大多文字类型游戏一样,通过玩家请求打怪,获得打怪数据,只不过将打怪数据图层化,界面化。

        下面我介绍一下我们游戏里面的战斗系统结构和框架:

        首先是视图:

        由于是在手机界面上,手机的屏幕大小是我们做游戏最大的局限,有非常好的场景和美工,但缺无处施展开来!所以我在做战斗系统的时候将地图背景区域化,局部显示,然后利用android手机滑动特性,让然家自由查看战斗场景中的每一个细节部分!

    这使我们战斗系统中的战斗背景图,很明显中间的竞技台就是玩家们厮杀的战场!我们要将玩家和怪物实体化,将玩家的造型,和怪物的造型实例化出来。简单的看一下游戏中的制作界面,和需求:

         在战斗界面中 需要有

        1人物造型

        2人物属性,包括血条显示,属性值显示

        3人物技能展示

        4战斗信息框

        这4个部分就构成了一个完整的整个战斗系统。

    最后就是详细说一下我们的技能显示,这点也是整个游戏中的一大玩点。首先详细秒速一下绿色背景区域,就是我们的技能显示区域,技能显示展示方法我们不是用andorid的控件和工具,我们是自己做的一套帧动画播放机制,android JAVA里面的Timer 使我们技能发招的大功臣!

     Timer timer ;
        Runnable runanble;
    	private int j = 0;
        //技能播放
        public void onplay(final String nowskillname,final String nowlife,final Boolean nowpkdxflag) {
        	timer = new Timer();
    		timer.scheduleAtFixedRate(new TimerTask() {
    			@Override
    			public void run() {
    				// TODO Auto-generated method stub
    				nowSkillName =nowskillname;
    				nowLife=nowlife;
    				nowPKdxflag = nowpkdxflag;
    				j++;
    				Message mesasge = new Message();
    				mesasge.what = j;
    
    				if(j<=5)
    				{
    					playerhandler.sendMessage(mesasge);	
    					
    				}
    				else
    				{
    					j=0;
    					timer.cancel();
    					close_Skill();
    					playerhandler.removeMessages(j);
    				}
    			}
    		}, 0, 200);
    	}
    	public class DelayThread extends Thread {
    		int milliseconds;
    
    		public DelayThread(int j) {
    			milliseconds = j;
    		}
    
    		public void run() {                                                                                                                                                                                                                                                                                                                 
    			while (true) {
    				try {
    					sleep(milliseconds);
    				} catch (InterruptedException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    
    				playerhandler.sendEmptyMessage(0);
    			}
    		}
    	}
    	private Handler playerhandler = new Handler() {
    		@Override
    		public void handleMessage(final Message msg) {
    			TApp.getActivity().runOnUiThread(new Runnable() {
    				@Override
    				public void run() {
    						//释放技能
    				}
    			});
    		}
    	};
    

     然后通过线程来跑技能释放动画,动画取材思路我就不说了,我们的算法就是帧组合,取出不同帧来呈现。

       最后说一下数据结构,通过以上的模块,组合起来的战斗效果只能说达到了高仿实景PK的界面,但是流畅度和画面的展现形式还有待提高的。

       下面展现一下最新的一组战斗图片:

       我们通过山河社稷图找到地图上的练级地图,进入1-10级地图:

       

       之后进入地图场景,场景上面的怪物和NPC都是流畅可见的。怪物和NPC其实目前其实就是精灵系统,现在精灵系统上面的元素还比较少,不过要是做动作,对话,还是可以简单实现的。

       

      最后就是点击怪物,然后弹出战斗提示,进入战斗场景!!开始战斗!!

      

    这就是整个战斗系统的具体流程,及游戏的玩法!!从界面效果上看,基本上是能达到实景界面PK的模式,而且通过局部显示,玩家可以查看战斗中的每一个场景点。

    如果有喜欢我们这款游戏的朋友,可以加群【剑神客栈研发组:45578308】。一起讨论,策划游戏!

  • 相关阅读:
    ORACLE 查看进程数,已执行任务数, 剩余任务数,删除指定任务
    ORACLE 收集统计整个用户数据
    解决Hystrix dashboard Turbine 一直 Loading…… 及其他坑
    利用 Maven 构造 Spring Cloud 微服务架构 模块使用 spring Boot构建
    AES加解密
    JAVA POI XSSFWorkbook导出扩展名为xlsx的Excel,附带weblogic 项目导出Excel文件错误的解决方案
    JAVA 文件的上传下载
    shell启停服务脚本模板
    JAVA 设计模式之 原型模式详解
    JAVA 设计模式之 工厂模式详解
  • 原文地址:https://www.cnblogs.com/zisou/p/jskz5.html
Copyright © 2011-2022 走看看