カクカクになる、だけだと重いだけなのかredraw命令が抜けているだけなのか区別がつかない。
処理が重くて話しにならないのであれば、たとえば3D描画用のプラグインを使ってみたりする手があるし、
redraw命令を付け足して画面が正常に処理できるのならそれで解決。
あとcls命令やscreen命令を画面の初期化に使っていたらなおさら重い。
dim ball,100 //ボールの数だけ宣言、多くすると重くなってカクカクする
ddim x,length(ball),2
ddim y,length(ball),2
dim col,length(ball),3
dim size,length(ball)
randomize
repeat length(ball)
x(cnt,0)=double(rnd(640))
y(cnt,0)=double(rnd(480))
x(cnt,1)=0.1*(rnd(30)-rnd(60))
y(cnt,1)=0.1*(rnd(30)-rnd(60))
col(cnt,0)=rnd(192)
col(cnt,1)=rnd(128)+128
col(cnt,2)=rnd(128)+64
size(cnt)=rnd(20)+20
loop
*main
redraw 0 //仮想画面モード、これがないとカクカクする(redraw 1と一緒に)
color 0,0,0
boxf
repeat length(ball)
hsvcolor col(cnt,0),col(cnt,1),col(cnt,2)
pos x(cnt,0),y(cnt,0)
font MSGothic,size(cnt)
mes "●"
if x(cnt,0)+x(cnt,1)<=0:x(cnt,1)*=-1:x(cnt,0)=0.0:else:x(cnt,0)+=x(cnt,1)
if y(cnt,0)+y(cnt,1)<=0:y(cnt,1)*=-1:y(cnt,0)=0.0:else:y(cnt,0)+=y(cnt,1)
if x(cnt,0)+x(cnt,1)>=ginfo(12)-size(cnt):x(cnt,1)*=-1:x(cnt,0)=double(ginfo(12)-size(cnt)):else:x(cnt,0)+=x(cnt,1)
if y(cnt,0)+y(cnt,1)>=ginfo(13)-size(cnt):y(cnt,1)*=-1:y(cnt,0)=double(ginfo(13)-size(cnt)):else:y(cnt,0)+=y(cnt,1)
loop
redraw 1 //実画面モード、これがないとカクカクする(redraw 0と一緒に)
await 16
goto *main
参考になればいいけど……(ボソッ