Project1
标题: 求合并优化类似的循环写法 [打印本页]
作者: stella 时间: 2013-5-17 09:42
标题: 求合并优化类似的循环写法
本帖最后由 stella 于 2013-5-21 23:19 编辑
以下两段脚本是我写在 scene_map 的 def update 下用于地图ARPG战斗伤害判定的,因为此类脚本太多怕影响速度,想优化一下写法,比如几段类似的脚本合并成一段。求如何合并运算的效率最高且不影响彼此之间的判定
#XXOO如果敌人刀剑伤害判定
for i in 1..5
next if $game_map.events[i+5].character_name == "" or $game_map.events[i+5].character_name == "敌人尸体"
if $game_switches[105+i] == true and $game_switches[20] == false
for j in 11..14
next if $game_map.events[j].character_name == ""
a = $game_map.events[i+5].screen_x
b = $game_map.events[j].screen_x
c = $game_map.events[i+5].screen_y
d = $game_map.events[j].screen_y
if $game_map.events[i+5].direction == 4
if a-b <= 40 and a-b > 0 and (c-d).abs <= 24 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[105+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 78
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 78
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
elsif $game_map.events[i+5].direction == 6
if a-b >= -40 and a-b < 0 and (c-d).abs <= 24 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[105+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 78
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 78
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
end
end
end
end
#XXOO如果敌人刀剑伤害判定
for i in 1..5
next if $game_map.events[i+5].character_name == "" or $game_map.events[i+5].character_name == "敌人尸体"
if $game_switches[105+i] == true and $game_switches[20] == false
for j in 11..14
next if $game_map.events[j].character_name == ""
a = $game_map.events[i+5].screen_x
b = $game_map.events[j].screen_x
c = $game_map.events[i+5].screen_y
d = $game_map.events[j].screen_y
if $game_map.events[i+5].direction == 4
if a-b <= 40 and a-b > 0 and (c-d).abs <= 24 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[105+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 78
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 78
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
elsif $game_map.events[i+5].direction == 6
if a-b >= -40 and a-b < 0 and (c-d).abs <= 24 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[105+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 78
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 78
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
end
end
end
end
#XXOO如果敌人长枪戳刺伤害判定
for i in 1..5
next if $game_map.events[i+5].character_name == "" or $game_map.events[i+5].character_name == "敌人尸体"
if $game_switches[115+i] == true and $game_switches[20] == false
for j in 11..14
next if $game_map.events[j].character_name == ""
a = $game_map.events[i+5].screen_x
b = $game_map.events[j].screen_x
c = $game_map.events[i+5].screen_y
d = $game_map.events[j].screen_y
if $game_map.events[i+5].direction == 4
if a-b <= 72 and a-b > 0 and (c-d).abs <= 16 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[115+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 46
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 46
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
elsif $game_map.events[i+5].direction == 6
if a-b >= -72 and a-b < 0 and (c-d).abs <= 16 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[115+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 46
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 46
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
end
end
end
end
#XXOO如果敌人长枪戳刺伤害判定
for i in 1..5
next if $game_map.events[i+5].character_name == "" or $game_map.events[i+5].character_name == "敌人尸体"
if $game_switches[115+i] == true and $game_switches[20] == false
for j in 11..14
next if $game_map.events[j].character_name == ""
a = $game_map.events[i+5].screen_x
b = $game_map.events[j].screen_x
c = $game_map.events[i+5].screen_y
d = $game_map.events[j].screen_y
if $game_map.events[i+5].direction == 4
if a-b <= 72 and a-b > 0 and (c-d).abs <= 16 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[115+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 46
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 46
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
elsif $game_map.events[i+5].direction == 6
if a-b >= -72 and a-b < 0 and (c-d).abs <= 16 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[115+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 46
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 46
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
end
end
end
end
作者: chd114 时间: 2013-5-17 12:12
老兄···这个已经优化过了···再优化这脚本就废掉了
作者: stella 时间: 2013-5-17 12:42
chd114 发表于 2013-5-17 12:12 
老兄···这个已经优化过了···再优化这脚本就废掉了
这两大段合并到一个 for 循环里会不会快一些呢?
作者: chd114 时间: 2013-5-17 12:49
stella 发表于 2013-5-17 12:42 
这两大段合并到一个 for 循环里会不会快一些呢?
不是一个变量你怎么合···
作者: stella 时间: 2013-5-17 12:58
chd114 发表于 2013-5-17 12:49 
不是一个变量你怎么合···
写成这样可以么? 两段全部并到 for i in 1..5 里面,会有冲突么?
for i in 1..5
next if $game_map.events[i+5].character_name == "" or $game_map.events[i+5].character_name == "敌人尸体"
#XXOO如果敌人刀剑伤害判定
if $game_switches[105+i] == true and $game_switches[20] == false
for j in 11..14
next if $game_map.events[j].character_name == ""
a = $game_map.events[i+5].screen_x
b = $game_map.events[j].screen_x
c = $game_map.events[i+5].screen_y
d = $game_map.events[j].screen_y
if $game_map.events[i+5].direction == 4
if a-b <= 40 and a-b > 0 and (c-d).abs <= 24 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[105+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 78
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 78
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
elsif $game_map.events[i+5].direction == 6
if a-b >= -40 and a-b < 0 and (c-d).abs <= 24 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[105+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 78
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 78
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
end
end
end
#XXOO如果敌人长枪戳刺伤害判定
if $game_switches[115+i] == true and $game_switches[20] == false
for j in 11..14
next if $game_map.events[j].character_name == ""
a = $game_map.events[i+5].screen_x
b = $game_map.events[j].screen_x
c = $game_map.events[i+5].screen_y
d = $game_map.events[j].screen_y
if $game_map.events[i+5].direction == 4
if a-b <= 72 and a-b > 0 and (c-d).abs <= 16 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[115+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 46
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 46
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
elsif $game_map.events[i+5].direction == 6
if a-b >= -72 and a-b < 0 and (c-d).abs <= 16 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[115+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 46
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 46
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
end
end
end
end
for i in 1..5
next if $game_map.events[i+5].character_name == "" or $game_map.events[i+5].character_name == "敌人尸体"
#XXOO如果敌人刀剑伤害判定
if $game_switches[105+i] == true and $game_switches[20] == false
for j in 11..14
next if $game_map.events[j].character_name == ""
a = $game_map.events[i+5].screen_x
b = $game_map.events[j].screen_x
c = $game_map.events[i+5].screen_y
d = $game_map.events[j].screen_y
if $game_map.events[i+5].direction == 4
if a-b <= 40 and a-b > 0 and (c-d).abs <= 24 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[105+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 78
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 78
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
elsif $game_map.events[i+5].direction == 6
if a-b >= -40 and a-b < 0 and (c-d).abs <= 24 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[105+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 78
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 78
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
end
end
end
#XXOO如果敌人长枪戳刺伤害判定
if $game_switches[115+i] == true and $game_switches[20] == false
for j in 11..14
next if $game_map.events[j].character_name == ""
a = $game_map.events[i+5].screen_x
b = $game_map.events[j].screen_x
c = $game_map.events[i+5].screen_y
d = $game_map.events[j].screen_y
if $game_map.events[i+5].direction == 4
if a-b <= 72 and a-b > 0 and (c-d).abs <= 16 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[115+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 46
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 46
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
elsif $game_map.events[i+5].direction == 6
if a-b >= -72 and a-b < 0 and (c-d).abs <= 16 and $game_self_switches[[$game_map.map_id, j, "D"]] == false
$game_switches[115+i] = false
$game_map.events[j].animation_id = 300
$game_map.events[j].move_backward
$game_map.events[j].damage = 46
$game_map.events[j].critical = false
$game_map.events[j].damage_pop = true
#XXOO开始改宠物事件名字并根据事件名的变化判定是否死亡
name = $game_map.events[j].name
pet_sn = j.to_s
data = name.split(/,/)
data[1]=data[1].to_i-$game_map.events[j].damage
$game_variables[j] -= 46
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
if data[1].to_i <= 0
data[1] = 0
$game_map.events[j].name="守卫"+pet_sn+","+data[1].to_s+","+data[2].to_s+","+data[3].to_s+","+data[4].to_s+","+data[5].to_s
$game_self_switches[[$game_map.map_id, j, "D"]] = true
$game_self_switches[[$game_map.map_id, j, "C"]] = false
$game_map.need_refresh = true
$game_map.events[j].refresh
end
end
end
end
end
end
作者: stella 时间: 2013-5-20 08:23
就这么淹没了
作者: 亿万星辰 时间: 2013-5-20 09:03
$game_switches[20] == false
对于20号开关的判断可以再优先一些,在循环外面,应该是先决条件吧?
作者: stella 时间: 2013-5-20 15:12
本帖最后由 stella 于 2013-5-20 15:17 编辑
亿万星辰 发表于 2013-5-20 09:03 
$game_switches[20] == false
对于20号开关的判断可以再优先一些,在循环外面,应该是先决条件吧? ...
那么有必要把好几个 for i in 1..5 如五楼那样合并成一个么?如果类似这样的for循环脚本多达三十几个的话? 如果区别不大的话我就不用纠结这一点了。。
作者: 亿万星辰 时间: 2013-5-20 23:27
stella 发表于 2013-5-20 15:12 
那么有必要把好几个 for i in 1..5 如五楼那样合并成一个么?如果类似这样的for循环脚本多达三十几个的话 ...
尽量还是能借助一个循环,把要搞的事情搞好吧~~
日常工作我涉及到的只是一个纯粹的过程控制,所以数据结构,编程复杂度这方面的知识我是真心都丢了~~
最简单的办法是就是通过下面的方法来看看代码的运行时间
t = Time.now
你的若干代码
……
p Time.now - t
多运行几次,看这个时间,这里可能还涉及到很多其他方面的东西,我的能力也只能解答到这里了。
作者: stella 时间: 2013-5-21 15:16
亿万星辰 发表于 2013-5-20 23:27 
尽量还是能借助一个循环,把要搞的事情搞好吧~~
日常工作我涉及到的只是一个纯粹的过程控制,所以数据结 ...
- t = Time.now
- 你的若干代码
- ……
- p Time.now - t
复制代码 这段代码我放在scene_map 的def update 下,把所有自己添加的for 循环移到里面,测试一下,地图上不断跳出的窗口显示是0.016~0.03之间,那么这样的时间影响就可以忽略不计了?
作者: 亿万星辰 时间: 2013-5-21 21:02
这个我是觉得不要紧啦,关键还是你自己运行游戏看下卡不卡了。
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |