谢拉的世界

 找回密码
 点这是注册!别说你看不到!
搜索
热搜: OZ OZNS R18 OZH
查看: 2313|回复: 7

[口胡] 玩完拉姐试作之后的一点小建议

[复制链接]

22

主题

65

帖子

1030

积分

近卫队长

Rank: 6Rank: 6

UID
37568
功勋
1 功勋
现金
1137 Ziny
猫币
9 Cat

宠物蛋 Lv:0

发表于 2018-1-20 15:13:58 | 显示全部楼层 |阅读模式

卧曹?你不能注册个号再看啊?

您需要 登录 才可以下载或查看,没有帐号?点这是注册!别说你看不到!

x
本帖最后由 ww1024738148 于 2018-1-20 15:45 编辑

首先非常开心拉姐恢复健康,振作精神了。
玩完MV的试作之后有一些想法:
对话框界面很不错。
5.png
但也有一些不足:
1.拉姐可以试一下八方向移动插件,移动起来很顺畅,很爽的,rpg.blue网站现在应该还有国内人制作的这个插件。这是我找到的一个能用的八方向移动插件:(来源:https://rpg.blue/forum.php?mod=v ... B%E5%A4%9A%E5%B8%A7)拉姐可以试一下效果,保存为文本,后缀改为js即可用,不过商业的话估计要买或者找人定制。
以下为插件代码:
  1. //encoding:utf-8
  2. //=============================================================================
  3. // VIPArcher_Character_Animations.js edited by doranikofu
  4. //=============================================================================
  5. /*:
  6. * @plugindesc 行走图动画扩展,八方向|奔跑|待机|多帧
  7. * @author VIPArcher
  8. *
  9. * @param Dir8_Flag
  10. * @desc 素材使用该脚本的标志
  11. * @default %
  12. *
  13. * @param Frames_Flag
  14. * @desc 设置帧数的标志
  15. * @default #
  16. *
  17. * @param Stand_Wait
  18. * @desc 站立等待时长(帧)
  19. * @default 5
  20. *
  21. * @param Idle_Wait
  22. * @desc 待机动画开始等待时长(帧) 从站立等待之后开始计算
  23. * @default 120
  24. *
  25. * @help 使用该脚本的行走图素材文件名前面添加一个标志:默认为 %
  26. * 文件名的名为规范(默认设置)如下:
  27. * %VIPArcher.png , 素材为2*4的标志素材
  28. * 第一行:第一个格子是四方向,第二个格子是四方向奔跑,第三个是四方向待机;//doranikofu edit 顺序改成:待机-行走-奔跑
  29. * 第二行:第一个格子是八方向,第二个格子是八方向奔跑,第三个是八方向待机;
  30. *
  31. * 使用多帧则名为(默认设置): 文件名#帧数,默认帧.png
  32. * 例如 %VIPArcher#6,3.png
  33. */
  34. (function() {
  35.     var parameters = PluginManager.parameters('VIPArcher_Character_Animations');
  36.     var dir8_flag  = String(parameters['Dir8_Flag']   || '%');
  37.     var frame_flag = String(parameters['Frames_Flag'] || '#');
  38.     var stand_wait = String(parameters['Stand_Wait']  || '5');
  39.     var idle_wait = String(parameters['Idle_Wait']  || '120');
  40.     ImageManager.isDir8Character = function(filename) {
  41.         var reg = new RegExp("^\[\\!\\$\" + dir8_flag + ']+');
  42.         var sign = filename.match(reg);
  43.         return sign && sign[0].contains(dir8_flag);
  44.     };
  45.     var _Game_CharacterBaseinitMembers = Game_CharacterBase.prototype.initMembers;
  46.     Game_CharacterBase.prototype.initMembers = function() {
  47.         _Game_CharacterBaseinitMembers.call(this);
  48.         this._standWait = 0;
  49.                 this._stepstop = false;        //doranikofu stop cylcing idle anime flag
  50.        //doranikofu                this._isStand = false;
  51.                 this._isStand = true;
  52.         this._isDir8Character = false;
  53.     };
  54.     var _Game_CharacterBasesetImage = Game_CharacterBase.prototype.setImage;
  55.     Game_CharacterBase.prototype.setImage = function(characterName, characterIndex) {
  56.         _Game_CharacterBasesetImage.call(this, characterName, characterIndex);
  57.         this.getCharacterMaxFrame(characterName);
  58.         if (ImageManager.isDir8Character(characterName)) {
  59.             this._characterIndex  = 0;
  60.             this._isDir8Character = true;
  61.         };
  62.     };
  63.     var _Game_CharacterBaseupdate = Game_CharacterBase.prototype.update;
  64.     Game_CharacterBase.prototype.update = function() {
  65.         _Game_CharacterBaseupdate.call(this);
  66.         if (this.isMoving()) {
  67.             this._standWait = 0;
  68.             this._isStand = false;
  69.             if (this._isDir8Character) { this._stepAnime = false };
  70.         } else {
  71.             this._standWait += 1;
  72.                         if (this._standWait == parseInt(stand_wait)) {                //doranikofu
  73.                 this._isStand = true;                                                        //
  74.                                 this._pattern = 0;                                                                //reset to default frame after switching to idle to avoid big pose jumps
  75.                                 this._stepstop = false;                                                        // reset flag
  76.                         };                                                                                                        //
  77.                 if (this._standWait > parseInt(stand_wait)) {
  78.                             if ((this._isDir8Character) && (this._standWait > (parseInt(stand_wait) + parseInt(idle_wait)))) {        //doranikofu add idle wait
  79.                                                 this._stepAnime = true;
  80.                                                 if (this._pattern == this._maxFrame - 1) this._stepstop = true;
  81.                                                 if (this._stepstop) this._pattern = this._maxFrame - 1;
  82.                                                 };
  83.             };
  84.         };
  85.     };
  86.     var _Game_CharacterBasemoveDiagonally = Game_CharacterBase.prototype.moveDiagonally;
  87.     Game_CharacterBase.prototype.moveDiagonally = function(horz, vert) {
  88.         _Game_CharacterBasemoveDiagonally.call(this, horz, vert);
  89.         if (horz > 5) {
  90.             vert > 5 ? this.setDirection(9) : this.setDirection(7);
  91.         } else {
  92.             vert > 5 ? this.setDirection(3) : this.setDirection(1);
  93.         };
  94.     };
  95.     Game_CharacterBase.prototype.getCharacterMaxFrame = function(characterName) {
  96.         var framedate = characterName.match(new RegExp(frame_flag + "(\\d+),(\\d+)"));
  97.         if (framedate) {
  98.             this._maxFrame = parseInt(framedate[1]);
  99.             this._formerPattern = parseInt(framedate[2]);
  100.         } else{
  101.             this._maxFrame = 3;
  102.             this._formerPattern = 1;
  103.         };
  104.     };
  105.     Game_CharacterBase.prototype.pattern = function() {
  106.         return this._pattern < this.maxFrame() ? this._pattern : 1;
  107.     };
  108.     Game_CharacterBase.prototype.maxFrame = function() {
  109.         return this._maxFrame;
  110.     };
  111.     Game_CharacterBase.prototype.maxPattern = function() {
  112.         if (this._maxFrame === 3) {
  113.             return 4;
  114.         } else {
  115.             return this._maxFrame;
  116.         };
  117.     };
  118.     Game_CharacterBase.prototype.isOriginalPattern = function() {
  119.         return this.pattern() === this._formerPattern;
  120.     };
  121.     Game_CharacterBase.prototype.resetPattern = function() {
  122.         this.setPattern(this._formerPattern);
  123.     };
  124.     Game_CharacterBase.prototype.isFast = function() {
  125.         return this._standWait < 2 && (this.isDashing() || this._moveSpeed > 4);
  126.     };
  127.     Game_CharacterBase.prototype.isStand = function() {
  128.         return this._isStand;
  129.     };
  130.     Game_CharacterBase.prototype.setCharacterIndex = function(index) {
  131.         this._characterIndex = index;
  132.     };
  133.     Game_Player.prototype.moveByInput = function() {
  134.         if (!this.isMoving() && this.canMove()) {
  135.             var direction = Input.dir8;
  136.             if (direction > 0) {
  137.                 $gameTemp.clearDestination();
  138.             } else if ($gameTemp.isDestinationValid()){
  139.                 var x = $gameTemp.destinationX();
  140.                 var y = $gameTemp.destinationY();
  141.                 direction = this.findDirectionTo(x, y);
  142.             }
  143.             if (direction > 0) {
  144.                 if (direction % 2 == 0){
  145.                     this.moveStraight(direction);
  146.                     return;
  147.                 }
  148.                 if (direction < 5){
  149.                     this.moveDiagonally(direction + 3 , 2);
  150.                 } else {
  151.                     this.moveDiagonally(direction - 3 , 8);
  152.                 }
  153.             }
  154.         }
  155.     };
  156.     var _Game_PlayermoveDiagonally = Game_Player.prototype.moveDiagonally;
  157.     Game_Player.prototype.moveDiagonally = function(horz, vert) {
  158.         if (!this.canPass(this._x, this._y, horz) && !this.canPass(this._x, this._y, vert)){
  159.             this.setMovementSuccess(false);
  160.             return;
  161.         }
  162.         if (this.canPass(this._x, this._y, horz) && !this.canPass(this._x, this._y, vert)){
  163.             this.moveStraight(horz);
  164.             return;
  165.         }
  166.         if (this.canPass(this._x, this._y, vert) && !this.canPass(this._x, this._y, horz)){
  167.             this.moveStraight(vert);
  168.             return;
  169.         }
  170.         if (!this.canPassDiagonally(this._x, this._y, horz, vert)) {
  171.             if (Math.random() > 0.5){
  172.                 this.setDirection(vert); this.moveStraight(vert);
  173.             } else {
  174.                 this.setDirection(horz); this.moveStraight(horz);
  175.             }
  176.             return;
  177.         }
  178.         _Game_PlayermoveDiagonally.call(this, horz, vert);
  179.     };
  180.     Sprite_Character.prototype.characterPatternY = function() {
  181.         if (this._character.direction() % 2 == 0){
  182.             if (this._character._isDir8Character){
  183.                 this._character.setCharacterIndex(this._character.isFast() ? 2 : this._character.isStand() ? 0 : 1);        //doranikofu changed index
  184.             };
  185.             return (this._character.direction() - 2) / 2;
  186.         } else {
  187.             if (this._character._isDir8Character){
  188.                 this._character.setCharacterIndex(this._character.isFast() ? 6 : this._character.isStand() ? 4 : 5);        //doranikofu changed index
  189.             };
  190.             return parseInt((this._character.direction() + 1) / 3);
  191.         }
  192.     };
  193.     Sprite_Character.prototype.patternWidth = function() {
  194.         if (this._tileId > 0) {
  195.             return $gameMap.tileWidth();
  196.         } else if (this._isBigCharacter) {
  197.             return this.bitmap.width / this._character.maxFrame();
  198.         } else {
  199.             return this.bitmap.width / (this._character.maxFrame() * 4);
  200.         }
  201.     };
  202.     Sprite_Character.prototype.characterBlockX = function() {
  203.         if (this._isBigCharacter) {
  204.             return 0;
  205.         } else {
  206.             var index = this._character.characterIndex();
  207.             return (index % 4) * this._character.maxFrame();
  208.         }
  209.     };
  210. })();
复制代码

2.游戏性方面的插件可以试一下YEP的插件:http://yanfly.moe/yep/changelog/战斗UI、菜单UI可以试一下Moghunter的插件:https://atelierrgss.wordpress.com

这两个网站的插件都是可以免费用于商业游戏的。
这两个网站的插件都是可以免费用于商业游戏的。
详细可以看一下2个网站的使用声明。

以下为Moghunter插件的战斗UI范例:
Preview.jpg Preview.jpg Preview.jpg Preview.jpg Preview.jpg Preview.jpg Preview.jpg Preview.jpg Preview.jpg Preview.jpg Preview.jpg Preview.jpg
以下为战斗结果UI范例:
rm_res01.jpg rm_res02.jpg
菜单UI范例:
3.png 4.png
Moghunter还有一些其他的UI插件也很不错,这是Moghunter大部分插件的综合范例下载(可运行):
https://atelierrgss.wordpress.com/download-page-mv-01/
希望这些对拉姐熟悉MV有些许帮助,拉姐加油啊!




474

主题

5478

帖子

11万

积分

女 王

The · World

Rank: 20Rank: 20Rank: 20Rank: 20

UID
1
功勋
1195 功勋
现金
45477 Ziny
猫币
4117 Cat

女王勋章尊享版-阿尔德拉女王尊享版-真祖SNOW典藏版-白金之星 小冉RPG Maker

QQ

牛妹 Lv:52

发表于 2018-1-20 16:29:56 | 显示全部楼层
1个礼拜临时做的东西,哪来那么多系统往里塞

13

主题

129

帖子

1975

积分

近卫队长

Rank: 6Rank: 6

UID
2975
功勋
1 功勋
现金
1951 Ziny
猫币
3 Cat

小约克 Lv:6

发表于 2018-1-20 16:39:33 | 显示全部楼层
看起来都很棒啊,怎么找到的?

654

主题

1万

帖子

22万

积分

喵星人

Rank: 12Rank: 12

UID
4027
功勋
214 功勋
现金
3136 Ziny
猫币
13 Cat

神社的会员尊享版-阿尔德拉女王尊享版-真祖SNOW典藏版-白金之星 小冉普通版-尼姗RPG Maker

发表于 2018-1-20 16:58:25 | 显示全部楼层
论ui界面的重要性

呐,你知道吗?樱花下落的速度是秒速五厘米。是克里门特·沃洛什洛夫-2重型坦克的152.4毫米M-10T榴弹炮发射PB-35APCBC被帽风帽穿甲弹时炮口初速的八千七百二十分之一,是发射 OF-530HE榴弹时炮口初速的一万零六千分之一哦~

139

主题

1584

帖子

2万

积分

蛆 虫

Rank: 10Rank: 10

UID
4476
功勋
1 功勋
现金
2946 Ziny
猫币
10 Cat

神社的会员

QQ

蛇纹熊 Lv:5

发表于 2018-1-20 20:40:24 | 显示全部楼层
专业

2

主题

171

帖子

2580

积分

近卫队长

Rank: 6Rank: 6

UID
10097
功勋
1 功勋
现金
1403 Ziny
猫币
1 Cat

发表于 2018-1-22 00:42:00 | 显示全部楼层
口怕

9

主题

198

帖子

2985

积分

近卫队长

Rank: 6Rank: 6

UID
24008
功勋
1 功勋
现金
3496 Ziny
猫币
1 Cat

发表于 2018-1-22 17:34:53 | 显示全部楼层
大佬之间的交流我们只有瑟瑟发抖的份

7

主题

20

帖子

375

积分

剩骑士

Rank: 3

UID
29914
功勋
2 功勋
现金
466 Ziny
猫币
11 Cat

发表于 2018-2-6 14:21:28 | 显示全部楼层
谢拉卡姗娜 发表于 2018-1-20 16:29
1个礼拜临时做的东西,哪来那么多系统往里塞

咱先对插件建议一下。。如果yep系列插件不能满足您做游戏需求的话。。那就干脆都别用。yep系列插件兼容性是绝望型的强大。
http://rmproject.lofter.com/ 这是一个合集网站,各种规约素材插件有链接。
https://github.com/triacontane/ 这家插件也好多。。。
最后吐槽一下。。OZ系列移动速度,我好绝望。。。。

本版积分规则

小黑屋|手机版|Archiver|谢拉的世界

GMT+8, 2024-5-24 07:41 , Processed in 0.062180 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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