Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
119 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 3947
次のページ(過去)
返信[5]
親投稿
みむ*mim hidemimtp
あ、そうですね、失礼。 あと気になるのはループ内にWAITとかしなくていいのかな?ってとこですね。秒速何千回と見にいくと、誤動作しそうな・・・ あまり頻繁に取りに行ってもしょうがないので、私は同期中はWAIT 6でやってました。 で、このPGでいう34行目のあとにWAIT 60:MPSET 0,0 としてました。
0そうだね
プレイ済み
返信[3]
親投稿
みむ*mim hidemimtp
REPEATはTRUEになったら終わるので、 UNTIL MPGET(1,1) と UNTIL MPGET(MPHOST,1) じゃないですか?
0そうだね
プレイ済み
返信[1]
親投稿
みむ*mim hidemimtp
わたしのプロフ欄にある「へびゲー」で、同じような事悩んでた記憶が。どうやったか忘れたので今見てみたら、子機と親機でお互いに見に行ったらうまくいかなかったみたいです。 親機がすべての子機を見にいって、全員OKなら親機が「全員準備OKフラグ」を立て、それを見て子機たちはスタート。 念のためWAIT 60してからMPSET 0,0といった感じでした。 詳しくはヘビゲーの154行目~を見てみてください。 ゲームが始まってからも、全て親機で管理する形にした方がいいと思います。子機の自機移動も、子機で計算せず、親機でBUTTON(1,1)などして、親機が出した結果で移動する等。でないと端末によって結果が変わったりするので。
1そうだね
プレイ済み
返信[1]
親投稿
みむ*mim hidemimtp
人に追いついても、すごくなっても、プログラミングは面白くならないですよ。 自分の作りたいものを作って、できない所を調べたり教えてもらったりしながら完成させる、そこが楽しいんです。 すごくなるのは、ただの結果。 もとい、ここにいるのはほとんど初心者で、すごい事してるのは30年ほど前のプログラミングブームからやっている、プログラム暦が長いおっさん達が多いです。 あきらめてゲームを与えられるだけになったら、そこで試合終了ですよ。(安西先生風)
6そうだね
プレイ済み
返信[5]
親投稿
みむ*mim hidemimtp
ORを取る意味はあまりないですね・・・ L,Rを取るのに&H300だと分かりにくいので、定数リテラルを使用して、 B=A AND (#L OR #R) とか書いたりします。 ORでなく+でも結果は同じですけど、理屈で言うならORです。 これが真なら「どちらかが押さえている」となります。 同時押しかどうかを調べるなら、 B=(A AND (#L OR #R))==(#L OR #R) ですね。書き方は他にもあると思いますが。
0そうだね
プレイ済み
返信[2]
親投稿
みむ*mim hidemimtp
あ、すみません、「L,Rボタンを入力した時のみButtonの戻り値がBに入る」で正しいです。私の勘違い。 値として見るなら、L,Rだけの入力内容、 論理値として見るなら、どちらかが押されたら真、 です。 両方の見方ができます。
1そうだね
プレイ済み
返信[1]
親投稿
みむ*mim hidemimtp
正確には、「L,Rのどちらかが押されたら」ですね。 &Hは、それが16進数で記載されている事を表します。 ANDは、2進数での論理積を表します。 BUTTONの戻り値は、  RL YXBA 右左下上 &H300は2進数で  11 0000 0000(空白は意味ナシ。見やすく書いただけ) この2つの「両方が1なら、1を返す」のがANDです。 もしLだけ押されたら、  01 0000 0000(BUTTON()の戻り値)  11 0000 0000(&H300)  ------------  01 0000 0000(BUTTON() AND &H300) なので、結果は「真」(0ではない)となります。
0そうだね
プレイ済み
返信[14]
親投稿
みむ*mim hidemimtp
拡大・縮小ロジックを考えて組んでみるのも楽しいと思いますよ。 中間色を使用しない、SPSCALEと同じ縮小方法なら座標の小数点以下を四捨五入してその整数座標の色を取得するだけだし、中間色を入れてきれいに縮小したいなら、例えば計算した座標が「3.25」だったとすると、座標3の色を75%、座標4の色を25%の割合で混ぜればいいわけです。 細かいことを加味しだすとややこしいですが、基本的な部分は大して難しくないですよ。
0そうだね
プレイ済み
返信[12]
親投稿
みむ*mim hidemimtp
画面外貼り付けは、できます。マイナスでもOK GCOPYは、1番目のパラメータで指定したGRPから、GPAGEで指定しているページにコピーします。省略時はGPAGEの同じページからコピー。 拡大・縮小はありません。自分で書く必要があります。
1そうだね
プレイ済み
返信[21]
親投稿
みむ*mim hidemimtp
アマチュアゲームにありがちな理不尽さが全く感じられなくて、とても丁寧な作りでレベルが高い! これだけ作っておいて、グラフィックや音楽などはほぼ(全て?)オリジナルなのが、逆に「プチコンのお手本」みたいでスゴイですね。 夢中になってやっていて、最初のボスでやられて、最初からやりなおし・・・そういえばセーブとかしてなかったorz
1そうだね
プレイ済み
返信[22]
親投稿
みむ*mim hidemimtp
こんな感じでしょうか。 92行目~115行目まで。 C45V33R4(CAVE2)
1そうだね
プレイ済み
返信[3]
親投稿
みむ*mim hidemimtp
そうです!! 添え字は0から9までの10個ですけどね。
1そうだね
プレイ済み
返信[1]
親投稿
みむ*mim hidemimtp
「表」のようなものに使います。 ■■ ■□ 上のようなマップなら、 MP[0,0]=壁 MP[1,0]=壁 MP[0,1]=壁 MP[1,1]=床 他にはRPGの敵のステータスとか。 敵番号0:HP10 ,MP4 敵番号1:HP15 ,MP2 なら、 MONS[0,0] =10 MONS[0,1] =4 MONS[1,0] =15 MONS[1,1] =2
0そうだね
プレイ済み
返信[11]
親投稿
みむ*mim hidemimtp
最初にされていたように座標で判定する場合、スプライトのドット座標ではなく、BGキャラ単位で判定するといいですよ。 BGCOORD 0,X+8,Y+8,1 OUT BGX,BGY IF BGX==7 && BGY==5 THEN ~ やり方は色々あるし、どれが正しいというのもないので、作りやすいやり方法を見つけてください。
0そうだね
プレイ済み
返信[10]
親投稿
みむ*mim hidemimtp
スプライトとBGの判定をするのは、BGGETを使うのが一番多いパターンだと思います。 ただこういうRPGっぽいのだと階段が複数あったりもするので、座標で判定するのも正しいやり方です。 BGGETを使うなら、キャラの原点が左上だとすると、 BGET = BGGET(0,X+8,Y+8,1) AND &HFFF IF BGET==&H362 THEN ~ &H362が下りる階段のキャラ番号。 「AND &HFFF」するのは、取得できる値がキャラ番号+アトリビュート(回転反転など)なので、そのうちのキャラ番号だけを取るための処理です。
0そうだね
プレイ済み
返信[5]
親投稿
みむ*mim hidemimtp
0ビット目が、C AND POW(2,0) 1ビット目が、C AND POW(2,1) 2ビット目が、C AND POW(2,2)・・・・ をつなげればいいんじゃないかな。 これをFOR文などで回しますが、桁数は LOG(C,2) からうまく取ってください。 BIN$、欲しいですね。たまにチェックとかで必要になります。
3そうだね
プレイ済み
返信[4]
親投稿
みむ*mim hidemimtp
あんどさんのおっしゃる「ぴったり」を回避するか、 思考を変えて、 キャラの背景をBGGETするか、 キャラの移動をを8or16ドット単位にするか、 ってのも選択肢ですね。 ちなみによく見かける X==0 AND B==0 理論的に間違ってはいないのですが、こういう論理式(正しいか正しくないかの2択)同士をつなげる場合は、 X==0 && B==0 と書くのが一般的です。 ANDの意味を理解してあえて使用されているのであれば、 それは書き手の自由なので異議はありません。
1そうだね
プレイ済み
返信[11]
親投稿
みむ*mim hidemimtp
USEは、SLOT0をRUNした時の事前チェックと同じ動きではないでしょうか。 DIM/VARの働きは 1.シンボル登録 2.型の決定 3.代入 の3つだと思いますが、事前チェック(=USE)では1のみを行い、他は実行時、という仕様だと認識しています。 変数の登録だけをして型や内容を決めないのは、DEFでも起こりますね。 DEF A OUT B END これは実行時にエラーが出ます。中に「B=0」などと記述しなければなりません。かといって「DIM B」などと書くと、今度は重複エラー。シンボルだけ登録されている状態です。 これは以前にハカセから、「DEFは出力先の変数の型が確定するのが最初に代入した時だったはずなので、型が定まらない状態という事でエラーになっている可能性があります」との回答を頂きました。 ていうかそもそも皆さん、そんなにコードの途中でDIM/VARを書かれるんですか??
0そうだね
プレイ済み
返信[8]
親投稿
みむ*mim hidemimtp
出来たとのことなのでもう不必要だと思いますが、他の方の誤解が無いように書いておきますと、3つ前の返信で書かれているソースだとプログラム自体のファイルの存在を見に行ってしまっています。 プログラムファイルとセーブファイルは別です。同名でセーブすると、このプログラムをSLOT1などで実行していた場合、PRG0の内容で上書きされ、プログラムが消えます! また、Aは「ファイルの存在フラグ」なのか「セーブしたい内容」なのか、ごっちゃになっています。やるなら、DIM B[1]を最初に書いた上で、 CF=CHKFILE("DAT:○○○") IF CF==0 THEN @E ELSE @D @E (ゲームの説明) @D (ゲーム本体) ~~~ @SAVE ’ゲーム本体から、セーブしたい時にGOSUBする B[0]=A SAVE "DAT:○○○",B RETURN
0そうだね
プレイ済み
返信[19]
親投稿
みむ*mim hidemimtp
そして移動予定座標の4隅を判定。 4隅とも障害物でなければ、実際の座標を新座標に置き換える。 IF (BGGET(0,X+XX,Y+YY,1) AND &HFFF)!=416 && (BGGET(0,X+XX+15,Y+YY,1) AND &HFFF)!=416 && (BGGET(0,X+XX,Y+YY+15,1) AND &HFFF)!=416 && (BGGET(0,X+XX+15,Y+YY+15,1) AND &HFFF)!=416 THEN  X=X+XX  Y=Y+YY ENDIF
1そうだね
プレイ済み