Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
125 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 4598
次のページ(過去)
返信[7]
親投稿
ΖΕΧ ZEX256
DIRECTモードで LOAD"PRG1:SYS/KANJITBL と打ち、LIST 1 使いたい漢字をコピペ りゅうまごさんの「RMG IME」使えばローマ字入力も可能 https://miiverse.nintendo.net/users/ryumago くろねんどさんのバグ修正、軽量化版 公開キー【NRKPEEKD】
2そうだね
プレイ済み
返信[1]
親投稿
ΖΕΧ ZEX256
@Bが無いのに?
1そうだね
プレイ済み
返信[92]
親投稿
ΖΕΧ ZEX256
「プチコン3号プチガイドブック」が消えてるので復活して欲しい。 http://smileboom.com/special/ptcm3/nindori/2015/03/15/media/putit_furoku.pdf
1そうだね
プレイ済み
返信[1]
親投稿
ΖΕΧ ZEX256
ヒント BGGETの座標系フラグ1は、指定座標1ドットで指定する、 でもスプライトは1ドットじゃない!幅と高さがある。
1そうだね
プレイ済み
返信[6]
親投稿
ΖΕΧ ZEX256
これでフィールドマップを表示できるようになりました。 DATAの読み出し位置をRESTORE命令で、変更できますが割愛します。 RESTOREと入力し画面右上の[?]を押すと説明が表示されます。 DATA_MAP【DADAXZ3】 文字でMAPを書くサンプルです、参考になれば。
1そうだね
プレイ済み
返信[5]
親投稿
ΖΕΧ ZEX256
この例では、BGを横一行しか表示していません。 縦方向にもBGを敷き詰めたいなら、DATA文に「ここで1行の終わりだよ」とする印しとして、例えば 0 を書いておきます。 DATA 97,100, 97, 97, 99, 99,0 DATA 100,100,100, 97, 97, 97,0 DATA 101,101,101,100,100, 97,-1 読み込んだデータが 0の場合、1行下に移動し、更に左端に移動して、続きのBGキャラを表示すれば良いのです。 L=0:X=0:Y=0 WHILE 1 READ NO IF NO < 0 THEN BREAK IF NO ==0 THEN Y=Y+1:X=0 '←Y軸を一つ下に移動し、X軸を左端に移動している BGPUT L,X,Y,NO X=X+1 WEND
0そうだね
プレイ済み
返信[4]
親投稿
ΖΕΧ ZEX256
この例では、読み出したデータをそのまま文字で表示しました。 BG画面に地面を表示したいならばBGPUT命令を使います。 L=0:X=12:Y=8:NO=100 BGPUT L,X,Y,NO '←画面中央に林のBGキャラを表示 データを読み込んでBGに表示 DATA 97,100,97,97,100,101,0,-1 L=0:X=0:Y=0 WHILE 1 READ NO IF NO < 0 THEN BREAK BGPUT L,X,Y,NO '←読み出したNOのBGキャラを表示 X=X+1 '次のBGの表示位置を1つ右にずらしている WEND
0そうだね
プレイ済み
返信[3]
親投稿
ΖΕΧ ZEX256
DATAの最後まで読み込み、その後、更に読み出そうとすると、データが無いためエラーになるのです。 データの数が予め決まっているのなら、これでも良いでしょう。 ですが、DATA文に書くデータは大抵、不特定多数です、有れば有っただけ読み出して使いたい。 そこでDATA文に記述するデータの最後に、「ここでデータの終わりだよ」とする印しとして、 たとえば-1を書いておきます。 DATA 97,100,97,97,100,101,0,-1 無限ループで読み出しして、読みだしたデータが-1なら、ループを抜ければ良いのです。 WHILE 1 READ NO IF NO < 0 THEN BREAK '変数 NOがマイナス値ならループを抜ける ? NO WEND
0そうだね
プレイ済み
返信[2]
親投稿
ΖΕΧ ZEX256
READ命令を連続で行えば、DATA文の続きを読み出せます。 READ NO:? NO READ NO:? NO READ NO:? NO READ NO:? NO 毎回こんな記述をしたのではDATA文にした意味が無いので、ループ処理の中で読み出します。 FOR I=0 TO 6 READ NO ? NO NEXT この場合FOR文で7回ループして読み込んでいます。 もし、8回読み込んでしまうとデータが無いのでエラーになります。
1そうだね
プレイ済み
返信[1]
親投稿
ΖΕΧ ZEX256
参考になれば DATA_MAP【DADAXZ3】 CHIRO  【J5343VAE】
6そうだね
プレイ済み
返信[1]
親投稿
ΖΕΧ ZEX256
DATA文はプログラム中に沢山データを記述する場合に使用します。 DATA 97,100,97,97,100,101,0 DATA文自体は何も処理をしません、DATA文の基本的な使い方は、変数に読み出して使います。 DATA文に記載されたデータを読みだすのがREAD命令です。 READ NO ? NO これで先頭のデータが変数 NO に読み出され、それを表示しています。
0そうだね
プレイ済み
返信[7]
親投稿
ΖΕΧ ZEX256
AHO#ていふじょうさん あなたに訊きたい。 Homebrewなんて起動を許したら、エミュレータで溢れかえり、有償ゲームは全く売れなくなるでしょうね。 そんなことメーカーが許すと思いますか?
2そうだね
プレイ済み
返信[41]
親投稿
ΖΕΧ ZEX256
再帰呼び出しでは、終了条件を正しく判定しないと無限に再帰呼び出ししてしまい、メモリが不足してエラーになる。 (命令・関数・サブルーチン呼び出しはメモリを消費するため、帰ってこないとメモリが開放されないためメモリが不足になる。)
0そうだね
プレイ済み
返信[40]
親投稿
ΖΕΧ ZEX256
自作命令・関数からネストして自作命令・関数を呼び出すこともできる。 自作命令から、自分自身の関数を呼び出すことも当然できる。 これを再帰呼び出し(リカーシブコール)と呼ぶ。 COUNT_DOWN 10 '自作命令呼び出し DEF COUNT_DOWN CNT '←カウントダウン表示命令 VSYNC 60 '←1秒くらい待つ ? CNT '←カウント表示 IF CNT>0 THEN '←カウントが0より大きければ CNT = CNT -1 '←カウンデウン COUNT_DOWN CNT '←再帰呼び出し ENDIF END
0そうだね
プレイ済み
返信[39]
親投稿
ΖΕΧ ZEX256
この場合、自作命令を呼んだとき変数X,Yが書き換わってしまい LOCATE X,Yが正しく実行できずエラーになってしまう。 こんなことにならないために、自作命令・関数内で変数を使う場合はローカル変数を作り、それを使う。 A=1:B=2 SETA:SETB ? A,B DEF SETA A=10 '←呼び出し元の変数Aを壊してしまう END DEF SETB VAR B '←ローカル変数Bを宣言 B=20 '←ローカル変数Bを変更しても呼び出し元の変数Bは変わらない END これを実行すると 10 2 と表示される
0そうだね
プレイ済み
返信[38]
親投稿
ΖΕΧ ZEX256
自作命令・関数内で独自に変数を使った場合、偶然呼び出し元で使っている変数と名前が被ってしまいバグになることがある。 例えばこんな場合だ。 X=10:Y=5 '←呼び出し元では変数X,Yを使っている ICHIGO_GO '←自作命令を呼ぶ LOCATE X,Y:? "できるかな?" DEF ICHIGO_GO '←自作命令 SPSET 0,0 '←スプライト0番に苺を設定・表示 FOR Y=0 TO 240 STEP 16 '←変数Yを使った FOR X=0 TO 400 '←変数Xを使った SPOFS 0,X,Y '←苺のスプライトの表示位置を変更する NEXT NEXT END
0そうだね
プレイ済み
返信[37]
親投稿
ΖΕΧ ZEX256
命令を自作できるなら関数も自作できる。 DEF~ENDの組み合わせで、関数名の後ろに括弧を書き、引数がある場合、括弧の中に書く。 関数は戻り値があるのでRETURNの戻り値を書く DEF IS_ODD(VALUE) '自作関数 奇数判定 RETURN VALUE AND 1 '←引数が奇数なら1、偶数なら0を返す END '↑自作関数、自作命令は処理の前に書くこともできる、この場合、呼び出すまで中身は実行されない ? IS_ODD(5) '自作関数の戻り値を表示している ? IS_ODD(10)
0そうだね
プレイ済み
返信[36]
親投稿
ΖΕΧ ZEX256
LPRINT 10,5,"まほっ" '←自作命令LPRINT LPRINT 10,6,"プログラミング言語全てわかるマン" LPRINT 10,7,"舛添要一の朝までファミコン" END '←プログラムの終了 DEF LPRINT X,Y,P$ '自作命令 LOCATE X,Y:? P$ END '←自作命令の終わりで、コール元に戻る
0そうだね
プレイ済み
返信[35]
親投稿
ΖΕΧ ZEX256
↑このサブルーチンを使うには、事前に変数をセットしないといけないので面倒だ。 そんな時は、自作の命令があれば便利だ。 自作命令はDEF~ENDの組み合わせで書く 命令に引き渡す引数がある場合は、命令名の後ろに書く DEF 命令名 [引数1][,引数2][,引数3]・・・ 命令の処理 END
0そうだね
プレイ済み
返信[34]
親投稿
ΖΕΧ ZEX256
特定の決まった処理(ルーチン)を、プログラムの複数箇所から呼び出せると便利なことがある。 そんな時はサブルーチンを使う。 サブルーチンはGOSUB命令で呼び出し、サブルーチンの最後に書くRETURN命令で、呼び出し元の次の命令に戻ってくる。 X=10:Y=5:P$="こうげき":GOSUB @LPRINT X=10:Y=6:P$="にげなきゃだめだ":GOSUB @LPRINT X=10:Y=7:P$="おかねだいじに":GOSUB @LPRINT END '←プログラム終了 @LPRINT LOCATE X,Y:? P$ RETURN
0そうだね
プレイ済み