luastg吧 关注:836贴子:4,934
  • 13回复贴,共1

LuaSTG版面(框面)修改教程①,制作类虫姬游戏的框面。

只看楼主收藏回复

基于大家对我一年前给出的LuaSTG框面参数解释的呼声很高,今天给大家带来LuaSTG框面修改的简单教程。如何将LuaSTG改为如下图虫姬这样的游戏框面。

这个教程中我们只讲解基础的版面修改,涉及到游戏内部信息显示部分例如:血量、游戏分数等本章教程并不给出修改方法。


IP属地:北京1楼2017-07-05 19:54回复
    同样的,学习本篇请确保自己拥有以下2种以上能力:
    基础脑补学
    Lua初级编程技巧
    初级语文
    基础吐槽学
    基础LuaSTG学


    IP属地:北京2楼2017-07-05 19:56
    回复
      2025-10-16 10:59:19
      广告
      不感兴趣
      开通SVIP免广告
      请保证你已经学会
      https://tieba.baidu.com/p/4480348710
      中的关于版面参数的知识。


      IP属地:北京3楼2017-07-05 19:57
      回复
        这里我们只是制作类似于虫姬游戏的框面,其框面各部分比例我们可以自己定义。
        为了美观,游戏整体为1280:720(16:9)的游戏画面,游戏显示部分为街机惯用的3:4的比例,上下两边不留白,则为540:720的尺寸。则整体应当为下图


        IP属地:北京4楼2017-07-05 20:11
        回复
          接下来我们修改core.lua中的版本相关的代码部分。

          (未修改的)
          这里我重新解释一下里面各个部分的意义。
          screen.width 顾名思义,就是指游戏整体的宽度,原本是640,在这篇教程里由于版面需要制作成1280:720的,
          所以该变量应当改为screen.width=1280
          同理修改screen.height=720
          screen.scale是横纵比,这里我们先保持原本不变。
          screen.dx是用来修正设定的分辨率与游戏默认分辨率的偏移量的,一般情况下游戏分辨率比例是不变的,
          我们也保持这个变量原样。
          关键是lstg.world的几个变量。
          lstg.world.l 是游戏world坐标系的左侧边位置,原本为-192,根据我们目前设定的游戏world区(图中浅蓝色部分),该变量应当为整个world宽的一般,则修改为lstg.world.l=-270。同理以下参数为
          lstg.world.r=270
          lstg.world.b=-360
          lstg.world.t=360

          lstg.world.boundl 是游戏world的边界区域,所以没有设定self.bound=false的单位,再其坐标超出这个矩形框
          之后都会被删除。所以这个参数也是非常重要的参数。一般情况是要比游戏本身world区要大一圈的。
          这里我们选择合适的数量。
          lstg.world.boundl=-290
          lstg.world.boundr=290
          lstg.world.boundb=-390
          lstg.world.boundt=390

          scrl,scrr,scrb,scrt这四个参数指的是游戏world区域左右下上四个边界相对于整个游戏版面的位置。其坐标
          如图上一楼黑色坐标系,原点在左下角,故这四个参数应当为我在图中给出的坐标
          scrl=370
          scrr=910
          scrb=0
          scrt=720


          IP属地:北京6楼2017-07-05 20:28
          回复
            修改完这一部分之后,我们还需要修改ext.lua中的GetInput()函数中的版面设置。

            同理原代码修改为


            IP属地:北京7楼2017-07-05 20:30
            回复
              至此游戏版面已经全部修改完成。后续还需要修改很多游戏内容先关的部分例如
              (1)需要修改player.lua中限制自机移动区域的代码。
              (2)item.lua中item显示的代码。
              (3)boss.lua和UI.lua中游戏内信息显示的部分。
              由于第(3)条修改起来需要反复摸索,本章这里不给出详细修改过程。


              IP属地:北京8楼2017-07-05 20:33
              回复
                最后我们选择一个比较合适的游戏版面背景例如我自己弄得一个


                IP属地:北京9楼2017-07-05 20:41
                回复
                  2025-10-16 10:53:19
                  广告
                  不感兴趣
                  开通SVIP免广告
                  受教了


                  IP属地:美国来自Android客户端10楼2017-07-05 23:16
                  回复
                    最后一步就是将UI.lua中渲染ui_bg.png这个素材的部分修改为针对现在新的坐标系的.
                    注意到现在新的坐标系的窗口中心位置为(640,320),我们需要按这一点去渲染.最后我们就能得到想要的游戏界面啦


                    IP属地:北京11楼2017-07-08 13:07
                    回复


                      IP属地:北京12楼2017-07-08 13:20
                      回复


                        IP属地:北京13楼2017-07-08 13:23
                        收起回复


                          IP属地:中国台湾15楼2017-07-08 15:17
                          回复