HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
1203
へろりんmoduleを作ったらエラーが;;4解決


へろりん

リンク

2011/12/3(Sat) 18:22:47|NO.43449


;a=getkey(?) 1:押されている 2:押しが始まった 3:押しが無くなった #module dim stc,121 dim st,121 dim stp,121 #undef getkey #defcfunc getkey int p1 getkey@hsp st(p1),p1 stc(p1)=0 if stp(p1)==0 & st(p1)==1 :stc(p1)=2 if stp(p1)==1 & st(p1)==0 :stc(p1)=3 if stc(p1)==0 & st(p1)==1 :stc(p1)=1 stp(p1)=st(p1) return stc(p1) #global repeat color boxf color 255,255,255 a=getkey(90) if a=1 :mes "おしちゅう" if a=2 :mes "おしました!!!!!!!!!!" if a=3 :mes "はなしましたーーーーーーーーーーー" await 20 loop

getkeyを拡張するmoduleを作ってみたのですが、エラーが出てしまいます。
なぜでしょうか…



この記事に返信する


DoubleQuote

リンク

2011/12/3(Sat) 18:59:20|NO.43450

スクリプト拝見しました。
スクリプト内で


dim stc,121 dim st,121 dim stp,121
と定義されていますがそれぞれどのように使おうと思ったのか教えていただけるとわかりやすいです。
また、

if stc(p1)==0 & st(p1)==1 :stc(p1)=1
となっておりますが、

if stp(p1)==0 & st(p1)==1 :stc(p1)=1
の間違いかな?



へろりん

リンク

2011/12/3(Sat) 20:15:15|NO.43451

すいません、モジュール内の配列変数が余分だったので修正しました。

#module dim stp,121 #undef getkey #defcfunc getkey int p1 getkey@hsp st,p1 stc=0 if stp(p1)==0 & st==1 :stc=2 if stp(p1)==1 & st==0 :stc=3 if stc==0 & st==1 :stc=1 stp(p1)=st return stc #global

モジュール内の配列変数stpにはひとつ前の時のキーボードのボタンが押されたかどうかの状態が入っています。しかしやはりエラーがでる・・・



inovia

リンク

2011/12/3(Sat) 20:27:55|NO.43452


#module #deffunc _init dim stp,121 return #undef getkey #defcfunc getkey int p1 getkey@hsp st,p1 stc=0 if stp(p1)==0 & st==1 :stc=2 if stp(p1)==1 & st==0 :stc=3 if stc==0 & st==1 :stc=1 stp(p1)=st return stc #global _init
_init という命令を定義してその中で変数を初期化すればうまくいきます。
ほかに良い方法があるかもしれませんが。



へろりん

リンク

2011/12/3(Sat) 21:16:27|NO.43455


;a=getkey(?) 1:押されている 2:押しが始まった 3:押しが無くなった #module #undef getkey #defcfunc getkey int p1 getkey@hsp st,p1 stp.122=0 stc=0 if stp(p1)==0 & st==1 :stc=2 if stp(p1)==1 & st==0 :stc=3 if stc==0 & st==1 :stc=1 stp(p1)=st return stc #global

module内のdefcfunc以外の部分は実行されていないため起きたエラーだったんですね。
理解できました。inoviaさんのソースを少し改変したらいい感じになりました。ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.