Project1

标题: 如何当b=([[3],[4],[5],[6],[7]]) 那么 a=(3,4,5,6,7) [打印本页]

作者: 金芒芒    时间: 2023-8-10 10:19
标题: 如何当b=([[3],[4],[5],[6],[7]]) 那么 a=(3,4,5,6,7)
本帖最后由 金芒芒 于 2023-8-10 10:42 编辑

当b=([[3],[4],[5],[6],[7]])     那么a=(3,4,5,6,7)  
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
作者: zlyl_wiley    时间: 2023-8-10 13:53
虽然看不懂题主在说啥,但是盲猜一波是不是这个:

a = [[1],[2],[3]]
b = a.flatten
p b #=> [1, 2, 3]
作者: 金芒芒    时间: 2023-8-10 14:31
本帖最后由 金芒芒 于 2023-8-10 15:29 编辑
zlyl_wiley 发表于 2023-8-10 13:53
虽然看不懂题主在说啥,但是盲猜一波是不是这个:

a = [[1],[2],[3]]


你猜对了 结果是p出数字来了  就是a数组出不来undefined method show for未定义方法显示
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 a
$game_screen.pictures.show("头像#{i}", 0,x, 550, 100, 100, 255, 0)
x-=87
end
  

p.png (12.87 KB, 下载次数: 10)

p.png

显示.png (11.04 KB, 下载次数: 7)

显示.png

作者: 金芒芒    时间: 2023-8-10 15:33
本帖最后由 金芒芒 于 2023-8-10 15:37 编辑
zlyl_wiley 发表于 2023-8-10 13:53
虽然看不懂题主在说啥,但是盲猜一波是不是这个:

a = [[1],[2],[3]]


a=Marshal::load(Marshal.dump(b[0],b[1],b[2],b[3],b[4]))
要的结果是a=(3,4,5,6,7)
作者: zlyl_wiley    时间: 2023-8-10 16:01
for i in 0...a.length
$game_screen.pictures[i+1].show("头像#{a[i]}", 0,x, 550, 100, 100, 255, 0)
x-=87
end

是不是这样啊,我也不懂哩
作者: 灯笼菜刀王    时间: 2023-8-10 16:06
本帖最后由 灯笼菜刀王 于 2023-8-10 16:16 编辑

有个大聪明渴了, 想找点水喝, 他知道水是H2O, 于是,找来找去找到个CH2O, 想着把C去掉就是水了, 但是呢, 他又搞不定这个工序, 于是到处发帖问: 怎么把甲醛脱碳丫?    人家告诉他, 把甲醛和氢气在密封空间里置换, 然后加压成液体即可,  于是呢, 他鼓搞了半年, 期间搞出各种错误, 但是大聪明凭借一股毅力, 依然到处发帖问:  怎么搞密封空间丫?  怎么给气体加压丫?  ......

不对, 大聪明是这样问的: 阿巴阿巴空间不含氢氦锂铍硼碳氮氧氟氖钠镁铝硅磷硫氯氩钾钙的方式是什么?....   阿巴阿巴亚历山大阿巴阿姨压一压怎么?

但是, 他就是死活不这样问: 我渴了要怎么做?   

5分钟能解决的事, 硬是半年还整出各种错误, 还要各种让人猜你想问什么嘛,  
作者: zlyl_wiley    时间: 2023-8-10 16:40
灯笼菜刀王 发表于 2023-8-10 16:06
有个大聪明渴了, 想找点水喝, 他知道水是H2O, 于是,找来找去找到个CH2O, 想着把C去掉就是水了, 但是呢, 他 ...

哈哈哈哈笑不活了
盲猜楼主年纪不大吧,就是以玩游戏的心态在做游戏
其实挺好的
慢慢来总会成长的
作者: 灯笼菜刀王    时间: 2023-8-10 16:56
本帖最后由 灯笼菜刀王 于 2023-8-10 20:33 编辑

用我十几年和甲方斗智斗勇的经验和半年来断断续续在论坛破译你的问题得到的 我自认为你想要的东西是 根据数组在地图上显示一排头像

现场写给你, 把它塞到main前
  1. class Spr_map_head < RPG::Spriet
  2.   def initialize(ary,x,y,宽=640,间隔=0)
  3.     super()
  4.     self.bitmap = Bitmap.new(640,480)
  5.     self.z = 180
  6.     refresh(ary,x,y,横,间隔)
  7.   end
  8.   def refresh(ary,x,y,宽=640,间隔=0)
  9.     self.bitmap.clear
  10.     a,b = x,y
  11.     for i in ary.flatten
  12.       bit = RPG::Cache.picture("头像#{i}") ;w,h = bit.width,bit.height
  13.       (b += h + 间隔 ; a = x) if a + w + 间隔 >= 宽
  14.       self.bitmap.blt(a,b,bit,Rect.new(0,0,w,h))
  15.       a += w + 间隔
  16.     end
  17.   end
  18. end

  19. class Interpreter
  20.   def 显示头像(ary,x,y,宽=640,间隔=0)
  21.     if @head_spr.nil?
  22.       @head_spr = Spr_map_head.new(ary,x,y,宽,间隔)
  23.     else
  24.       @head_spr.refresh(ary,x,y,宽,间隔)
  25.     end
  26.   end
  27.   def 关闭头像
  28.     return if @head_spr.nil?
  29.     @head_spr.dispose ;@head_spr.bitmap.dispose ; @head_spr = nil
  30.   end
  31. end
