新しく発言する EXIT インデックスへ
迷路の壁

  迷路の壁 たかし 2005/07/15 16:46:51 
  できますよ。 青木太一 2005/07/23 09:57:49 
   └「ゲーム中でも障害物の表示位置が変わるよ... たかし 2005/07/28 21:01:07 
    └どうにかなりますよ。 青木太一 2005/07/29 02:34:05 

  迷路の壁 たかし 2005/07/15 16:46:51  ツリーへ

迷路の壁 返事を書く
たかし 2005/07/15 16:46:51
今回のご質問は、迷路上に表示する「障害物」についてです.

set window -5,5,-5,5
set area color 1
plot area :0,0;0,0.5;0.5,0.5;0.5,0

上のプログラムの黒い四角形の大きさの障害物を迷路上に無数に表示して「tenn」の移動を妨げるようにしたいのです。
又、障害物がゲームを開始するごとに毎回表示場所が変わり、しかも「tenn」の移動中にもその障害物の表示場所が変わるようには、できないものですか?
もちろん、その障害物に「tenn」が触れればゲーム終了となるようにしたいです。

  できますよ。 青木太一 2005/07/23 09:57:49  ツリーへ

Re: 迷路の壁 返事を書く
青木太一 2005/07/23 09:57:49
できますよ。
たかしさんのおっしゃっていることにはいろいろあると思うのですが

・障害物がtennの移動を妨げるようにしたい
ようするにゲームが終了するということですね?

・無数の障害物の表示場所が毎回変わるようにしたい
できます。ただし、迷路としてきちんと「スタートからゴールまで行くことができる経路ができるように」という条件を満たすようにするのは面倒かもしれませんが、できます(いろいろな方法があると思います)。

・ゲーム中でも障害物の表示位置が変わるようにしたい
これは、どのような表示位置の変更ですか?
障害物は瞬間移動的に表示位置が変わるのか、それとも移動(徐々に位置がずれる)だけなのか。

とりあえず、大量のデータを扱うには「配列」を使うといいと思います。たかしさんは「配列」をご存知ですか?
ご存知だったら失礼。

とりあえず配列を利用して障害物が動き回るサンプルを書きます。あたり判定、迷路としてのゴールまでの経路の保証などは組み込んでいません。

randomize
set window 0,1,0,1

LET n=20
dim x(1 to n),y(1 to n) !位置
dim sx(1 to n),sy(1 to n)!大きさ(size)
dim vx(1 to n),vy(1 to n)!速度(velocity)

!初期値設定
for i=1 to n
LET x(i)=rnd
LET y(i)=rnd
LET sx(i)=rnd/3
LET sy(i)=rnd/3
LET vx(i)=(rnd-0.5)/50
LET vy(i)=(rnd-0.5)/50
next i

!メインループ開始
do

!壁にぶつかったら反射する
for i=1 to n
if x(i)<0 or 1<x(i) then LET vx(i)=-vx(i)
if y(i)<0 or 1<y(i) then LET vy(i)=-vy(i)
next i

!速度によって位置を進める
for i=1 to n
LET x(i)=x(i)+vx(i)
LET y(i)=y(i)+vy(i)
next i

!箱を描く
for i=1 to n
plot lines:x(i)-sx(i)/2,y(i)-sy(i)/2;
plot lines:x(i)-sx(i)/2,y(i)+sy(i)/2;
plot lines:x(i)+sx(i)/2,y(i)+sy(i)/2;
plot lines:x(i)+sx(i)/2,y(i)-sy(i)/2;
plot lines:x(i)-sx(i)/2,y(i)-sy(i)/2
next i

!ちらつき防止
set draw mode explicit
set draw mode hidden
clear

loop

END

   └「ゲーム中でも障害物の表示位置が変わるよ... たかし 2005/07/28 21:01:07  ツリーへ

Re: できますよ。 返事を書く
たかし 2005/07/28 21:01:07
「ゲーム中でも障害物の表示位置が変わるようにしたい。
これは、どのような表示位置の変更ですか?
障害物は瞬間移動的に表示位置が変わるのか、それとも移動(徐々に位置がずれる)だけなのか」
という質問がありましたが、
「障害物は瞬間移動的に表示位置が変わる」ようにしたいのです.
どうにかなりますかね?

    └どうにかなりますよ。 青木太一 2005/07/29 02:34:05  ツリーへ

Re: 「ゲーム中でも障害物の表示位置が変わるよ... 返事を書く
青木太一 2005/07/29 02:34:05
どうにかなりますよ。
サンプルでは徐々に位置がずれるようにしていますが、適当なタイミングで初期化処理をすればいいだけですから。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。