投稿
かみさま tikutikuPI
音楽をかけたり、キャラクターを移動させることが一応できました!(まあ、まねしたんですが…) 次は青おにが追いかけてくるように、敵が自分を追いかけてくるというのを作りたいです!この写真をみて、どうすればいいか教えてください!!よろしくお願いします!!
4そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
敵が自分を追いかけてくるにはどうしたらよいかと言うことですが、自分と敵の位置を比較して敵の位置が自分の位置より大きければ敵の位置を減らして小さければ増やすと言う処理を実装すれば追いかけてくるようになります。 IF X>TX THEN TX=TX+2 IF X<TX THEN TX=TX-2 Y座標も同様の処理を追加して下さい
0そうだね
プレイ済み
返信[2]
親投稿
かみさま tikutikuPI
やってみました!が、うまく動きません…どうすればいいですか?
1そうだね
プレイ済み
返信[3]
親投稿
Sきち 4405chan
敵が追いかけてくるのも無限ループにいれたらいいんじゃないですか?
0そうだね
プレイ済み
返信[4]
親投稿
ぱっと見の問題点だけリストアップしますので頑張って直してみてください! ・自分も敵も同じスプライト管理番号の1を使っているので同時に出せない(どちらかを変える) ・X,Y座標を2回定義してるので不要(敵側の初期設定がない) ・意味の無いNEXTが存在する(FORがないので意味ないしエラーになるはず) ・敵のルーチンがメインループ(@LOOP)外なので実行されない(メインループっぽいのが2箇所あるが下は動かない) ・敵の座標変数を変更しているがスプライトの反映(SPOFS)してない
0そうだね
プレイ済み
返信[5]
親投稿
もうひとつだけアドバイス。 プログラムは上から実行されるので基本的には、始めに初期化関係の処理があって、その後にメインループに入ります。 初期化関係の処理とは画面の初期化や変数の初期化、スプライトの表示設定(移動は含まない)などがあります。 メインループはWHILEやラベルのGOTOで作られる事が多く、今回は@LOOPのラベルで作っていますね。なので、@LOOPからGOTO @LOOPまでの間が常に何度も実行される事になります。 このメインループの中に入ってない処理は、上記の初期化で始めに実行される以外は自分で呼び出さない限り実行されないので、通常の何度も実行される処理(キー入力や移動など)はこのメインループの中で処理を行うようにしましょう。 あとは各命令の意味などを理解して流れを追えば、どんな処理になっているかなどがわかってくると思います。頑張ってください!
0そうだね
プレイ済み
返信[6]
親投稿
かみさま tikutikuPI
色々丁寧にありがとうございます!!私はバカなので全然わかりません… ごめんなさいっ!!いつかは理解できるようにがんばります!!できれば、今までいってくれたプログラムを写真ではってもらえれば助かるのですが…どうかよろしくお願いします!!
0そうだね
プレイ済み
返信[7]
親投稿
今回だけサービスで今話した内容を反映させたソースを載せます。 ただ分からないまま進めても行き詰まるので、今の段階ぐらいでいちど振り返ってちゃんと覚える姿勢で続けた方がいいと思いますよ。 ではでは。
0そうだね
プレイ済み
返信[8]
親投稿
かみさま tikutikuPI
ありがとうございます!!勉強して、頑張って覚えます!!またわからないところが出たら教えてください!よろしくお願いします!
0そうだね
プレイ済み
返信[9]
親投稿
かみさま tikutikuPI
すみません…いきなり質問です!スプライトの絵をかいて保存したのですが、ロードしてその番号を入れてRUNすると消えてしまいます。どうすれば、ロードしたあとずっと使えるようになりますか?
0そうだね
プレイ済み
返信[10]
親投稿
ACLS命令はかなり大部分の初期化をする命令なので、その時に書き換えた画像なども戻ってしまいます。 なのでそれを回避するにはACLS命令を使わないで必要な初期化を行うか、もしくはACLSの後の行で画像をロードする(プログラムにロードを組み込む)って感じになりますね。
0そうだね
プレイ済み
返信[11]
親投稿
かみさま tikutikuPI
わかりました!早速やってみます!!
0そうだね
プレイ済み
返信[12]
親投稿
かみさま tikutikuPI
CLSでやってみたらできました! 間違ってますか? あと、写真の敵の番号0032のスプライトを大きくしたいので、説明書をみてやってみました!だけど、変わりません。どうすればいいですか?写真みて答えてもらえませんか?
0そうだね
プレイ済み
返信[13]
親投稿
CLSはコンソールしかクリアしませんがとりあえず動いてるならOKかな…。 スプライトが大きくならないのは番号を間違えているからですね。 0032としていしていますが、それは定義番号なので、そこに指定する数字は管理番号じゃないといけないです。 で、実際の0032が割り当てているスプライトの管理番号は2番なので(SPSET 2,0032としてあるから)、SPSCALE 2,2,2のように管理番号2番のスプライトに対してサイズを指定すれば大きくなると思いますよ。
0そうだね
プレイ済み