Project1

标题: 怎样用脚本绘制图形? [打印本页]

作者: xcqxhb2011    时间: 2011-8-27 10:51
标题: 怎样用脚本绘制图形?
怎样在地图界面或菜单界面用脚本绘制以下图形?
1.红色填充,长64宽32,在左上角的矩形。
2.白色填充,黑色边框,长64宽32,居中的矩形。
3.无填充,白色边框,长128,宽16,居中的矩形。
最好详细一点啊!dsu_plus_rewardpost_czw
作者: fux2    时间: 2011-8-27 10:56
1,需要一个bitmap做画板,Sprite做容器,范例
  1. fux = Sprite.new
  2. fux.bitmap = Bitmap.new(64,32)
  3. fux.bitmap.fill_rect(0,0,64,32,Color.new(255,0,0,255))
复制代码
2,黑色边框需要画两次
  1. fux = Sprite.new
  2. fux.bitmap = Bitmap.new(64,32)
  3. fux.bitmap.fill_rect(0,0,64,32,Color.new(0,0,0,255))
  4. fux.bitmap.fill_rect(1,1,62,30,Color.new(255,255,255,255))
复制代码
3,同上
作者: xcqxhb2011    时间: 2011-8-27 11:01
fux2 发表于 2011-8-27 10:56
1,需要一个bitmap做画板,Sprite做容器,范例2,黑色边框需要画两次3,同上

顺便问一下:我看了F1里的Plane,请问它能用来干什么?也能绘制吗?
作者: 「旅」    时间: 2011-8-27 11:04
本帖最后由 「旅」 于 2011-8-27 11:05 编辑
xcqxhb2011 发表于 2011-8-27 11:01
顺便问一下:我看了F1里的Plane,请问它能用来干什么?也能绘制吗?


plane就是把一个图片铺得整个画面都是~你可以试试——
  1. devil = Plane.new
  2. devil.bitmap = Bitmap.new("Graphics/Battlers/075-Devil01")

  3. loop do
  4.   Graphics.update
  5. end
复制代码
(勤于动手才是好孩子~)

要注意一下的是,plane没有x和y,想要移动它,只可以用ox和oy移动~
作者: fux2    时间: 2011-8-27 11:05
xcqxhb2011 发表于 2011-8-27 11:01
顺便问一下:我看了F1里的Plane,请问它能用来干什么?也能绘制吗?

这是用来表示循环图形的内部类,他由内部方法显示.Plane#bitmap方法可以获得图形位图
默认系统中的雾图形和远景图都是用这个产生的.
作者: xcqxhb2011    时间: 2011-8-27 11:12
「旅」 发表于 2011-8-27 11:04
plane就是把一个图片铺得整个画面都是~你可以试试——(勤于动手才是好孩子~)

要注意一下的是,plane没 ...

之前我照F1乱写了一个代码,想在x0,y0,w64,h32的位置、大小画框,为什么没用呢?
  1. va = Viewport.new(0,0,64,32)
  2. vb = Plane.new(va)
  3. vb.color = Color.new(255,255,255)
复制代码
(其实我自己都不知我写的是什么……
作者: fux2    时间: 2011-8-27 11:14
xcqxhb2011 发表于 2011-8-27 11:12
之前我照F1乱写了一个代码,想在x0,y0,w64,h32的位置、大小画框,为什么没用呢?(其实我自己都不知我 ...

如果不会画到屏幕外面就不用指定视窗了(Viewport)
  1. fux = Sprite.new
  2. fux.bitmap = Bitmap.new(64,32)
  3. fux.bitmap.fill_rect(0,0,64,32,Color.new(255,0,0,255))
  4. fux.x,fux.y = 100,100
复制代码

作者: xcqxhb2011    时间: 2011-8-27 11:21
fux2 发表于 2011-8-27 10:56
1,需要一个bitmap做画板,Sprite做容器,范例2,黑色边框需要画两次3,同上

那么,如果要在菜单界面显示,这些代码要放在哪儿呢?
作者: fux2    时间: 2011-8-27 11:25
xcqxhb2011 发表于 2011-8-27 11:21
那么,如果要在菜单界面显示,这些代码要放在哪儿呢?

如果图形不超出任何一个局域窗口(window_command,window_menustate),可以直接在
该window类得contents内描绘,contents属性也是一个bitmap类.
  1. self.contents.fill_rect(100,100,0,64,32,Color.new(255,0,0,255))#坐标注意调整
复制代码
如果超出窗口,就新建Sprite类随窗口出现和释放吧.
作者: xcqxhb2011    时间: 2011-8-28 10:30
因本人要上学,将在9月2日或9月3日回复!
作者: 时光机    时间: 2011-8-28 16:58
xcqxhb2011 发表于 2011-8-27 11:01
顺便问一下:我看了F1里的Plane,请问它能用来干什么?也能绘制吗?

通俗的讲是远景
作者: xcqxhb2011    时间: 2011-9-2 18:41
本帖最后由 xcqxhb2011 于 2011-9-3 14:24 编辑

我回来啦!


xcqxhb2011于2011-9-2 19:07补充以下内容:
我在Window_MenuStatus里的初始化目标里加入了代码:

  1.   #--------------------------------------------------------------------------
  2.   # ● 初始化目标
  3.   #--------------------------------------------------------------------------
  4.   def initialize
  5.     super(0, 0, 480, 480)
  6.     self.contents = Bitmap.new(width - 32, height - 32)
  7.     refresh
  8.     self.active = false
  9.     self.index = -1
  10.     fux = Sprite.new
  11.     fux.bitmap = Bitmap.new(64,32)
  12.     fux.z = 999
  13.     fux.bitmap.fill_rect(0,0,64,32,Color.new(255,0,0,255))
  14.   end
复制代码
的确显示了一个红框,可是在修改了x,y之后就不显示了,怎么回事?���


xcqxhb2011于2011-9-3 14:22补充以下内容:
好吧……我说实话……
我只是想自己试着画血条,可问了半天,却不知道怎样将血条画在菜单状态栏上……
要怎样画上去啊??



xcqxhb2011于2011-9-3 21:52补充以下内容:
没人回答吗!!




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