设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: 八云紫
打印 上一主题 下一主题

[RMVX发布] 新手教程--从0开始学RGSS2(2013-09-21 修复索引地址)

  [复制链接]

Lv2.观梦者

神隐的主犯

梦石
0
星屑
258
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

81
 楼主| 发表于 2011-1-9 21:54:18 | 只看该作者
本帖最后由 八云紫 于 2011-1-9 22:02 编辑

回复 一箭烂YiJL 的帖子

Tone 和 color 只能说是类似而不能等同

点评

习惯吧。 至少有人是这么叫的。大不了咱注释一下吧~~  发表于 2011-1-10 17:31
是吗~嗯...  发表于 2011-1-10 17:26
其他人不知道。至少咱是这样的。话说咱很多词语都是相反的  发表于 2011-1-10 17:19
其实平时你们所理解的透明度就是不透明度?  发表于 2011-1-10 17:12
嘛,应该说说语言习惯问题。不透明度,不透明度 什么的,各种违和  发表于 2011-1-10 17:07

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

狂気の月兔

梦石
0
星屑
231
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

82
发表于 2011-1-9 22:03:13 | 只看该作者
本帖最后由 铃仙·优昙华院·因幡 于 2011-1-10 10:23 编辑

Rect 矩形

     好吧, 这个其实很不知道怎么组合的, 就单独写一个吧.
   
     RGSS2(Ruby)矩形的矩形使用一个四元组来表示: ( 矩形左上角的 X 坐标, 矩形左上角的 Y 坐标, 宽度, 高度 ) 来表示.
     我们可以创建这么一个矩形: 左上角坐标为( 10, 10) , 宽 20, 高 30 的矩形:
  1. a = Rect.new(10, 10, 20, 30)
复制代码
这里需要注意一个问题: RGSS2 里的 Rect 每个元素都是整数, 也就是说, 就算是使用小数, 也会被取整. 比如:
  1. a = Rect.new(10.0, 10.0, 20.0, 30.0)
  2. p a
复制代码
至于 Ruby 就不知道了. 不过 Ruby 默认有 Rect 类么???

     

     提高:
     Window 里也有 Rect 结构, 定义是:
  1. typedef struct tagRECT
  2. {
  3.     LONG    left;
  4.     LONG    top;
  5.     LONG    right;
  6.     LONG    bottom;
  7. } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
复制代码
Window 的 Rect 四元组应该是(矩形左上角的 X 坐标, 矩形左上角的 Y 坐标, 矩形右下角的 X 坐标, 矩形右下角的 Y 坐标)

     如果需要在 RGSS2 里的矩形切换到 Window 的矩形的话, 应该这样:
  1. rgss2_rect = Rect.new(0, 0, 10, 10)

  2. window_rect = [rgss2_rect.x, rgss2_rect.y, rgss2_rect.x + rgss2_rect.width, rgss2_rect.y + rgss2_rect.height].pack("l*")
复制代码

点评

不过 Ruby 默认有 Rect 类么 => 沒  发表于 2011-1-9 22:16
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
226 小时
注册时间
2010-9-13
帖子
494
83
发表于 2011-1-10 04:35:57 | 只看该作者
这不就是RPG Maker VX的帮助文档么?

点评

我无语............  发表于 2011-1-10 19:34
咱只是复制粘贴罢了~~  发表于 2011-1-10 10:23
就是 F1 无误  发表于 2011-1-10 10:23
黑暗,总在不知不觉中降临到人们身边。 当人们意识到时,已经有无数人成为了罪恶与欲望的牺牲者。 无助的人们会期待能够拯救他们的英雄出现。 但是,这个世界真的存在英雄? 答案恐怕是否定的。 历史会以惊人的相似 ...
回复 支持 反对

使用道具 举报

Lv3.寻梦者

弓箭手?剑兰

梦石
0
星屑
4834
在线时间
833 小时
注册时间
2010-11-17
帖子
1140
84
发表于 2011-1-10 13:30:09 | 只看该作者
矩形类也可以在bitmap里套一个框,
然后提取里边的图像出来。
此贴只是提供了一个用法,比如:
  1. rect = Rect.new(20, 20, 10, 10)
  2. bitmap = Cache.load_bitmap("路径", "图片名称")
  3. self.contents.blt(272, 156, bitmap, rect)
