设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 929|回复: 35

[随意闲聊] 用 MV 写的塔防模式

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14405
在线时间
4077 小时
注册时间
2012-11-19
帖子
4581

开拓者

发表于 2019-8-26 09:46:42 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
   
   昨年就开始设想的 塔防模式 ,在今年年初才开始动手,利用空余时间,到现在差不多基本完成了。

  这个塔防模式,不影响默认的游戏模式。需要进行塔防时,只需要 一个进行塔防的地图ID ,一个用于记录塔防
敌人队伍的公共事件ID 就行了。 事件输入插件命令,代入这两个参数,即可进行塔防游戏。
  塔防游戏完毕后,自动回到塔防游戏前角色所在的地图和位置。


以下为塔防系统的一些概况:

===========================================================================================
〓 角色 〓
===========================================================================================
1,角色各种属性数据,皆是 数据库-角色
-------------------------------------------------------------------------------------------
2,角色用于塔防的动作行走图(八方向),共四种(静止,行走,攻击,死亡)。

   静止动态图  => 角色备注
   行走动态图  => 角色备注<塔防模式暂未用到>
   攻击动态图  => 角色备注
   死亡动态图  => 角色备注<塔防模式暂未用到>

   <每种动作图的帧数,可以不相同>
-------------------------------------------------------------------------------------------
3,角色对应动作声效(无备注则无声效)。

   攻击声效 => 角色备注
   挨打声效 => 角色备注
   死亡声效 => 角色备注
-------------------------------------------------------------------------------------------
4,角色占地格数 => 角色备注  <角色在地图上所占的格数>
-------------------------------------------------------------------------------------------
5,角色攻击频率 => 设置的角色某项属性  <属性值越接近该属性的最大值,攻击频率越快>
===========================================================================================
〓 敌人 〓
===========================================================================================
1,敌人各种属性数据,皆是 数据库-敌人

   <可用命令调节塔防模式时敌人的血量,经验,金钱,爆率等百分比。>
-------------------------------------------------------------------------------------------
1,敌人用于塔防的动作行走图(八方向),共四种(静止,行走,攻击,死亡)。

   静止动态图  => 敌人备注
   行走动态图  => 敌人备注
   攻击动态图  => 敌人备注<塔防模式暂未用到>
   死亡动态图  => 敌人备注

   <每种动作图的帧数,可以不相同>
-------------------------------------------------------------------------------------------
2,敌人对应动作声效(无备注则无声效)。

   攻击声效 => 敌人备注
   挨打声效 => 敌人备注
   死亡声效 => 敌人备注
-------------------------------------------------------------------------------------------
3,敌人行走速度(频率)=> 敌人备注

   <像素移动,每步所走距离相同,行走速度由动作频率决定>
-------------------------------------------------------------------------------------------
4,敌人抗打击能力 => 敌人备注

   <敌人受伤会短暂的受伤动作而停止行走,抗打击能力可备注其受伤的血量百分比高于某个值才>
   <显示受伤的动作,百分比备注为 100 时,免疫受伤动作>
===========================================================================================
〓 技能 〓
===========================================================================================
1,技能的各项数据,皆是 数据库-技能
-------------------------------------------------------------------------------------------
2,技能在塔防时的 子弹 图像 => 技能备注

   <只有备注了该项的技能,才能用于塔防模式>
   <子弹 图像可以是 1帧静态,也可以是 多帧动态>
-------------------------------------------------------------------------------------------
3,技能攻击范围 => 技能备注
  
   <备注的数值是地图格数,实际像素圆范围半径 = 格数 x 图块尺寸>
-------------------------------------------------------------------------------------------
4,技能爆炸伤害范围 => 技能备注
   
   <备注的数值是地图格数,实际像素圆范围半径 = 格数 x 图块尺寸>
-------------------------------------------------------------------------------------------
5,技能的攻击频率 => 技能备注

   <该频率值,加上使用这个技能的角色攻击频率,为最终的攻击频率值>
-------------------------------------------------------------------------------------------
6,技能的使用者动画 => 技能备注
===========================================================================================
〓 公共事件 〓
===========================================================================================
1,一个公共事件,备注整场塔防的所以敌人队伍信息。
-------------------------------------------------------------------------------------------
2,公共事件内,一条 注释 为一波敌人队伍。并且可备注 等待时间,投放敌人间隔时间,是否随机
   投放敌人(一波有两种及以上类型的敌人) 等。
