cさんへ
レスありがとうございます!
全く反論もできないのですが、しかし少し利点があるんです。
今作っているのがADVゲームで、章ごとに*s1や*s2としてわけているんです。*s1なら、
*s2に移る前の行にgoto *s1をして無限ループになるようにして。
で、文字列で先の章を選ぶ選択肢を表示させることになったとき、文字列の上にポインタが
あったら、文字列の後ろに文字列の大きさで背景を表示する、というモジュールを作ってみました。
#module "slc_t"
;slctxt:表示する文p1、表示する文の選択肢番号p2(0から順に)
;buffer 1にboxf 0,0,600,50をしてある。
#deffunc slctxt str p1,int p2
num=p2
cx.num=ginfo_cx:cy.num=ginfo_cy
sltx.num=p1
mes sltx.num
slx.num=ginfo_mesx:sly.num=ginfo_mesy
if mousex>cx.num-5&mousex<cx.num+slx.num+7&mousey>cy.num-5&mousey<cy.num+sly.num+7:{
pos cx.num-5,cy.num-5:gcopy 1,0,0,slx.num+12,sly.num+12:slclick@=num}
pos cx.num,cy.num:mes sltx.num
;A
return
#global
これを、以下のようなソースの中で使っています。
*s1
redraw 0:slclick=-1
color 255,255,255:boxf 0,0,640,480
color 0,0,0:pos 100,100:gmode 3,,,90;(選択肢背景の透明度調整)
slctxt "選択肢1",0:mes "\n":
slctxt "選択肢2",1
stick waitinS
if slclick=0&waitinS>1:goto *s16;B
if slclick=1&waitinS>1:goto *s17;B
redraw 1:wait 1
goto *s1
*s16
*s17
これで、選択肢にポインタがあるときにクリックしたら、指定されたラベルにジャンプ
できますよね。でも、これから何回となく同様のことをするのに、毎回Bのようにするのは
手間なうえにややこしくなりそう…。なので、モジュールのAの位置に、p3を移動ラベルとして、
if slclick@=num&waitinS@>1:goto p3;B
と入れられたら便利だなー…と思ったのが、この質問の発端です。
プレイ時には、ラベル移動は前にしか進ませないし、選択肢以外の目的には使わないから、
そんなややこしくならないだろう…と楽観しているんですが…やはり、モジュールでラベルを
使うのは浅はかすぎるでしょうか…。
KENTAさんへ
ありがとうございます!3.1b8からだったんですね…現在が3.1b9だから、結構最近なんですね。
やはりバージョンの問題でしたか。やっぱり、腹をくくって3.1b9でやっていってみます。
わざわざありがとうございました!