Project1

标题: 我这个脚本写错误了,求修正 [打印本页]

作者: qq295268654    时间: 2010-11-22 19:12
标题: 我这个脚本写错误了,求修正
本帖最后由 qq295268654 于 2010-11-23 12:56 编辑

本来是一个仙剑式TITLE脚本,
  1. #before title
  2. #unless $keybd
  3. #   $keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'
  4. #   $keybd.call 0xA4, 0, 0, 0
  5. #   $keybd.call 13, 0, 0, 0
  6. #   $keybd.call 13, 0, 2, 0
  7. #   $keybd.call 0xA4, 0, 2, 0
  8. # end

  9. Audio.bgm_play("Audio/BGM/御剑江湖" , 100 , 100)

  10. @sp_bk = Sprite.new
  11. @sp_bk.opacity = 255
  12. @mid = Sprite.new
  13. @mid.opacity = 255
  14. @mid1 = Sprite.new
  15. @mid1.opacity = 255
  16. @sp_front = Sprite.new
  17. @sp_front1 = Sprite.new
  18. @sp_front1.x=275
  19. @sp_front1.y=180
  20. @sp_front1.opacity = 0

  21. @sp_bk.bitmap = RPG::Cache.title("title_bk")
  22. @sp_front.bitmap = RPG::Cache.title("title_front")
  23. @sp_front1.bitmap = RPG::Cache.title("title_front1")
  24. @mid.bitmap = RPG::Cache.title("title_mid")
  25. @mid1.bitmap = RPG::Cache.title("title_mid1")

  26. for i in 1..40
  27.   @sp_front1.opacity += 17
  28.   Graphics.update
  29. end

  30. for i in 1..40
  31.   @sp_front1.opacity -= 17
  32.   Graphics.update
  33. end

  34. Audio.se_play("Audio/SE/030-Door07" , 100 , 150)
  35. for i in 1..30
  36.   @mid1.x += 20
  37.   @mid.x -= 20
  38.   Graphics.update
  39. end

  40. @mid.dispose
  41. @sp_front.dispose
  42. @mid1.dispose
  43. @sp_front1.dispose

复制代码
然后我想把这一行@sp_bk.bitmap = RPG::Cache.title("title_bk")
的("title_bk")
变成随机,就改成了
  1. @sp_bk.bitmap =rand(12)
  2.     case @sprite
  3.     when 0 # 随机数为0
  4.       @sprite = Sprite.new
  5.       @sprite.bitmap = RPG::Cache.title("1.bmp") # 不需要路径,直接给文件名
  6.     when 1
  7.       @sprite = Sprite.new
  8.       @sprite.bitmap = RPG::Cache.title("2.bmp")
  9.     when 2
  10.       @sprite = Sprite.new
  11.       @sprite.bitmap = RPG::Cache.title("3.bmp")
  12.     when 3
  13.       @sprite = Sprite.new
  14.       @sprite.bitmap = RPG::Cache.title("4.bmp")
  15.     when 4
  16.       @sprite = Sprite.new
  17.       @sprite.bitmap = RPG::Cache.title("5.bmp")
  18.     when 5
  19.       @sprite = Sprite.new
  20.       @sprite.bitmap = RPG::Cache.title("6.bmp")
  21.     when 6
  22.       @sprite = Sprite.new
  23.       @sprite.bitmap = RPG::Cache.title("7.bmp")
  24.     when 7
  25.       @sprite = Sprite.new
  26.       @sprite.bitmap = RPG::Cache.title("8.bmp")
  27.     when 8
  28.       @sprite = Sprite.new
  29.       @sprite.bitmap = RPG::Cache.title("9.bmp")
  30.     when 9
  31.       @sprite = Sprite.new
  32.       @sprite.bitmap = RPG::Cache.title("10.bmp")
  33.     when 10
  34.       @sprite = Sprite.new
  35.       @sprite.bitmap = RPG::Cache.title("11.bmp")
  36.     when 11
  37.       @sprite = Sprite.new
  38.       @sprite.bitmap = RPG::Cache.title("12.bmp")
  39.     when 12
  40.       @sprite = Sprite.new
  41.       @sprite.bitmap = RPG::Cache.title("13.bmp")
  42.     end
复制代码
可是执行错误,我要把title_bk这张图改为随机选取的1-13张图片,请问要怎么正确书写
作者: 狸猫阿白    时间: 2010-11-22 19:51
本帖最后由 狸猫阿白 于 2010-11-22 20:17 编辑

1、@sp_bk.bitmap 能不能等于随机数我不清楚,就算能,它也和变量 @sprite 没任何关系。定义@sp_bk.bitmap为随机数,却去 case  @sprite,不可能让 @sprite 出现 when 1,when 2,when 3,……when 13的情况。
2、rand(12) 会返回 0 ~11这12个整数中的随机一个,不可能得到12,更不可能得到13。
3、为什么要用BMP这么占空间的格式?

如果要达到你这样的效果,试试把@sp_bk.bitmap = RPG::Cache.title("title_bk")改为:
  1. title_bk = rand(13) + 1
  2. @sp_bk.bitmap = RPG::Cache.title("#{title_bk}"+".bmp")
复制代码

作者: qq295268654    时间: 2010-11-22 21:37
回复 狸猫阿白 的帖子

太感谢你了,这个问题困扰了我两天了




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