Project1

标题: 【已解决】如何将b的数组通过变量转化成a的数组 [打印本页]

作者: 金芒芒    时间: 2023-8-10 07:46
标题: 【已解决】如何将b的数组通过变量转化成a的数组
本帖最后由 金芒芒 于 2023-8-10 10:17 编辑

b=([[3],[4],[5],[6],[7]])
$game_variables[18]= b
a=$game_variables[18]
x=544
for i in a
$game_screen.pictures.show("头像#{i}", 0,
x, 550, 100, 100, 255, 0)
x-=87
end

错误提示.png (18.46 KB, 下载次数: 9)

错误提示.png

b数组.png (28.4 KB, 下载次数: 11)

b数组.png

作者: qq634488405    时间: 2023-8-10 08:46
你现在这样直接=赋值会有个问题,通过a,b,$game_variables[18]任意一个改变数组其中某个值,其他2个同样会变化,因为x=某数组相当于把该数组的指针赋值给x,所以a,b,$game_variables[18]指向的都是同一个,要让数组a=数组b,建议这么写a=Marshal::load(Marshal.dump(b))
作者: 金芒芒    时间: 2023-8-10 09:11
本帖最后由 金芒芒 于 2023-8-10 09:51 编辑
qq634488405 发表于 2023-8-10 08:46
你现在这样直接=赋值会有个问题,通过a,b,$game_variables[18]任意一个改变数组其中某个值,其他2个同样会 ...


这个b是不是代表5个数组,结果不成功
b=([[3],[4],[5],[6],[7]])
a=Marshal::load(Marshal.dump(b))
x=544
for i in a
$game_screen.pictures.show("头像#{i}", 0,
x, 550, 100, 100, 255, 0)
x-=87
end

下面这个成功了
b=[2,3,4,5,6]
a=Marshal::load(Marshal.dump(b))
x=544
for i in a
$game_screen.pictures.show("头像#{i}", 0,
x, 550, 100, 100, 255, 0)
x-=87
end

错误提示1.png (18.46 KB, 下载次数: 7)

错误提示1.png

19.png (213.4 KB, 下载次数: 9)

19.png

作者: 金芒芒    时间: 2023-8-11 09:31
qq634488405 发表于 2023-8-10 08:46
你现在这样直接=赋值会有个问题,通过a,b,$game_variables[18]任意一个改变数组其中某个值,其他2个同样会 ...

谢谢大神补贴
b=([[3],[4],[5],[6],[7]])
c=Marshal::load(Marshal.dump(b))
a=c.flatten
#p a #=> [3,4,5,6,7]
x=544
for i in 0...a.length
$game_screen.pictures[i+1].show("头像#{a
}", 0,x, 550, 100, 100, 255, 0)
x-=87
end
作者: soulsaga    时间: 2023-8-11 23:02
这是怎么行得通的..没有写错吗?
作者: 金芒芒    时间: 2023-8-12 07:53
soulsaga 发表于 2023-8-11 23:02
这是怎么行得通的..没有写错吗?


角色偏差了一位0代表1 ,1代表2不过能用 跟士兵ID差1
不过现在敌方是解决enermy_selected_troops =[[[3],[4],[5],[6],[7]] ]
我方team_selected_troops = @selected_units 我就转存不了数字了通过team_selected_troops窗口添加数组
读不出来
b=([[3],[4],[5],[6],[7]])
c=Marshal::load(Marshal.dump(b))
a=c.flatten
#p a #=> [3,4,5,6,7]
x=544
for i in 0...a.length
$game_screen.pictures[i+1].show("头像#{a}", 0,x, 550, 100, 100, 255, 0)
x-=87
end
作者: soulsaga    时间: 2023-8-12 10:45
本帖最后由 soulsaga 于 2023-8-12 10:46 编辑
金芒芒 发表于 2023-8-12 07:53
角色偏差了一位0代表1 ,1代表2不过能用 跟士兵ID差1
不过现在敌方是解决enermy_selected_troops =[[[3], ...


RUBY 代码复制
  1. [i]的部份被论坛吞了..难怪看不见





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1