ここから本文です

HSP初心者です。

mod********さん

2015/5/823:34:43

HSP初心者です。

避けゲームが作りたくて物体を落とすというのをやっているのですが
randomize
b=0

*main
cls
a=rnd(640)
*aaa
cls
b=b+10
pos a,b
mes "■"
await 100
if b<480 : goto *aaa
if b=480 : b=0 : goto *main

これで一つだけ■を上から下まで落とすことができたのですが、3つとか4ついっぺんに■を落とすことができず迷走しています。
どなたかやり方を教えてください。

できれば、超初心者なので簡単なスクリプトが良いです。
お願いします。

閲覧数:
219
回答数:
3
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

ycantnsさん

2015/5/1520:36:35

サンプルを作ってみました。

;乱数の初期化
randomize
;変数の定義
x1=0
x2=0
x3=0
y1=0
y2=0
y3=0
*a
;初期位置を設定
x1=rnd(640)
x2=rnd(640)
x3=rnd(640)

y1=0
y2=0
y3=0
*mainloop

repeat;繰り返し開始

;画面をリセットする
color 255,255,255;色「白」を選択
boxf;画面を塗りつぶす
color 0,0,0;色「黒」を選択

;一つ目のオブジェクトを描く
pos x1,y1
mes "■"

;二つ目のオブジェクトを描く
pos x2,y2
mes "●"

;三つ目のオブジェクトを描く
pos x3,y3
mes "★"

;オブジェクトを下に移動
y1+=10
y2+=12
y3+=15

;一番下まで落ちたオブジェクトを上に移動する
if y1>480:x1=rnd(640):y1=0
if y2>480:x2=rnd(640):y2=0
if y3>480:x3=rnd(640):y3=0

await 100;待ち時間

loop;繰り返しの最初に戻る

  • ycantnsさん

    2015/5/1520:44:14

    解説します。
    上のスクリプトはスクリプトエディタに張り付けていただければ色がついて分かりやすくなります。

    今回は、3つのオブジェクトを同時に動かします。そのために、それぞれの座標に当たる変数を作成します。

    オブジェクト1・・・x座標:x1、y座標:y1といった具合です。

    これらのオブジェクトを繰り返し移動させるために、
    「repeat ~ loop 節」
    を使います。
    使い方はこんな感じです。

    repeat
    処理1
    waitまたはawait
    loop

    こうすることで、処理1を無限回繰り返し実行してくれます。


    今回は、画面を白紙に戻すためにcls命令の代わりに、

    color 255,255,255(=これから白色を使いますよ)
    boxf(選んだ色で塗り潰しますよ)
    color 0,0,0(=これから黒を使いますよ)

    を使っています。
    clsの場合、画面を一回リセットして開きなおすので、負荷がかかったり画面がちかちかしたりすることがありますが、それを解消できます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2015/5/15 22:40:41

超初心者にわかりやすい説明ありがとうございます!
助かりました!
他の方もありがとうございます!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

大師匠さん

2015/5/1007:57:10

ゲーム作成ソフトを活用すればええ思います

2015/5/904:20:21

配列を使うのがいいでしょう。
ここではaだけ配列変数にして10個ずつ用意してます。
bも配列変数にして各々持つようにすれば
高さもそれぞれが保持できるようになります。

randomize
b=0

*main
cls
dim a, 10 // aを10個作った
repeat 10
a(cnt) = rnd(640) // 10個のaに乱数代入
loop
*aaa
cls
b=b+10
repeat 10
// 100個ぶん表示
pos a(cnt), b
mes "■"
loop
await 100
if b<480 : goto *aaa
if b=480 : b=0 : goto *main

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる