[挖坑]从简单的图片显示到复杂的战斗系统
不定期更新。可能会坑爹,但是我尽量不坑。
这篇研究将会假定你已经了解RGSS/Ruby语法,如果不了解,请去看看F1的脚本入门再来。
如果没有问题的话,那么就开始了。
< 第一节 >
从根本来说,RGSS系统的主体应该这样的:# Code 1.1def updateGraphics.updateendloop doupdateend复制代码它由两个部分组成:
一个刷新画面的方法
一个不断调用方法的循环
它的逻辑很简单,我们甚至可以用两句话来概括:
刷新画面、刷新画面。
没错,Graphics.update这个方法就是用来刷新画面的。
好了,现在你应该想要进一步丰富你的游戏内容,而不是无聊至极地一直刷新画面,而事实上
这个黑黝黝的画面也没有甚么好刷新的。
可是如果不进行刷新画面的话,程序唰一下就结束了。
[另外,如果10秒不刷新画面的话,RMXP会抛出一个错误并强行结束程序。RMVX则保持黑屏。]
那么,先让我们来了解两个东西。他们一个叫 Sprite,一个叫 Bitmap。我们翻译为精灵和位
图,但是他们实际上更像是画框和画纸。
现在,先选择一张你喜欢的图片吧。记住,RM 只支持 jpg、bmp、png 这三种格式的图片。
然后,我们要把他在 RM 的窗口中显示出来。
具体的步骤有三个,分别是
1.加载bitmap
2.生成sprite
3.把 bitmap 塞到 sprite 里面去
这是一个简单的例子:# Code 1.2bmp = Bitmap.new("Sprite.jpg") #1spr = Sprite.new #2spr.bitmap = bmp #3def updateGraphics.updateendloop doupdateend复制代码你可以看到图片显示出来了。
< 第一节完 >
< 第二节 >
接下来,说的是文字的显示。
RM 没有能在黑色窗口背景上直接显示文字的方法。任何对于黑色背景的操作,都得通过
Bitmap。换句话说,我们只能在 Bitmap 上写字,然后把写有文字的 Bitmap 通过 Sprite,
贴到黑色背景上去。
你可以把 Bitmap 当作是一张可以被书写的画纸,嗯,上面也说过了。
在 Bitmap 上书写文字需要用 Bitmap 自带的一个方法: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 类的实例。它的设置是这样的:# Code 1.4red = 255green = 255blue = 255alpha = 255 color = Color.new(red, green, blue, alpha)复制代码同样,最后一个参数是不必要的。
这些东西的详细内容可以在F1的游戏库当中查到。这里点到即止好了。
然后还是看看示例吧:# Code 1.5bmp = Bitmap.new("Sprite.jpg") #1bmp.font.color = Color.new(255,0,0) #设置画笔为红色bmp.font.size = 22 #设置为22号字体bmp.draw_text(0,0,6*22,22,"这是一段文字") #描绘文字bmp.font.color = Font.default_color #恢复画笔的默认颜色spr = Sprite.new #2spr.bitmap = bmp #3def updateGraphics.updateendloop doupdateend复制代码看到了红色的大字了吧。
< 第二节完 >
< 第三节 >
本帖来自P1论坛作者禾西,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=202143若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]