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

Project1

 找回密码
 注册会员
搜索
查看: 646|回复: 2
打印 上一主题 下一主题

[有事请教] 获得&更新玩家Sprite的API

[复制链接]

Lv1.梦旅人

梦石
0
星屑
193
在线时间
24 小时
注册时间
2023-9-2
帖子
24
跳转到指定楼层
1
发表于 2023-9-10 13:11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
hi, 各位RM开发者

        小弟正在写一个功能——玩家吃巧克力,体重上升,角色变胖

        目前的实现是通过下面代码完成的:

       
JAVASCRIPT 代码复制
  1. function playerGetWeightProcess(){
  2.  
  3.     var sprites = SceneManager._scene._spriteset._characterSprites;
  4.  
  5.     // 寻找玩家角色的精灵
  6.     var playerSprite = sprites.find(function(sprite) {
  7.         return sprite._character === $gamePlayer;
  8.     });
  9.  
  10.     if($gameActors._data[1].luk >= 100){
  11.         $gamePlayer.setMoveSpeed(2);
  12.         playerSprite.scale._x = 3
  13.         playerWeightLevel = 3;
  14.  
  15.     }else if($gameActors._data[1].luk >= 80){
  16.         $gamePlayer.setMoveSpeed(3);
  17.         playerSprite.scale._x = 2
  18.         playerWeightLevel = 2;
  19.  
  20.     }else if($gameActors._data[1].luk >= 60){
  21.         $gamePlayer.setMoveSpeed(4);
  22.         playerSprite.scale._x = 1
  23.         playerWeightLevel = 1;
  24.  
  25.     }
  26.  
  27. }


        我有2个问题:

        - 如何高效的获取$gamePlayer的sprite?我目前的实现方式是遍历了全地图,感觉很浪费
        - 如何手动更新变化后的sprite?目前这段代码的效果是,玩家必须移动1格,才会变胖

Lv4.逐梦者

梦石
0
星屑
5420
在线时间
1228 小时
注册时间
2016-12-6
帖子
389
2
发表于 2023-9-10 14:52:30 | 只看该作者
var actor = $gameActors.actor(1);
actor.setCharacterImage(actor.characterName(), actor.characterIndex() + 2);
这个可以检索对应ID1的actor的sprite索引并进行改变,但我测试需要变更map才能发生改变(虽然$gameActors.actor(1)._characterIndex会立即改变)
我不懂代码,你可以试试看有没有优化空间
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
14134
在线时间
5197 小时
注册时间
2017-2-18
帖子
390
3
发表于 2023-9-10 18:00:45 | 只看该作者
我不懂js,不过对于va来说,
一般是对玩家精灵引用的玩家类数值进行修改。
然后精灵内写更新进行自适应。
化而为鸟,其名为鸽。怒而咕,咕咕咕咕——咕咕咕!
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 03:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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