复制代码


要调用就事件脚本里写   显示头像(你翻来覆去折腾的数组, x,y, 宽度, 间隔)     x,y是第一个头像显示的位置, 后面的头像会根据这个位置自己从左到右排列过去,  宽度是要显示的总宽度,排列超过设置的宽度会自己换到第二行, 间隔就是头像之间要间隔几像素, 可以负数

要关闭头像就事件脚本里写  关闭头像

要刷新头像就重复调用 显示头像(你翻来覆去折腾的数组, x,y, 宽度, 间隔)  即可
作者: 金芒芒    时间: 2023-8-10 17:14
zlyl_wiley 发表于 2023-8-10 16:40
哈哈哈哈笑不活了
盲猜楼主年纪不大吧,就是以玩游戏的心态在做游戏
其实挺好的

年级比菜刀王大,以前英语不很好,
作者: 金芒芒    时间: 2023-8-10 17:15
灯笼菜刀王 发表于 2023-8-10 16:56
用我十几年和甲方斗智斗勇的经验和半年来断断续续在论坛破译你的问题得到的 我自认为你想要的东西是 根据数 ...

原来大神一直在我后面啊。
作者: soulsaga    时间: 2023-8-10 17:25
金芒芒 发表于 2023-8-10 17:14
年级比菜刀王大,以前英语不很好,

英语?
我比你还差
我以前上英语课就睡觉
作者: zlyl_wiley    时间: 2023-8-10 17:39
金芒芒 发表于 2023-8-10 17:14
年级比菜刀王大,以前英语不很好,

握爪,同英语不好,但不是英语的问题啦
除了大佬提的问题之外,还是建议从基础开始学习,不然真的搞不动RGSS的
像这个数组的处理,即使不知道flatten,既然你会用for循环了,就直接笨办法for一下把大数组里的东西一个个取出来加入到一个新数组里就行了
总之加油吧!
作者: 哇哇哇啊叭叭    时间: 2023-8-10 20:29
本帖最后由 哇哇哇啊叭叭 于 2023-8-11 05:11 编辑


  就这样解决了啊...有点意犹未尽呢。

[line]1[/line]
  我也来玩玩:
RUBY 代码复制
  1. class YouJianShi
  2.  
  3.   def shuru(ip=[[1],[2],[3]])
  4.     a = []
  5.     b = [] ; b = ip
  6.     b.each {|i|
  7.     a.push[i[0]]
  8.     }
  9.     a
  10.   end
  11.  
  12. end


  用的时候,在事件脚本里这样写:
    随机变量 = YouJianShi.new
    $game_variables[1] = 随机变量.shuru([[3],[4],[5]])
  这样就将a变成了一个数组,放入了变量1中。在游戏里直接调用变量1即可。若需要将a变成字符串输出,在后面加一句“$game_variables[2].to_s”就行。因为a=(3,4,5,6,7)  这个看不出来数据类型,只能猜测它大概是个数组。




作者: 金芒芒    时间: 2023-8-11 07:54
zlyl_wiley 发表于 2023-8-10 16:01
for i in 0...a.length
$game_screen.pictures.show("头像#{a}", 0,x, 550, 100, 100, 255, 0)
x-=87

这个方法可以了谢谢
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
作者: 金芒芒    时间: 2023-8-11 07:59
哇哇哇啊叭叭 发表于 2023-8-10 20:29
我也来玩玩:

class YouJianShi

敌人ID是固定的
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

我方是选着性的所以攻击方采用变量,先学习试用一下你的脚本谢谢大佬
作者: 金芒芒    时间: 2023-8-11 08:03
灯笼菜刀王 发表于 2023-8-10 16:56
用我十几年和甲方斗智斗勇的经验和半年来断断续续在论坛破译你的问题得到的 我自认为你想要的东西是 根据数 ...

用一个完整脚本我对他的结构还不是很了解,我一定会花时间弄懂他向你提交毕业结业书的
作者: 金芒芒    时间: 2023-8-15 10:00
本帖最后由 金芒芒 于 2023-8-15 10:02 编辑
灯笼菜刀王 发表于 2023-8-10 16:56
用我十几年和甲方斗智斗勇的经验和半年来断断续续在论坛破译你的问题得到的 我自认为你想要的东西是 根据数 ...


角色不在数据库里,角色是在模型数据里,head=Figter_data::CHARACTER_NAME[@all_fighters [ i ] ]
这是地图上要显示的角色头像 cp = $scene.team_groups[@character.group-1].captain





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