查看: 1503|回复: 7

[有事请教] 【已解决】如何将b的数组通过变量转化成a的数组

[复制链接]
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
发表于 2023-8-10 07:46:56 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 金芒芒 于 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
b数组.png
梦石
0
星屑
4756
在线时间
389 小时
注册时间
2012-11-8
回帖
235
发表于 2023-8-10 08:46:02 | 显示全部楼层
你现在这样直接=赋值会有个问题,通过a,b,$game_variables[18]任意一个改变数组其中某个值,其他2个同样会变化,因为x=某数组相当于把该数组的指针赋值给x,所以a,b,$game_variables[18]指向的都是同一个,要让数组a=数组b,建议这么写a=Marshal::load(Marshal.dump(b))
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-8-10 09:11:41 | 显示全部楼层
本帖最后由 金芒芒 于 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
19.png

点评

上面那个for i in a,这里的i是个数组  发表于 2023-8-11 08:24
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-8-11 09:31:54 | 显示全部楼层
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
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2023-8-11 23:02:01 | 显示全部楼层
这是怎么行得通的..没有写错吗?
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-8-12 07:53:06 | 显示全部楼层
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
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2023-8-12 10:45:01 | 显示全部楼层
本帖最后由 soulsaga 于 2023-8-12 10:46 编辑
金芒芒 发表于 2023-8-12 07:53
角色偏差了一位0代表1 ,1代表2不过能用 跟士兵ID差1
不过现在敌方是解决enermy_selected_troops =[[[3], ...


[pre lang="ruby"]的部份被论坛吞了..难怪看不见[/pre]
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部