直接扔代码吧,其实我不知道该怎么讲。
;S1280,720L,value300
;分辨率1280x720,限制全局变量从300到以上
;例如说,假设设置变量%NMU,这个NMU数字如果设置的是300以下,那就是局部变量,设置300以上,那就是全部变量
;为了保存我们游戏的设置,我们需要用到全局变量.
;PS
;什么是局部变量呢?
;局部变量关闭游戏就消失了.
;但全局变量即使关闭游戏也可以保留,可以说是永久性.
;全局变量保存在一个gloval.sav文件上,所以想去掉全局变量的可以直接删掉这个文件
;有时候用了全局变量的代码没有生效或是bug,可以试试删掉这个文件
*define
globalon
;必写!开启全局变量模式,不管懂不懂都写上
;要是没写,所有的变量都将视为局部变量
game
*start
bgm "020.mp3";音乐
if %500==499 goto*setting01
;初始设定变量
mov %400,400
mov %404,404
mov %408,408
;我们平常的游戏都是有初始设置这种东西的.
;比如说默认音量100或是默认文字速度等于20
;几个mov都是为了设定初始设置.
;但问题来了,这个几个mov都堵在前面.
;也就意味着每次经过这里都会重新设定成一次初始变量,
;这样设置不管我们设置,到了设置界面都会覆盖原来的初始设定.
;该怎么办?
;我们先一个标签*setting01在mov前面.
;然后mov前写上if %500==499 goto*setting01,意思就是当变量%500,值是499时,就会直接跳过初始设定,跳跃到*setting01上.
;然后在后面的按钮都写上类似if %NUM==NUM mov %500,499的格式.
;效果就变成只要你设置了,都会直接跳过我们的初始设定变量.
;这样初始设定就不会覆盖我们自己设置了.
*setting01
;先把精灵显示上,
if %400 == 398 lsp 100 ":a;设置框2.png" 0,0
if %400 == 398 lsp 30 ":a;调节1.png" 477,261
if %400 == 399 lsp 30 ":a;调节2.png" 477,261
if %400 == 400 lsp 30 ":a;调节3.png" 477,261
if %404 == 402 lsp 40 ":a;调节3.png" 602,261
if %404 == 403 lsp 40 ":a;调节2.png" 602,261
if %404 == 404 lsp 40 ":a;调节1.png" 602,261
if %408 == 406 lsp 50 ":a;调节3.png" 727,261
if %408 == 407 lsp 50 ":a;调节2.png" 727,261
if %408 == 408 lsp 50 ":a;调节1.png" 727,261
首先上面的精灵,是显示游戏音量或是速度大小的.
;举个例子,如果音量是100的话,就会是这样的.
;如果音量是50时,就是显示这样的.
;为了显示这种效果,我们要怎么做?
;我们举个上面代码例子,if %400 == 398 lsp 30 ":a;调节1.png" 477,261
;意思是当变量是%400,值为398时,上面显示低音量的图片
;变量的话,我们可以写在按钮代码后面.
;例如当if %NUM==NUM mov %400,398
;这样的话,只要我们点击按钮,按下按钮时同时设定变量,变量设定了,显示的图片也随之改变.
;这样在玩家看起来就是我按下了按钮,音量框调节成了低音量.
lsp 3 ":a;设置按钮.png" 477,418
lsp 4 ":a;设置按钮.png" 477,340
lsp 5 ":a;设置按钮.png" 477,262
lsp 6 ":a;设置按钮.png" 602,418
lsp 7 ":a;设置按钮.png" 602,340
lsp 8 ":a;设置按钮.png" 602,262
lsp 9 ":a;设置按钮.png" 727,418
lsp 10 ":a;设置按钮.png" 727,340
lsp 11 ":a;设置按钮.png" 727,262
;上面的都是按钮图片
;我把图片按钮做成了透明,这样既看不出来也能按下去.
print 10,100
;设定精灵.使精灵可以变成可以按下去的按钮
exbtn 3,3
exbtn 4,4
exbtn 5,5
exbtn 6,6
exbtn 7,7
exbtn 8,8
exbtn 9,9
exbtn 10,10
exbtn 11,11
;记得刷新,否则精灵会无效.
print 10,100
;设定按钮变量为%0
btnwait %0
if %0==0 goto*setting01
if %0==-1 goto*setting01
;当点击界面或是右键时跳到*setting01,防止闪退
;调节音量
if %0==3 mov %500,499:mov %400,398:mp3vol 0:goto*setting01
if %0==4 mov %500,499:mov %400,399:mp3vol 30:goto*setting01
if %0==5 mov %500,499:mov %400,400:mp3vol 100:goto*setting01
;调节画面过渡
if %0==6 mov %500,499:mov %404,404:seteffectspeed 0:goto*setting01
if %0==7 mov %500,499:mov %404,403:seteffectspeed 1:goto*setting01
if %0==8 mov %500,499:mov %404,402:seteffectspeed 2:goto*setting01
;调节文字速度
if %0==9 mov %500,499:mov %408,408:textspeed 15:goto*setting01
if %0==10 mov %500,499:mov %408,407:textspeed 7:goto*setting01
if %0==11 mov %500,499:mov %408,406:textspeed 0:goto*setting01
;关键的时刻
;这里的变量分为%500和%4XX.
;变量mov%500是为了按下按钮时,直接跳过前面的初始变量,跳到*setting01,避免初始设定覆盖我们的设定
;变量mov%400是为了按下按钮时,改变显示的音量框之类,显示音量高或是音量低
;上面也有说过逻辑,这里就不展开了
;PS
;上面关于按钮的if代码大同小异,我们拿一个代码解释解释.
;if %0==3 mov %500,499:mov %400,398:mp3vol 0:goto*setting01
;这是什么意思?
;当我按下这个按钮时,设定mov %500,499和mov %400,398,设定音量0,并跳跃到*setting标签.
;白话就是,当我按下这个按钮,将会跳过初始设定,防止初始设定覆盖我的设定,且改变界面显示的音量框高低,设定变量为0,并顺便防止按下后会突然闪退.
end
显示效果如下,二楼发成品链接:
;S1280,720L,value300
;分辨率1280x720,限制全局变量从300到以上
;例如说,假设设置变量%NMU,这个NMU数字如果设置的是300以下,那就是局部变量,设置300以上,那就是全部变量
;为了保存我们游戏的设置,我们需要用到全局变量.
;PS
;什么是局部变量呢?
;局部变量关闭游戏就消失了.
;但全局变量即使关闭游戏也可以保留,可以说是永久性.
;全局变量保存在一个gloval.sav文件上,所以想去掉全局变量的可以直接删掉这个文件
;有时候用了全局变量的代码没有生效或是bug,可以试试删掉这个文件
*define
globalon
;必写!开启全局变量模式,不管懂不懂都写上
;要是没写,所有的变量都将视为局部变量
game
*start
bgm "020.mp3";音乐
if %500==499 goto*setting01
;初始设定变量
mov %400,400
mov %404,404
mov %408,408
;我们平常的游戏都是有初始设置这种东西的.
;比如说默认音量100或是默认文字速度等于20
;几个mov都是为了设定初始设置.
;但问题来了,这个几个mov都堵在前面.
;也就意味着每次经过这里都会重新设定成一次初始变量,
;这样设置不管我们设置,到了设置界面都会覆盖原来的初始设定.
;该怎么办?
;我们先一个标签*setting01在mov前面.
;然后mov前写上if %500==499 goto*setting01,意思就是当变量%500,值是499时,就会直接跳过初始设定,跳跃到*setting01上.
;然后在后面的按钮都写上类似if %NUM==NUM mov %500,499的格式.
;效果就变成只要你设置了,都会直接跳过我们的初始设定变量.
;这样初始设定就不会覆盖我们自己设置了.
*setting01
;先把精灵显示上,
if %400 == 398 lsp 100 ":a;设置框2.png" 0,0
if %400 == 398 lsp 30 ":a;调节1.png" 477,261
if %400 == 399 lsp 30 ":a;调节2.png" 477,261
if %400 == 400 lsp 30 ":a;调节3.png" 477,261
if %404 == 402 lsp 40 ":a;调节3.png" 602,261
if %404 == 403 lsp 40 ":a;调节2.png" 602,261
if %404 == 404 lsp 40 ":a;调节1.png" 602,261
if %408 == 406 lsp 50 ":a;调节3.png" 727,261
if %408 == 407 lsp 50 ":a;调节2.png" 727,261
if %408 == 408 lsp 50 ":a;调节1.png" 727,261
首先上面的精灵,是显示游戏音量或是速度大小的.
;举个例子,如果音量是100的话,就会是这样的.
;如果音量是50时,就是显示这样的.
;为了显示这种效果,我们要怎么做?
;我们举个上面代码例子,if %400 == 398 lsp 30 ":a;调节1.png" 477,261
;意思是当变量是%400,值为398时,上面显示低音量的图片
;变量的话,我们可以写在按钮代码后面.
;例如当if %NUM==NUM mov %400,398
;这样的话,只要我们点击按钮,按下按钮时同时设定变量,变量设定了,显示的图片也随之改变.
;这样在玩家看起来就是我按下了按钮,音量框调节成了低音量.
lsp 3 ":a;设置按钮.png" 477,418
lsp 4 ":a;设置按钮.png" 477,340
lsp 5 ":a;设置按钮.png" 477,262
lsp 6 ":a;设置按钮.png" 602,418
lsp 7 ":a;设置按钮.png" 602,340
lsp 8 ":a;设置按钮.png" 602,262
lsp 9 ":a;设置按钮.png" 727,418
lsp 10 ":a;设置按钮.png" 727,340
lsp 11 ":a;设置按钮.png" 727,262
;上面的都是按钮图片
;我把图片按钮做成了透明,这样既看不出来也能按下去.
print 10,100
;设定精灵.使精灵可以变成可以按下去的按钮
exbtn 3,3
exbtn 4,4
exbtn 5,5
exbtn 6,6
exbtn 7,7
exbtn 8,8
exbtn 9,9
exbtn 10,10
exbtn 11,11
;记得刷新,否则精灵会无效.
print 10,100
;设定按钮变量为%0
btnwait %0
if %0==0 goto*setting01
if %0==-1 goto*setting01
;当点击界面或是右键时跳到*setting01,防止闪退
;调节音量
if %0==3 mov %500,499:mov %400,398:mp3vol 0:goto*setting01
if %0==4 mov %500,499:mov %400,399:mp3vol 30:goto*setting01
if %0==5 mov %500,499:mov %400,400:mp3vol 100:goto*setting01
;调节画面过渡
if %0==6 mov %500,499:mov %404,404:seteffectspeed 0:goto*setting01
if %0==7 mov %500,499:mov %404,403:seteffectspeed 1:goto*setting01
if %0==8 mov %500,499:mov %404,402:seteffectspeed 2:goto*setting01
;调节文字速度
if %0==9 mov %500,499:mov %408,408:textspeed 15:goto*setting01
if %0==10 mov %500,499:mov %408,407:textspeed 7:goto*setting01
if %0==11 mov %500,499:mov %408,406:textspeed 0:goto*setting01
;关键的时刻
;这里的变量分为%500和%4XX.
;变量mov%500是为了按下按钮时,直接跳过前面的初始变量,跳到*setting01,避免初始设定覆盖我们的设定
;变量mov%400是为了按下按钮时,改变显示的音量框之类,显示音量高或是音量低
;上面也有说过逻辑,这里就不展开了
;PS
;上面关于按钮的if代码大同小异,我们拿一个代码解释解释.
;if %0==3 mov %500,499:mov %400,398:mp3vol 0:goto*setting01
;这是什么意思?
;当我按下这个按钮时,设定mov %500,499和mov %400,398,设定音量0,并跳跃到*setting标签.
;白话就是,当我按下这个按钮,将会跳过初始设定,防止初始设定覆盖我的设定,且改变界面显示的音量框高低,设定变量为0,并顺便防止按下后会突然闪退.
end
显示效果如下,二楼发成品链接: