Custom HUD

来自SMBX 中文百科
TeaScript:Custom HUD
跳转到导航 跳转到搜索
一个使用了自定义 HUD的实例关卡。

Custom HUD 是 SMBX 38A 的 TeaScript 一个脚本实例,用于演示自定义HUD。

介绍

此实例使用HUDSet(...)来实现自定义HUD的效果。

如果想使用更高级的HUD效果,可以使用TXTCreate()BMPCreate()

多用于使用 SMBX 38A 创作出的同人马里奥游戏(例如《双子阴阳岛之谜》《BREEZE》等等。)。

代码教程

目前可以定制HUD的方法有两种。

HUDSet

此函数为多元函数,代表可能因为第一个参数值的不同而后面所有参数的意义都进行变化。

默认使用根目录下的 scflash.png。

优点是可以覆盖上一个ID拥有的HUD属性。

缺点是自由度比较低,不适合做更复杂的HUD。

本实例使用的自定义HUD素材如下:

Custom HUD SCFlash.png

可以看到由五个元素组成:金币数,龙币数,果子数,道具框和星币。

可以先搭建一个关卡场景,然后创建一个脚本。

在此之前,请使用:call hudset("initialize",0,0,0,0,0,0,0,0,0)清除原来的HUD,否则接下来创建的自定义HUD将不起效果。

随后输入以下的代码:

'bitmap,id,sourcex,sourcey,width,height,destx,desty,advset,-1
'text:text,id,destx,desty,startasc,endasc,lnum,npcid,-1,-1
call hudset("bitmap",1,0,0,38,81,20,20,0,-1)
'variables
call hudset("text:&sys(coincount)",2,65,22,48,57,1,213,-1,-1)
call hudset("text:&val(a)",3,65,54,48,57,1,213,-1,-1)
call hudset("text:&sys(playerhealth)",4,65,84,48,57,1,213,-1,-1)
call hudset("text:custom text",10,600,25,32,128,16,89,-1,-1)
'player's item
Call hudset("bitmap",5,38,0,56,56,372,16,0,-1)
Call hudset("bitmap",6,0,0,100,100,384,28,5001,-1)
'star coin
call hudset("bitmap",7,38,56,24,24,20,106,6000,-1)
call hudset("bitmap",8,38,56,24,24,50,106,6001,-1)
call hudset("bitmap",9,38,56,24,24,80,106,6002,-1)

然后运行游戏,可以看到自定义HUD已经生效。

Custom HUD.png

TXTCreate 和 BMPCreate

此函数可以创建一个位图/文字物体。

优点是可以使用Bitmap(ID)Text(ID)修改该位图/文字物体的属性,自由度非常高。

缺点是因为是创建一个位图/文字占位符,所以不可覆盖,需要使用 bitmap(x).xxx 或 text(x).xxx 进行修改。

图像取决于你是用什么 NPC 作为基底。(如果npcID 参数为 51,就使用 NPC-51 的素材当做基底。)