いわゆる音ゲーを作成しています。
d3timerを用い指定されたテンポに合わせながら、●が1小節(4拍子)経過するたびに進行方向を変更してぐるぐる移動するところで行き詰まっています。
#include "d3m.hsp"進行方向を変更するときに●がうまく動作しません。
winysize=480.0 screen 0,640,winysize tempo = 120 beat = 60000/tempo dist=24 cirx=0.0 ciry=0.0 cirsize=48 max=winysize-(cirsize+cirsize/2) beatmove = (winysize-cirsize*2)/4 move = (beatmove/beat) start = d3timer() //プログラムを開始した時間 measure=beat*4 nfr=0 repeat redraw 0 color 255,255,255 : boxf now=d3timer()-start if measure*4 <= fr : nfr=now fr=now-nfr//4小節ごとに時間を計測する if measure <= frb : fra=now frb=now-fra//1小節ごとに時間を計測する color 0, 0, 0 : circle cirx,ciry,cirx+cirsize,ciry+cirsize if measure*1 <= fr and measure*2 > fr{//→ cirx = move*frb+dist ciry=dist } else { if measure*2 <= fr and measure*3 > fr{//↓ ciry = move*frb+dist cirx=max } else { if measure*3 <= fr and measure*4 > fr{//← cirx = max-move*frb ciry=max } else { if measure*0 <= fr and measure*1 > fr{//↑ ciry = max-move*frb cirx=dist } } } } redraw 1 await 16 loop
言葉で表現するのが難しいのですが、一瞬望まないほかの場所に移動してしまいます。
もし何かわかることがありましたら、ご教授願います。