===========================================================================================
〓 地图 〓
===========================================================================================
1,用于塔防的地图,需要铺设四种 区域ID (出怪点,怪行进路线,怪行进终点,能够放置角色的点)。
-------------------------------------------------------------------------------------------
2,为节省效率,怪的寻路算法比较简单,仅支持 单条 行进路线。若铺设有岔路,怪可能会进入岔道而
   停止行进。
===========================================================================================
〓 脚本 〓
===========================================================================================
1,塔防单位(角色,敌人)都是基于 Sprite_Base 所写,其基础数据为 Game_Actor 或 Game_Enemy 。
-------------------------------------------------------------------------------------------
2,技能 子弹 也是基于 Sprite_Base 所写,内在数据包括 攻击者,技能ID,被攻击者 。
-------------------------------------------------------------------------------------------
3,窗口是基于 Window_Base 所写的 UI图片窗口,以及一些 Sprite 按钮。
-------------------------------------------------------------------------------------------
4,一些游戏对象,地图精灵和场景,进行了一些必要的修改。
   添加了一个专门用于 塔防模式 逻辑操控的游戏实例对象类。
   <本想写操控静态类,但考虑到中途储存,写成实例对象类>
===========================================================================================


以下为预览视频链接:
https://www.bilibili.com/video/av65397789

https://www.bilibili.com/video/av65399059

评分

参与人数 5星屑 +50 +4 收起 理由
微笑的迪妮莎 + 1 膜拜大神~~~
wabcmcc + 1 精品文章
fux2 + 50 精品文章
白嫩白嫩的 + 1 大佬开启新的纪元
百里_飞柳 + 1 精品文章

查看全部评分

xp vx va mv   各类型脚本/插件定制

Lv5.捕梦者

梦石
0
星屑
25017
在线时间
2801 小时
注册时间
2006-11-10
帖子
6014
发表于 2019-8-26 10:54:02 | 显示全部楼层
万事俱备, 只欠有人来移植舟游了

点评

回合和塔防互不干扰的。比如,打最终BOSS,首先塔防模式守住n波boss的卫队,胜利后回合制打boss。  发表于 2019-8-26 18:22
回合制咋做, 怪一回合前进N格, 然后我方一回合攻击一次?  发表于 2019-8-26 17:38
但感觉太难做下去了,不是美工,素材苦手。  发表于 2019-8-26 17:02
我这个还要加传统回合制  发表于 2019-8-26 17:01
舟游也是卡片+塔防 =.=  发表于 2019-8-26 16:54
祥瑞御免 ,家宅平安
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1062
在线时间
1005 小时
注册时间
2011-4-30
帖子
1510
发表于 2019-8-26 11:13:08 | 显示全部楼层
超级强大!!

点评

--  发表于 2019-8-26 16:28
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
341
在线时间
26 小时
注册时间
2010-8-12
帖子
10
发表于 2019-8-26 11:22:34 | 显示全部楼层
拜服!万分期待!

点评

真希望可以發佈出來!  发表于 2020-1-8 21:21
这个是不公开发布的。 但是说不定想高兴了会改成四方向发布出来。  发表于 2019-8-26 16:43
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8061
在线时间
605 小时
注册时间
2011-7-16
帖子
1128

开拓者

发表于 2019-8-26 12:06:39 | 显示全部楼层
这才是真正的塔防啊,哈哈哈,惭愧惭愧

点评

我以前也写了个塔防,然后我写的太垃圾了了,你说惭愧不惭愧,哈哈哈  发表于 2019-8-27 14:48
惭愧?何来惭愧之说?  发表于 2019-8-26 16:42
RMMV网络插件,开源免费,内含服务器端,无需强制登录,云数据,弹幕,云存档,排名,兑换码,版本检测,可自由上架下架删除。q群399090587
免打包运行MV游戏,云游戏,安卓App雷神游戏厅,在线玩游戏,上传下载游戏
开源游戏:重装机兵之重装归来【RMMV制作】全球首款按照美剧分季分集的方式发布的游戏
体素画 -- MV画3D像素图的画板
RMMV显示3D模型和场景的插件
RMMV显示spine骨骼动画的插件
RMMV秘密通道插件
突破敌群数量上限8个的插件
在rmmv中显示gif动态图片的插件
一款可以在mv游戏界面的任意位置显示任意文字的插件
RMMV Toast 插件 带物品得失提示,可以设置开启关闭 兼容yep itemcore
制作一个改名卡道具插件、调整标题页面菜单的插件、在标题页面之前显示大段文字的插件、标题页面显示版本号的插件
物品得失自动提示自动上色自动换行插件
我的Q群 663889472
另外,我的插件、范例、游戏都在这里
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2214
在线时间
1006 小时
注册时间
2011-8-2
帖子
292
发表于 2019-8-26 14:46:02 | 显示全部楼层
不会脚本的表示很难受,做不出想做的东西

