Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
114 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3447
次のページ(過去)
返信[32]
親投稿
みむ*mim hidemimtp
敵が出現してSPSETした時にSPFUNCも設定をして、 「CALL SPRITE」を実行したときに毎回ENE_MOVEの処理(移動&撃沈チェック)を繰り返させます。 撃沈されたら、APANIMしつつ、「CALL SPRITE」の飛び先をENE_MOVEからSP_CLRに変更します。 SP_CHKを繰り返し、ANIMが終わったらそのSPを開放します。(SPFUNCの内容も消えます)
0そうだね
プレイ済み
返信[31]
親投稿
みむ*mim hidemimtp
シンプルにしてみました。
0そうだね
プレイ済み
返信[30]
親投稿
みむ*mim hidemimtp
自作を呼び出すなら、1つ1つ呼びますよね。 FOR I=o TO 511 IF SPUSED(I) && ENE[oo,0]==1 THEN ENE_MOVE I みたいに。 でもSPFUNCは SPFUNC oo,ENE_MOVE としておけば、「CALL SPRITE」された時に、一斉に実行されます。 で、それだと「DEF ENE_MOVE」内でのSP番号が分からないので、 SP=CALLIDX みたいなのを最初に書くわけです。 で、そのSPに対して処理すれば、ENE_MOVEに飛ぶべきSPキャラ全てに対して同じ処理が行われます。
0そうだね
プレイ済み
返信[28]
親投稿
みむ*mim hidemimtp
「DEF ENE_MOVE」には移動処理と、爆破されたらSPANIMとSPFUNC oo,"SP_CLR"を実行します。(公開PGの17~19行目) (これにより、このSPはENE_MOVEには飛ばす、SP_CLRに飛ぶようになる) 「DEF SP_CLR」には、アニメが止まった(!SPCHK(oo))ら、SPCLR oo する処理を書いておきます。(公開PG33行目~)
0そうだね
プレイ済み
返信[27]
親投稿
みむ*mim hidemimtp
昨日公開したのがSPFUNCで書いた例ですよ。 SPSETする時は空き番号を自動的に割り当てるようにします。 (公開PGの4行目) そして6行目ですが、 こうさんのプログラム内でいえば、 敵が出現してSPSETした時にENE[○○,0]=1 していると思いますが、それを、 SPFUNC oo,"ENE_MOVE"に。 そしてメインループに「CALL SPRITE」とだけ記載します。 これによって、このように設定したSPは全て「DEF ENE_MOVE」に勝手に飛ぶようになります。
0そうだね
プレイ済み
返信[23]
親投稿
みむ*mim hidemimtp
エラー後、 ?I 30 ?SPUSED(I+101) 0 ですので、存在のないSP番号にSPOFSしてますね。
0そうだね
プレイ済み
返信[21]
親投稿
みむ*mim hidemimtp
「SPUSEDは必須」は言い過ぎでした。SPの番号と数が固定だったり増えるだけであれば不要です。事故防止用に書いておくのも策ですけど。
0そうだね
プレイ済み
返信[20]
親投稿
みむ*mim hidemimtp
す、すごいの作ってるんですね・・・ でもこれくらいで画面がチカチカするのはおかしいです。 コメントはずしてもエラーが再現しなかったので想像ですが、SP系のIllegal~は、SPSETされていない番号に対してSP系命令を出した場合が多いです。 552行のループ開始直後に IF !SPUSED(I+101) THEN CONTINUE を入れてみたらどうでしょうか? SPFUNCを使用しない場合は、SPUSEDは必須です。 553は書くなら「&&!」ではなく「&& !SPCHK(~」ですよ。
0そうだね
プレイ済み
返信[1]
親投稿
みむ*mim hidemimtp
とりあえず17行目に記述ミスが。
0そうだね
プレイ済み
返信[2]
親投稿
みむ*mim hidemimtp
そういうのがないのがBASICのいいところ。 そういうのを作って楽しめるのもいいところ。
0そうだね
プレイ済み
トピック
みむ*mim hidemimtp

Works by Japanese.

It is SMILE BASIC OGIRI Works by Japanese. https://miiverse.nintendo.net/posts/AYIHAAAEAAASVZKgDmjUAg
3そうだね
未プレイ
返信[17]
親投稿
みむ*mim hidemimtp
SPANIMは連続実行しちゃダメです・・・・ SPFUNCを使うと色々便利ですよ。 想像されているものか分かりませんが、SPFUNCの使用例です。 EKCYA3L4
0そうだね
プレイ済み
返信[2]
親投稿
みむ*mim hidemimtp
&&、||は、論理演算です。正しいか正しくないかの式を連結します。「かつ」「または」という意味です。 IF A==3 && B==4 THEN ~ ’Aが3かつBが4ならば~ AND、ORは、2進数のビット演算です。 11011 AND ’両方が1なら1 10010 --------- 10010 11011 OR ’どちらかが1なら1 10010 --------- 11011
1そうだね
プレイ済み
返信[15]
親投稿
みむ*mim hidemimtp
あ、文を読んで今分かりました。 そうです、変動する数は評価されません。SPANIM実行時の値のみが有効です。
0そうだね
プレイ済み
返信[12]
親投稿
みむ*mim hidemimtp
部分的過ぎて何が何やら・・・
0そうだね
プレイ済み
返信[6]
親投稿
みむ*mim hidemimtp
符号を取るSGNという関数を使えば楽ですよ。 36~45行目は、 INC X,SGN(SX) DEC Y,SGN(SY) だけでいけると思います。
1そうだね
プレイ済み
返信[2]
親投稿
みむ*mim hidemimtp
パソコンからしか見れないかもだけど、 http://petitcom.net/3gou/graph
0そうだね
プレイ済み
返信[2]
親投稿
みむ*mim hidemimtp
#ZRはbit11なので2048(&H800) #ZLはbit12なので4096(&H1000) で正しいです。 BUTTONのヘルプの記載が一部間違ってるんです。
0そうだね
プレイ済み
返信[3]
親投稿
みむ*mim hidemimtp
カベのキャラクターが「&H1A0」(スマイルツールの「マップ」の下画面右上に表示されている)だとして、 描かれているBGスクリーン番号がBG、 スプライトの座標がX,Yなら、 IF (BGGET(BG,X,Y,1) AND &HFFF)==&H1A0 THEN ~~~当たったときの処理~~ ENDIF
1そうだね
プレイ済み
返信[9]
親投稿
みむ*mim hidemimtp
動作が遅いのは、動いていないものを毎ループ再描画したりしているのが原因である可能性もありますけどね。 スコアとか自機とか・・・
0そうだね
プレイ済み