secondsen 发表于 2009-12-6 09:15:35

可以翻页的书^*^,适合菜单类,或者是文字介绍等等

郑重声明:不欢迎任何形式的转载,请自重。如果你的游戏中引用了我的脚本的话请注明作者secondsen,谢谢。

sp = Sprite.new
sp.bitmap = Bitmap.new(544,416)
ary = []
sp.bitmap.clear
sp.z = 100
sp2 = Sprite.new
sp2.bitmap = Bitmap.new("Graphics/System/BOOK.png")
bitmap = Bitmap.new("Graphics/System/BOOK_R.png")
for i in 0...6
a = 123 + 24 * i
b = (50 + 30 * (i ** 1.5))# * 0.5
x = 0
y = b
sp.bitmap.clear
ary.clear
sign = b*b/Math.sqrt(a*a+b*b)
p = -1
loop do
    break if sign > y
    ary.push()
    if p <= 0
      x += 1
    else
      x += 1
      y -= 1
    end
    p = b*b*(x+1)*(x+1) + a*a*(y*y-y) - a*a*b*b
end
p = b*b*(x*x + x) + a*a*(y*y - y) - a*a*b*b
loop do
    break if y < 0
    ary.push()
    if p >= 0
      y -= 1
      p = p - 2*a*a*y - a*a
    else
      y -= 1
      x += 1
      p = p - 2*a*a*y - a*a + 2*b*b*x + 2*b*b
    end
end
ary.reverse!
rect = Rect.new(0,0,1,317)
i = 0
sp.bitmap.blt(ary+243,85-ary,bitmap,rect)
d = 0
p = 0
for j in 1...ary.size
    d = (ary-ary).abs + (ary-ary).abs
    if d == 1
      i += 1
    else
      p += 0.414
      if p > 1
      i += 2
      i = 213 if i == 214
      else
      i += 1
      end
      p -= 1
    end
    rect = Rect.new(i,0,1,317)
    sp.bitmap.blt(ary+243,85-ary,bitmap,rect)
    break if i == 213
    t = 243 + ary
end
if i < 213
    ary.reverse!
    for j in 1...ary.size
      d = (ary-ary).abs + (ary-ary).abs
      if d == 1
      i += 1
      else
      p += 0.414
      if p > 1
          i += 2
          i = 213 if i == 214
      else
          i += 1
      end
      p -= 1
      end
      rect = Rect.new(i,0,1,317)
      sp.bitmap.blt(t-ary+a,85-ary,bitmap,rect)
      break if i == 213
    end
end
for i in 0...5
    Graphics.update
end
end
sp.bitmap.clear
c = bitmap.get_pixel(213,0)
for i in 0...398
sp.bitmap.set_pixel(243,i,c)
end
for i in 0...300
Graphics.update
end
sp2.bitmap.dispose
sp2.dispose
sp.bitmap.dispose
sp.dispose
bitmap.dispose
exit

放到脚本的最上头。。XP,VX均适用。。这个脚本演示的是0~90的翻页,而不是0~180度的
这个没有做成菜单,纯是一个演示,想做成菜单的话,自己动手丰衣足食
下边是所用的素材

secondsen 发表于 2009-12-6 09:19:24

素材在http://www.rpgchina.net/read.php?tid=36609&page=e&我发的第三个帖子里

脚本中,翻书用的是椭圆方程。。。弧长是近似计算出来的。。。没法精确计算OTZ

忘记说了,图片放到Graphic 中的 System文件夹

翻书的声效在http://www.rpgchina.net/read-htm-tid-36637.html有下载的。。我的演示脚本里面没有加入声效,那么自己搞吧。。就是一个.play而已。。。应该都会

secondsen 发表于 2009-12-7 19:03:08

。。。

翻书菜单

图片是保存成索引色的。。。画质不是很好哈本来我就画得很糟糕。。这下更加的糟糕了。。。

这个图片是我自己做的主菜单的翻书演示

franniss 发表于 2009-12-7 19:15:48

效果很好。这个书页弯曲算法看起来也很平滑

secondsen 发表于 2009-12-7 20:06:49

我真的是算了很长时间的 换了几种方案。。。反正我是再想不出来别的了

secondsen 发表于 2009-12-19 16:11:46

我做的菜单截图。。。。

secondsen 发表于 2009-12-21 00:07:16

左上方的框框大小是脚本做的。。。根据物品的明细来生成说明框

大的"重剑"(20号字)下边的那个小的"重剑"(16号字)是说明的文字。。。别理解错了。。。

任务那个。。任务名后面有五角星的表示可交付的任务。。。

孤独宝贝 发表于 2010-1-6 15:51:12

给个范列嘛

secondsen 发表于 2010-1-6 16:39:16

菜单的范例。。没有。。。我还没有做完。。。

只是要翻书的效果的话。。脚本和素材都给出来了,合在一起就可以了。。

secondsen 发表于 2010-1-6 16:40:35

另外要说明一点。。我这个菜单不是为默认系统做的。。。我做完了拿出来给你,也用不了。。。
页: [1] 2
查看完整版本: 可以翻页的书^*^,适合菜单类,或者是文字介绍等等