复制代码

点评

其实是想放到 Bitamp 什么的地方在说说,这样感觉比较乱。以上  发表于 2011-1-10 15:34

评分

参与人数 1星屑 +100 收起 理由
八云紫 + 100 正解

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
258
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

85
 楼主| 发表于 2011-1-10 15:40:50 | 只看该作者
征求一些简单,有代表性一样的小脚本请求,咱是想写一些范例什么的。

请大家帮忙想想的说。意见采纳奖励500分~~~

点评

其实我也想写范例……  发表于 2011-1-11 13:29

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
462 小时
注册时间
2007-7-30
帖子
643
86
发表于 2011-1-10 21:56:28 | 只看该作者
回复 八云紫 的帖子

Bitmap都还没解说@@
做个七彩霓虹灯的特效吧 (用Tone)
RGE这万年大坑 啥时填起来@@

回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
258
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

87
 楼主| 发表于 2011-1-10 21:57:56 | 只看该作者
回复 david50407 的帖子

Bitmap 无从下手的说~~~

点评

好噜~~  发表于 2011-1-10 23:52
那么这个就给 D酱 预留一个位置咯~~  发表于 2011-1-10 22:06
我有空来写个吧...  发表于 2011-1-10 22:05
表示过了2分钟的说~~~  发表于 2011-1-10 22:00
神速= =|  发表于 2011-1-10 21:58

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
462 小时
注册时间
2007-7-30
帖子
643
88
发表于 2011-1-10 23:41:39 | 只看该作者
本帖最后由 david50407 于 2011-1-10 23:52 编辑

Bitmap 位图

  这次换我来给各位解说了 恩。
  位图,简单来说就是图像,在画面上显示位图,必须使用精灵(Sprite 精灵类)之类的对象。
  当然我们的图像是要能够有多种变化的,所以Bitmap类提供了两种生成的方式:
  1. # 由文件载入并生成
  2. b = Bitmap.new(filename)
  3. # 生成新的位图
  4. b2 = Bitmap.new(width, height)
复制代码
喔,对了,生成位图之后是会保留在内存的,如果不需要的话要记得释放唷~
  1. # 释放位图
  2. b.dispose
  3. # 侦测已释放位图与否 当位图已释放则返回 true
  4. b.disposed?
复制代码


  说位图 MS 不大容易明白,把他想成是绘图板吧,所谓绘图板就是画画的地方,一个美好的园地(你扯过头了 喂!)
  做为一个绘图板,就要具备绘图的功能(这不是废话吗?)。在这里,RGSS2 已经准备好了一些绘图的方法了:
1)绘制矩形 fill_rect
  1. # 绘制矩形 将区域 (x, y, width, height) 填满指定颜色 color(Color 色彩类)
  2. b.fill_rect(x, y, width, height, color)
  3. # fill_rect 能吃 rect (Rect 矩形类) 的唷~
  4. b.fill_rect(rect, color)
复制代码
2)绘制渐层矩形 gradient_fill_rect
  1. # 绘制渐层 将区域 (x, y, width, height) 填满从颜色 color1(Color 色彩类)至 color2(Color 色彩类)的渐层色彩
  2. b.gradient_fill_rect(x, y, width, height, color1, color2)
  3. # 能加上 vertical 来设置是否为纵向渐层 (true 为纵向)
  4. b.gradient_fill_rect(x, y, width, height, color1, color2, vertical)
  5. # 当然也吃 rect (Rect 矩形类) 噜~
  6. b.gradient_fill_rect(rect, color1, color2)
  7. b.gradient_fill_rect(rect, color1, color2, vertical)
复制代码
3)绘制文字来了~~ draw_text (此处理需要花费时间,因此不建议每画格重绘一次文字。)
  1. # 绘制文字 在位图区域 (x, y, width, height) 或矩形 rect  (Rect 矩形类) 中描绘字符串 str 。
  2. b.draw_text(x, y, width, height, str)
  3. # 能加上 align (0:靠左对齐,1:居中对齐,2:靠右对齐) 来指定对齐方式
  4. b.draw_text(x, y, width, height, str, align)
  5. # 惯例... 吃 rect (Rect 矩形类)
  6. draw_text(rect, str)
  7. draw_text(rect, str, align)
