GameDesign 板


LINE

如先前所言,我希望萤幕上出现的子弹是由不同武器所发射出来 即是说子弹彼此虽然各自独立,但却可以对玩家产生混合的影响 (就像开头所说的DDT+弹弓) 好比图层一般,层层独立,组合後变成最後的结果。 依照这个构想,我们可以把不同的武器所发射出来的子弹想像成独立的"弹幕" 彼此独立处理自己的移动,删除,碰撞等运算。而每种武器则各自掌管自己生成的弹幕。 至於武器与子弹的建构,就跟前篇建构STATE一样,先设计一个武器的原形class与 子弹的原形class,之後每把武器再各自继承之,并改写其中的Move(), isHit, Shoot() 等函式即可。 底下我们来看武器与子弹的prototype class: class weapon{ poulic: /*开火速率;发射前准备时间;弹药;跑位次数等*/ int fireRate; int preapreTime; int ammo; int changePosition; /*弹幕容纳*/ MovieClip mc; /*要传达给子弹的资讯*/ float speed; float damage; /*有的没的Function*/ void init(); void shoot(); void move(); void isHit(); }; class bullet: public MovieClip{ public: float radius; //子弹方向 float speed; //子弹目前速度 float damage; //子弹杀伤力 }; 这就是所有的武器的原形,同时也是第一把武器的宣告式 第一把武器(弹弓)的行为模式最简单也最直接: 发射->移动->消失or命中 在shoot() 函式中,武器"Create"一颗子弹,然後在弹幕中登记,告诉弹幕 "我发射了一颗子弹,等会记得帮我处理他的移动以及碰撞嘿~" 於是,弹幕库每次都会列出所有登记的子弹,然後处理他们的移动(move)及碰撞(isHit) 子弹的座标空间设定,我用的是极座标。藉由角度(radius)以及长度(speed) 来计算出每颗子弹接下来的所在(在frame与frame之间)。 而所谓的移动(protoType),不过就是每1/30秒用radius & speed计算出子弹的位移, 然後累加之,透过每1/30秒一次次的重复计算,就能达到子弹移动的效果。 碰撞(protoType)部分,则是每1/30秒简单比较每颗子弹的与PLAYER的bounding box 有无相交即可(雷射与黑洞的部分比较麻烦,容後再叙) 至此,前置程式已经接近完成。 把Player的部分补上,就差不多了。 PLAYER,负责接收玩家端的资讯。 可以想见其中必定有一个专门处理键盘传入资讯的Listener,负责把从键盘接收到的 资讯传达给程式处理。 先简单讲一下一开始的Player设计。 class player{ public: MovieClip mc; //实体影片片段 float speed; //移动速度 int turbo; //空白加速度 bool control; //操纵可否 enum ill; //不良状态 int illCount; //状态影响计数器 float attractRadius; //引力角度 int attractForce; //引力强度 void moving(); }; 其中基本的如移动速度等不赘述,turbo用来制造"按下空白键的突然加速"效果 每按一下空白键,turbo会变成10,然後每1/30递减。这个turbo最後会与 位移相加,假设原本的位移是一次+4; 一下turbo突然变成 +14, 再来是+10, +6... 就能制作出"涡轮加速"的突加/减速度运动。 "ill&illCount"则是用来登记几种负面状态的影响。 至於attractXXXX这两个,用来处理被弹时的後退方向,以及後退的力道。与turbo相同 这个参数也会在最後与位移相加。 其他大多是一些比较繁杂的程式如接收、对应的处理等,这部分我就略过了。 计算一下目前做了些什麽: Seeker具备基本的状态函式,武器库也有了一把武器,Player也能移动,攻击。 简单的游戏原形已经完成了(茶) 计算一下目前做了些什麽: Seeker具备基本的状态函式,武器库也有了一把武器,Player也能移动,攻击。 简单的游戏原形已经完成了(茶) 於是,最早的版本长的就像底下(大约500行左右): http://studentweb.ncnu.edu.tw/93321523/hb2006/teach/proto.swf (续) 文章转自暨大霞蔚山城 ★ HenryBBS (henry.twbbs.org) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.22.18.97







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP