查看: 66|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月二日(秋) | 显示全部楼层 |阅读模式
    不定期更新。
    可能会坑爹,但是我尽量不坑。
    这篇研究将会假定你已经了解RGSS/Ruby语法,如果不了解,请去看看F1的脚本入门再来。
    如果没有问题的话,那么就开始了。

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

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

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

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

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

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

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

    这是一个简单的例子:
    1. # Code 1.2bmp = Bitmap.new("Sprite.jpg") #1spr = Sprite.new               #2spr.bitmap = bmp               #3def update  Graphics.updateendloop do  updateend复制代码
    复制代码
    你可以看到图片显示出来了。

    < 第一节完 >

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

    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.4red     = 255green   = 255blue    = 255alpha   = 255 color = Color.new(red, green, blue, alpha)复制代码
    复制代码
    同样,最后一个参数是不必要的。

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

    然后还是看看示例吧:
    1. # 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 update  Graphics.updateendloop do  updateend复制代码
    复制代码
    看到了红色的大字了吧。

    < 第二节完 >

    < 第三节 >





                 本帖来自P1论坛作者禾西,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=202143  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-17 18:01 , Processed in 0.047827 second(s), 42 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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