コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
30ドルのパン ◆JHCR47uH0NMR
2018/9/21 14:30
シューティングにつかえそう

コメント

アバター
こういち 2018/9/21 14:38 ◆ou0jbJnEJ0Kb
BREPEATとBUTTON(1)ってのがあってですね…
それはそうとSTICKやTOUCHにも応用できたりするので作ってみるのは大事なんですけどね。
アバター
30ドルのパン 2018/9/21 14:54 ◆JHCR47uH0NMR
どう書けばいいのか全く分からない。
アバター
あまさとしおん 2018/9/21 15:53 ◆mzDKTVUAtwqE
BUTTON(1)の使い方はBUTTON()と一緒ですが
数字の入るタイミングが違います

例:Aボタンを押したとき
BUTTON() → ずっと16
BUTTON(1) → 押した瞬間に16、その後は決められた時間後から周期的に16になる

BREPEATは、前の行で言った「決められた時間」「周期」を設定する、『前準備』の命令です

BREPEAT ボタン番号,開始時間,周期

注意点:ボタン番号がBUTTON()とは違います
たとえばAボタンは4になります
BUTTON()の数字から変換したい場合はLOG(数,2)でできたりします

BUTTONでAボタンは16ですが
LOG(16,2)は4になり、BREPEATのボタン番号と一致します

(つづく)
アバター
あまさとしおん 2018/9/21 15:58 ◆mzDKTVUAtwqE
開始時間とは、ボタンを押してから2回目に数字が出るまでのフレーム数です
周期とは、2回目以降の数字が出る間隔(フレーム)です

たとえば
BREPEAT 4,24,8を設定して、Aボタンを押し続けた場合
BUTTON(1)の数字は次のようになります

16→(間の23フレームは0)→16→(間の7フレームは0)→16→(間の7フレームは0)…
押している限り同じ間隔で16が出る
離して、もう1回押したら最初に戻る
アバター
だにえる 2018/9/21 16:31 ◆m76OCAQyrWGt
IF BUTTON(0)AND #A THEN
 CNT=(CNT+1)MOD 20
 IF CNT==1 THEN BEEP
ELSE
 CNT=0
ENDIF
ってするのもあり。
VSYNC 2だったり処理落ちするようなゲームでなら需要ある。
アバター
30ドルのパン 2018/9/21 18:09 ◆JHCR47uH0NMR
需要があるのはどちら?
アバター
だにえる 2018/9/21 18:22 ◆m76OCAQyrWGt
時と場合と人による
アバター
あまさとしおん 2018/9/21 18:56 ◆mzDKTVUAtwqE
通常は組み込み関数(=プチコンに最初から備わってる機能)で済ますほうが簡潔でよい
が、そもそも1ループがVSYNC 1ではないと誤作動するのでその場合は自作する

というのが使い分けのひとつの目安では
アバター
あっつん 2018/9/22 22:33 ◆3jMjYn7OBsMj
button(1)は60fps前提なので、処理がかつかつの場合は30ドルのパンさんの書いたようなコードも良いと思います。
アバター
30ドルのパン 2018/9/23 15:55 ◆JHCR47uH0NMR
画像の3行目の最後に
ELSE CNT=0
を付けて、4行目の
B0==0UU
を削ったら短…
長くなってる!?(書いてる最中に気づいた)

コメントを書く

この投稿にはコメントできません。

- WEB PATIO -