点评

保持兴趣,一步步的慢慢学就行了。  发表于 2019-8-26 16:41
为方便新人,建议大家一同换上此签名(当然我没指最下面的宣传……)
RM各版本下载链接
RMXP:http://pan.baidu.com/s/1qWLZjIW
RMVX:http://pan.baidu.com/s/1sjBhM2L
以上链接由妖精蕾贝卡 提供
--------------------------------------------------------------------------------
RMVA:http://pan.baidu.com/s/1jG1mDUY
以上链接由VIPArcher 提供
——————————————————————————
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
17836
在线时间
1898 小时
注册时间
2011-7-8
帖子
2761

开拓者

发表于 2019-8-26 15:15:37 | 显示全部楼层
暑假抽了几天研究了一下想写一个XP上的塔防小游戏,做着就发现控制行进路线有点头疼,于是放弃了……正好拿这个参考一下
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
220
在线时间
28 小时
注册时间
2018-12-23
帖子
18
发表于 2019-8-26 16:23:38 | 显示全部楼层
如果能看塔的血量感觉 会更好

点评

怪不攻击,角色不会少血。看角色血量貌似没有太大的意义。  发表于 2019-8-26 16:40
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14405
在线时间
4077 小时
注册时间
2012-11-19
帖子
4581

开拓者

 楼主| 发表于 2019-8-26 16:39:32 | 显示全部楼层
guoxiaomi 发表于 2019-8-26 15:15
暑假抽了几天研究了一下想写一个XP上的塔防小游戏,做着就发现控制行进路线有点头疼,于是放弃了……正好拿 ...

呃~,  这个是不公布出来的。只是用于自己找人合作或转让授权。
依照本人性格,如果要发布,我不会做成八方向,也不会用UI图片做窗口。
要发布的话就直接在MV区发帖子了,不会在这儿水一贴的。

至于寻路,那个就是非常简单的了。地图上 怪的起点,终点,路线,以及角色可放置区域都是用 区域ID 铺设的。
捕获.PNG

怪走到一格,就只侦测 周围四格,排除走过的坐标,剩下的有 路线区域ID 的坐标,就是下一步行进目标,非常简单。
MV有自带的自寻路,但不敢用,距离稍微远点就很消耗效率,更不用说怪多的情况。
用那种简单的方法,怪再多也不用怕效率消耗太大。包括角色在地图上的放置也是,只需判断坐标的 区域ID ,省略了 地图的
是否通行 判断,也可以节省很多的效率。

至于XP,只有地形标志,虽然通用性强,但灵活性就比较差了。
xp vx va mv   各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
17836
在线时间
1898 小时
注册时间
2011-7-8
帖子
2761

开拓者

发表于 2019-8-26 17:01:42 | 显示全部楼层
本帖最后由 guoxiaomi 于 2019-8-26 17:13 编辑
芯☆淡茹水 发表于 2019-8-26 16:39
呃~,  这个是不公布出来的。只是用于自己找人合作或转让授权。
依照本人性格,如果要发布,我不会做成八 ...


OK,设计思路也是有参考价值的。

我的寻路做法是,让怪物以事件的形式出现,设置路线为“前进一步”循环执行。然后hook掉 checkout_event_trigger ,这个方法会在事件碰到其他的事件时触发,在这个方法里修改怪物事件的移动方向。

XP里事件在移动后会检测自己面前的事件,这个其实是RM的蛋疼功能之一,但是用在塔防里,却还合适。

怪物是穿透的,在直线路径的边缘放一个事件进行判断,怪物发现前面是一个叫做“LEFT”的事件,就会 turn_left,然后回到默认的“前进一步”继续执行,这样就可以让怪物按照一定的路线前进了

点评

空军?!这个俺就完全不知道了。  发表于 2019-8-26 20:08
另一个比较蛋疼的是空军的设定,不过好像现在倾向于不出现那种走笔直路线的空军了?  发表于 2019-8-26 19:31
嗯,有人给我提过这个方案,不撞南墙不回头。但我已经有铺设路线了,用这个更方便。  发表于 2019-8-26 18:19
怪物设置为穿透的所以可以堆叠,这里说的碰撞是怪物与“路径边缘”的事件进行碰撞,从而转向  发表于 2019-8-26 17:16
二个是,怪有快有慢,想达到怪多时的堆砌感,技能也有圆范围爆炸伤害。所以不需要有阻挡的 火车行进 感觉。  发表于 2019-8-26 17:08
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2020-7-7 21:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表