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

Project1

 找回密码
 注册会员
搜索
查看: 2325|回复: 1
打印 上一主题 下一主题

[原创发布] [挖坑]从简单的图片显示到复杂的战斗系统

 关闭 [复制链接]

Lv3.寻梦者

酱油的

梦石
0
星屑
970
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

跳转到指定楼层
1
发表于 2011-8-11 07:54:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 禾西 于 2011-10-27 14:50 编辑

不定期更新。
可能会坑爹,但是我尽量不坑。
这篇研究将会假定你已经了解RGSS/Ruby语法,如果不了解,请去看看F1的脚本入门再来。
如果没有问题的话,那么就开始了。

< 第一节 >
从根本来说,RGSS系统的主体应该这样的:
  1. # Code 1.1
  2. def update
  3.   Graphics.update
  4. end
  5. loop do
  6.   update
  7. end
复制代码
它由两个部分组成:
一个刷新画面的方法
一个不断调用方法的循环
它的逻辑很简单,我们甚至可以用两句话来概括:
        刷新画面、刷新画面。
没错,Graphics.update这个方法就是用来刷新画面的。

好了,现在你应该想要进一步丰富你的游戏内容,而不是无聊至极地一直刷新画面,而事实上
这个黑黝黝的画面也没有甚么好刷新的。

可是如果不进行刷新画面的话,程序唰一下就结束了。
[另外,如果10秒不刷新画面的话,RMXP会抛出一个错误并强行结束程序。RMVX则保持黑屏。]

那么,先让我们来了解两个东西。他们一个叫 Sprite,一个叫 Bitmap。我们翻译为精灵和位
图,但是他们实际上更像是画框和画纸。

现在,先选择一张你喜欢的图片吧。记住,RM 只支持 jpg、bmp、png 这三种格式的图片。

然后,我们要把他在 RM 的窗口中显示出来。

具体的步骤有三个,分别是
        1.加载bitmap
        2.生成sprite
        3.把 bitmap 塞到 sprite 里面去

这是一个简单的例子:
  1. # Code 1.2
  2. bmp = Bitmap.new("Sprite.jpg") #1
  3. spr = Sprite.new               #2
  4. spr.bitmap = bmp               #3

  5. def update
  6.   Graphics.update
  7. end
  8. loop do
  9.   update
  10. end
复制代码
你可以看到图片显示出来了。

< 第一节完 >

< 第二节 >
接下来,说的是文字的显示。

RM 没有能在黑色窗口背景上直接显示文字的方法。任何对于黑色背景的操作,都得通过
Bitmap。换句话说,我们只能在 Bitmap 上写字,然后把写有文字的 Bitmap 通过 Sprite,
贴到黑色背景上去。

你可以把 Bitmap 当作是一张可以被书写的画纸,嗯,上面也说过了。

在 Bitmap 上书写文字需要用 Bitmap 自带的一个方法:
  1. draw_text(x, y, width, height, str, align)
复制代码
这个方法接受5到6个参数,最后一个参数 align 是不必要的。
前4个参数指定了可书写范围。超出可书写范围的内容将会不被显示——这个不显示说的只是
上下边界。如果内容的超出了左右边界,系统则会强行压缩的内容的宽度。

一般来说,width = 汉字数*字体尺寸 或者 width = 英文字符数*0.5*字体尺寸。

也就是说两个英文字母等于一个汉字。

height 应该等于字体的尺寸。

字体的尺寸等效果由一个 Bitmap 的 font 属性管理。
他有5个常用方法,分别是:
        font.name = (name)        字体
        font.size = (size)        文字尺寸
        font.bold = (bool)        是否粗体?
        font.italic = (bool)        是否斜体?
        font.color = (color)        文字颜色

color 需要 Color 类的实例。它的设置是这样的:
  1. # Code 1.4
  2. red     = 255
  3. green   = 255
  4. blue    = 255
  5. alpha   = 255
  6. color = Color.new(red, green, blue, alpha)
复制代码
同样,最后一个参数是不必要的。

这些东西的详细内容可以在F1的游戏库当中查到。这里点到即止好了。

然后还是看看示例吧:
  1. # Code 1.5
  2. bmp = Bitmap.new("Sprite.jpg") #1
  3. bmp.font.color = Color.new(255,0,0)             #设置画笔为红色
  4. bmp.font.size = 22                              #设置为22号字体
  5. bmp.draw_text(0,0,6*22,22,"这是一段文字")       #描绘文字
  6. bmp.font.color = Font.default_color             #恢复画笔的默认颜色
  7. spr = Sprite.new               #2
  8. spr.bitmap = bmp               #3

  9. def update
  10.   Graphics.update
  11. end
  12. loop do
  13.   update
  14. end
复制代码
看到了红色的大字了吧。

< 第二节完 >

< 第三节 >




从简单的图片显示到复杂的战斗系统.rar (416.44 KB, 下载次数: 117)

评分

参与人数 1星屑 +1 收起 理由
鑫晴 + 1 怎么不更新了

查看全部评分

不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )

Lv3.寻梦者

梦石
0
星屑
998
在线时间
24 小时
注册时间
2011-5-18
帖子
3
2
发表于 2011-8-17 12:47:11 手机端发表。 | 只看该作者
阅读完了,非常好理解,什么时候更新呢?

点评

没写完,怎么挖上来了= =bbbbb  发表于 2011-8-17 12:53
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 22:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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