Project1
标题:
谁能帮我把幻影脚本的BUG给破了
[打印本页]
作者:
cymcrh55
时间:
2009-10-1 08:54
提示:
作者被禁止或删除 内容自动屏蔽
作者:
大东
时间:
2009-10-1 10:41
虽然我想帮忙!可我能力有限啊!
作者:
cymcrh55
时间:
2009-10-1 13:33
提示:
作者被禁止或删除 内容自动屏蔽
作者:
huazi922
时间:
2009-10-1 16:48
菜鸟还不懂!等我会了在告诉你 :lol
作者:
神思
时间:
2009-10-1 17:54
这好像是当初我写给彩虹的脚本。也不知你是怎么来的。不过的确是有这个问题。看看什么时候帮你改改。
作者:
神思
时间:
2009-10-1 17:58
有个很纳闷的问题。这的确是我写给彩虹的东西。但是别名变量的名字被改掉了。我靠!。不声明作者。又把变量名改掉!!!
作者:
胖达达人
时间:
2009-10-1 18:00
难怪我想……为什么LZ能想出这种XD的一步一幻影机制,然后还有个没人碰的dir8和一个||=……
原来如此……
(screen_x只捕捉到了display_x修改以后的x,这是根源)
(另外,实时update不浪费资源吗……)
作者:
tommay
时间:
2009-10-1 18:02
alias initialize_naiyoudadangao initialize
想出名者往往作茧自缚
作者:
神思
时间:
2009-10-1 18:06
其实定义一个幻影的结构体。包含实际坐标。然后在updata里从新计算屏幕坐标。
作者:
胖达达人
时间:
2009-10-1 18:10
本帖最后由 胖达达人 于 2009-10-1 18:13 编辑
在initialize的时候,Game_Map已经刷新……所以在screen_x的时候其实display_x已经被修改。又由于移动的时候主角只是在屏幕不变位置,地图在滚动,所以screen_x一再得到不变的值。
今天上午纠结了半个多小时没纠结出来……= =
作者:
cymcrh55
时间:
2009-10-1 18:28
提示:
作者被禁止或删除 内容自动屏蔽
作者:
凌辰
时间:
2009-10-1 18:38
哈哈!那个弗洛多的头像不就是神思的旧头像嘛。
作者:
神思
时间:
2009-10-1 18:51
弗洛多就是在下=_=!
作者:
凌辰
时间:
2009-10-1 18:53
连邮箱的填写方式都相同,而且下面就有神思的回复。
用膝盖都猜得出是小号吧~
作者:
cymcrh55
时间:
2009-10-1 19:00
提示:
作者被禁止或删除 内容自动屏蔽
作者:
神思
时间:
2009-10-1 19:45
问个问题。这脚本你是从哪来的?
作者:
b87733263
时间:
2009-10-1 21:10
提示:
作者被禁止或删除 内容自动屏蔽
作者:
神思
时间:
2009-10-1 22:59
-_________-一时激动。。。望见谅。
class Game_Player < Game_Character
def mirage(opacity)
$scene.spriteset.mirage(self, opacity)
end
alias update_naiyoudadangao update
def update
update_naiyoudadangao
if Input.dir8 != 0
mirage(120)
end
end
end
class Sprite_MirageCharacter < RPG::Sprite
attr_accessor :character
def initialize(viewport, opacity, character = nil)
super(viewport)
@character = character
self.opacity = opacity
update
end
def update
super
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_hue = @character.character_hue
if @tile_id >= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
@cw = bitmap.width / 4
@ch = bitmap.height / 4
self.ox = @cw / 2
self.oy = @ch
self.x = @character.screen_x
self.y = @character.screen_y
end
end
self.visible = (not @character.transparent)
if @tile_id == 0 and !@t
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
self.src_rect.set(sx, sy, @cw, @ch)
@t = true
end
self.z = @character.screen_z(@ch)
self.color.set(0,0,170,120)
self.opacity -= 5
self.blend_type = 1
self.bush_depth = @character.bush_depth
if @character.animation_id != 0
animation = $data_animations[@character.animation_id]
animation(animation, true)
@character.animation_id = 0
end
end
end
class Spriteset_Map
alias initialize_naiyoudadangao initialize
def initialize
@mirage = {}
initialize_naiyoudadangao
end
def mirage(obj, opacity)
@mirage[obj] ||= []
smc = Sprite_MirageCharacter.new(@viewport1, opacity, obj)
@mirage[obj] << Mirage.new(obj.real_x, obj.real_y, smc)#(Sprite_MirageCharacter.new(@viewport1, opacity, obj))
end
alias update_naiyoudadangao update
def update
update_naiyoudadangao
for value in @mirage.values
for v in value
v.smc.x = (v.x - $game_map.display_x + 3) / 4 + 16
v.smc.y = (v.y - $game_map.display_y + 3) / 4 + 32
v.smc.update
if v.smc.opacity <= 0
v.smc.dispose
value.delete(v)
end
end
end
end
end
class Scene_Map
attr_reader :spriteset
end
Mirage = Struct.new(:x, :y, :smc)
复制代码
作者:
enter9009
时间:
2009-10-1 23:02
.......老早以前就想体验这个脚本了,但能力有限,突破不了!
现在发现神思出现了,快快填坑吧!!
作者:
神思
时间:
2009-10-1 23:06
已修复大地图的问题 = =|||||||||
作者:
cymcrh55
时间:
2009-10-2 08:05
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1