Dripです。
SINJIさん、こんにちは。
少し質問が漠然としすぎている気がします。まずボールの投球の方法が不明です。
ぱっと考えただけだと3つほど投球のやりかたが浮かびました。
・ゲージとタイミングで軌道を設定。(PS用ソフト「みんなのゴルフ」のようなやりかた。)
・マウスドラッグで設定。(マウスを動かした軌道をボールに割り当てる。)
・主人公のパラメータから算出。(RPGゲームのように主人公が成長し、成長度で軌道が変化する。
この時点で「ボーリングの作り方を教えてください」という質問のナンセンスさが
お分かりになると思います。
ボーリングだけでは様々なゲームに発展する可能性があるため、
回答がとても困難です。もう少し具体的な質問内容にできないでしょうか。
現時点では質問の方向性と簡単なサンプルでしかアドバイスできません。
以下に簡単なボーリングゲームのサンプルを示します。
title "ボーリングゲーム"
#define pmax 10 //ピンの数
#define fldx 200 //フィールド横幅
#define fldy 400 //フィールド縦幅
#define size 16 //ピンの大きさ
#define float 20 //ピンの間隔
#define gater 20 //ガーターサイズ=ボールサイズ
#define easy 8 //大きくするとボールはまっすぐ進み易くなる(最低1)
dim px,pmax //ピンの位置
dim py,pmax
tmp=0 //ピンをピラミッド型に配置
repeat pmax/2
cnt_=cnt
repeat cnt+1
px(tmp)=cnt*float-cnt_*float/2 +fldx/2
py(tmp)=-cnt_*float+100
tmp++
if tmp>=pmax:break
loop
loop
screen 0,fldx,fldy
bx=double(fldx/2)
by=double(fldy-gater)
font "MS Pゴシック",12
phase=0 //0:投球前 1:投球後
logx=0:logy=0:log=0 //マウスドラッグしたときの位置ログとログの長さ
bgox=0.0 //ボール移動量X
bgoy=0.0 //ボール移動量Y
repeat //メインループ
stick ky,256
if ky&256:{ //ドラッグ中
if phase=0:{ //投球前なら
if log=0:{ //ログ1件だけの状態を阻止
logx(log)=mousex
logy(log)=mousey
log++
}
logx(log)=mousex //ログ追加
logy(log)=mousey
log++
}
}else{
if phase=0 & log>0:{ //ドラッグ終了
repeat log-1,1 //ボールの軌道を計算
bgox+=double(logx(cnt)-logx(0))/easy
bgoy+=logy(cnt)-logy(cnt-1)
loop
bgoy=double(bgoy)/log
phase=1 //投球した!
}
}
redraw 0 //
color 200,160,64:boxf //
color 100,100,100 // フィールド描画
boxf 0,0,gater,fldy //
boxf fldx-gater,0,fldx,fldy //
repeat pmax //ピン描画
if abs(px(cnt)-bx)+abs(py(cnt)-by)<size:px(cnt)=-100:score++ //ピンの簡易ヒットチェック
color 255,255,255:circle px(cnt)-size/2,py(cnt)-size/2,px(cnt)+size/2,py(cnt)+size/2
color 255:circle px(cnt)-size/3,py(cnt)-size/3,px(cnt)+size/3,py(cnt)+size/3,0
loop
bx+=bgox
by+=bgoy
if bx<gater/2:bx=gater/2 //ガーターに落ちた
if bx>fldx-gater/2:bx=fldx-gater/2 //
color 100,50,20:circle bx-gater/2,by-gater/2,bx+gater/2,by+gater/2
color 255,255,255
if bgoy=0:pos 10,200:mes "ボールを上に弾くようにドラッグすると\nボールを投球します。"
if by<-bsize:dialog "スコア:"+score:end //終了処理
redraw 1
await 30
loop
ゲームの方向性やアイデア、要素が定かでない状態でこのプログラムを実行しても、
「ここがああなっていればいいのに。」「これは違う。」などの指摘しか思い浮かばないと思います。
ご質問の前に、まずはゲーム内容を詳しくまとめることが先決に思えます。
完成を目指してがんばってください。