复制代码
text_size 则能获取绘制文字时所需的矩形大小(不包含斜体倾斜的文字部分)
  1. # text_size 获取绘制文字 str (String 字符串) 所需矩形
  2. rect = b.text_size(str)
  3. # 合起来用就是
  4. b.draw_text(b.text_size(str), str)
  5. # 是不是方便多了呢?
复制代码
4)啊咧 涂错了怎办? clear 和 clear_rect 来帮你解决这个问题
  1. # clear 清除整个位图
  2. b.clear

  3. # clear_rect 清除位图区域 (x, y, width, height) 或矩形rect (Rect 矩形类)
  4. b.clear_rect(x, y, width, height)
  5. b.claer_rect(rect)
复制代码


  接下来是一些进阶应用:
1)绘制像素点 set_pixel
  1. # 绘制像素点 设定指定像素点 (x, y) 的色彩 color(Color 色彩类)。
  2. b.set_pixel(x, y, color)
复制代码
2)有繪製當然有獲取像素點的顏色 get_pixel
  1. # 获取指定像素点 (x, y) 的色彩(Color 色彩类)。
  2. b.get_pixel(x, y)
复制代码
3)不知道各位写报告的时候是不是也像我一样善用"拷贝 黏贴"呢?
  拷贝位图 blt
  1. # 拷贝位图 拷贝位图 src_bitmap 的矩形 src_rect 部分到指定的座标 (x, y)
  2. b.blt(x, y, src_bitmap, src_rect)
  3. # 能指定 opacity 透明度 (范围 0~255)
  4. b.blt(x, y, src_bitmap, src_rect, opacity)
复制代码
变形的拷贝 stretch_blt
  1. # 变形的拷贝 拷贝位图 src_bitmap 的矩形 src_rect 部分到指定的矩形中 dest_rect (可能导致变形)
  2. b.stretch_blt(dest_rect, src_bitmap, src_rect)
  3. b.stretch_blt(dest_rect, src_bitmap, src_rect, opacity)
复制代码
4)模糊 blur
  1. # 模糊 对位图执行模糊效果 此处理需要花费时间
  2. b.blur
复制代码
放射型模糊 radial_blur
  1. # 放射型模糊
  2. # angle 指定 0~360 的角度,角度愈大,效果愈圆润
  3. # division 指定 2~100 的分界数,分界数愈大,效果愈平滑 此处理需要花费大量时间
  4. b.radial_blur(angle, division)
复制代码
5)色相变换 hue_change 此处理需要花费时间,另外色彩转换的误差,反复转换可能会导致色彩损失。
  1. # 色相变换 在 360 度内变换位图的色相。
  2. b.hue_change(hue)
复制代码


  再来又是些基本的东西了...
  1. b.width #获取位图宽度
  2. b.height #获取位图高度
  3. b.rect # 获取位图矩形(Rect 矩形类)
  4. b.font # 指定或取得draw_text方法描绘字符串时所使用的字体。(Font 字型类)。
复制代码
虽然 Bitmap 看起来很复杂,却又是整个游戏中不可或缺的元素之一啊。
但是只要精熟这恼人的东西之后,就天不怕地不怕了唷~
(PS: 刚刚被 DZ 脑残到... 重新写 呜呜呜~~)

评分

参与人数 2星屑 +1610 收起 理由
一箭烂YiJL + 10 不过对于新手会难。
八云紫 + 1600 感觉 D酱 的精彩解说~~~ > <

查看全部评分

RGE这万年大坑 啥时填起来@@

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
25 小时
注册时间
2010-9-11
帖子
39
89
发表于 2011-1-14 23:09:12 | 只看该作者
好人啊!!大好人啊!!!太好了!!!世上真有真情人在!!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3121
在线时间
1534 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

90
发表于 2011-1-15 09:43:57 | 只看该作者
我可以预约么(¬_¬)

点评

非常欢迎的说.最好预约全部吧~~~  发表于 2011-1-15 16:50
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-28 18:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表