本帖最后由 灯笼菜刀王 于 2019-4-16 14:31 编辑 miantouchi 发表于 2019-4-16 12:45 在Sprite_Battler里, 初始化是这样写的 def initialize(viewport, battler = nil) 这里, battler 这个参数,缺省的时候, 就表示使用默认值(nil) 所以, Sprite_Battler.new(@viewport2) 这个, 是表示调用 Sprite_Battler 的实例, 只给予视口参数, 战斗者是缺省的, 为什么缺省呢, 看下面的 def update 在 update 这里, 才会把主角队伍的角色(game_actors的实例) 赋值给了 前面已经安排好的 @actor_sprites[].battler , 这样写法, 是方便"战斗中换队员"这种系统的实现 -------------------------------- a = 你能理解它是变量对象, f = []; f[0] = 你就无法理解它是变量对象了? 如果无法理解, 那再去复习基础教程, 你这里提的问题 第一个是基础教程:方法的定义, 第二个是基础教程 :数组的单位调用, 先巩固好基础啊骚年 |
本帖最后由 灯笼菜刀王 于 2019-4-16 10:28 编辑 战斗场景的调用可是环环相扣的 首先,进入战斗,切换战斗场景 $scene = Scene_Battle.new 然后, 战斗场景的图像显示全部来自 @spriteset = Spriteset_Battle.new 然后, Spriteset_Battle 分别调用 背景(Sprite.new), 战斗者(Sprite_Battler.new),天气(RPG::Weather.new), 显示的图片(Sprite_Picture.new), 计时器(Sprite_Timer.new) 战斗者就像上面芯大划出来的, 每一个战斗单位都调用一个战斗者实例,然后塞到 @enemy_sprites = [] 和 @actor_sprites = [] 里面 在Sprite_Battler里, 初始化的地方 def initialize(viewport, battler = nil) ,就有战斗者的参数接口, 而这个参数, 就是在 Spriteset_Battle 里, 芯大划线的地方, 赋予了 game_enemy 和 game_actors 的实例(保存到 @battler 这个实变量里) 所以, 它自然可以通过 @battler 来调用game_enemy 和 game_actors 的方法( 它们的老爸 game_battler 的方法当然也可以调用) 细节楼上的大佬们都详细解释了, 咱就不提了XD |
miantouchi 发表于 2019-4-15 23:12 亲测可以得到 $game_actors[id].screen_x,前提当然是你的id不能为0,对应的 Game_Actor 对象存在 |
ctrl+shift+F 全局搜索 |
VA里的话是Spriteset_Battle里用来根据对象模型决定精灵位置的 XP如果有同名类的话也是一样 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-27 10:29
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.