Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
138 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 5872
次のページ(過去)
返信[5]
親投稿
otta777 otta777a
PCのブラウザーだとずれて見えますね。こんな感じで表示します。
2そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
簡単に表示するならPRINT命令でグラフィックキャラクターを 組み合わせて表示するのも良いかと思います。 PRINT "┌──────┐" PRINT "│かいわを  │" PRINT "│ひょうじする│" PRINT "└──────┘"
3そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
INPUT命令を使わないって事は十字キーで選択肢を選んで Aボタンで決定というような操作方法でいいのですか? BUTTON関数、IF命令、LOCATE命令、PRINT命令の組み合わせで 実装できますね。
1そうだね
プレイ済み
返信[17]
親投稿
otta777 otta777a
FLAG=FALSE GOSUB @SUB IF FLAG==TRUE THEN GOTO 別のプログラム 処理 @SUB 処理 IF 有る条件 THEN FLAG=TRUE:RETURN 処理 RETURN こんな感じになるかと
1そうだね
プレイ済み
返信[16]
親投稿
otta777 otta777a
えっと有る条件を満たしたときにフラグになる変数に TRUEを代入しRETURNしてGOSUBで呼び出した次の行で そのフラグ変数がTRUEの時に別のプログラムにGOTOで ジャンプするって方法はどうですか?
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
A~Zのアルファベットを使用したい場合は14行目を A=INSTR("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",A$) とすれば0~35までの36種類のBGキャラクターが表示できます。 INSTR命令でお目当ての文字が文字列の何番目にあるかを 取得して表示するBGキャラクターを選んでいます。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
0~9、A~Fまでで良ければ14行目を A=VAL("&H"+A$) とすれば0~15まで16種類のBGキャラクターが表示できます。 DATA命令のデータを10進数から16進数に解釈を変更して 表示しています。
0そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
B=BUTTON() VX=SGN(B AND 8)-SGN(B AND 4) VY=SGN(B AND 2)-SGN(B AND 1) 対象のビットがONの場合正の数が返ってくるので SGN関数で符号を取得すると+1か0が返ってきます。 これを利用して十字ボタンを押したときの 移動量を求めます。
1そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
BGGET命令の文法などはヘルプを参照して下さい。 当たり判定を付けるにはキャラクターの移動先の BGキャラクター情報を取得して障害物で無かったら 移動するという方法が考えられます。 CH=BGGET(0,PX+VX*16,PY+VX*16,1) IF CH!=WALL THEN PX=PX+VX:PY=PY+VY SPOFS SPPL,PX,PY
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
INKEY$で入力文字を取得しているんだったら文字を消す 条件をBボタンが押されたか入力された文字がCHR$(8)と してみて下さい。←キーで消せるようになると思います。 その場合はBボタンじゃ無くてYボタンで1文字消すに 変えた方がいいかもしれませんね。
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
"はCHR$(34)に置き換えれば置き換え出来ると思います。 10行目を START=INSTR(GET$,"("+CHR$(34)) とすれば文字列 (" が有る位置を取得できます。 CHR$(34)をたくさん記述する必要があるなら文字変数に 入れておくのも手です。 QT$=CHR$(34)
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
【続き】 ACLS BGPUT4 0,5,3,175 BGPUT4 0,8,7,173 END BGキャラの組み合わせによってユーザー命令の中の BGPUTの組み合わせも変える必要があります。 【訂正】 前の投稿で「関数」→「ユーザー命令」に読み替えて下さい。
0そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
BGは「16ドット×16ドットのキャラを並べて大きな画面を 作ります」と説明書の34.BGにも記載があるとおり BGキャラのサイズは固定です。 BGキャラ複数を組み合わせて大きなBGを表示したいのなら 複数のBGPUT命令を羅列する関数を作るのもひとつの手です。 DEF BGPUT4 L,X,Y,C VAR I,J FOR I=0 TO 1 FOR J=0 TO 1 BGPUT L,X+J,Y+I,C+J+I*32 NEXT NEXT END
0そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
NEW命令単体では全てのスロットのプログラムが消えます。 特定のスロットのプログラムだけ消したい場合は NEW スロット番号 と入力すると指定したスロットのプログラムだけ消えます。
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
すいません。 文字列はダブルクオーテーションで囲まないとエラーに なってしまいます。 スライム→"スライム"の様に変更して下さい。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
あらかじめ決めたデータを扱う場合にDATA命令で情報を 記述してREAD命令で変数に読みこみます。 MM=3 DIM NAME$[MM],STR[MM],DEF[MM] DIM MHP[MM],EXP[MM],GOLD[MM] FOR I=0 TO MM-1 READ NAME$[I],STR[I],DEF[I],MHP[I],EXP[I],GOLD[I] NEXT DATA スライム,2,2,4,1,2 DATA おおねずみ,3,1,6,2,3 DATA がいこつ,7,4,4,5,4
0そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
学校や市の図書館でBASICの入門書を探してみるのは どうですか?購入はできませんが1~2週間くらい 借りることが出来ると思います。
1そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
エラーはDuplicate variableでした。 DIM命令はサブルーチンの中ではなくプログラムの始めに記述してください。
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
プチコン3号ではDIM命令で配列定義をする前に 配列変数を使用するプログラムが有ると Undefined variableというエラーが発生します。 サブルーチン側にDIM命令を記述すると上記の様な 状態になりエラーが発生します。 【続く】
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
%がMODに変わったのは整数型の変数を表すのに昔の BASICで使われていた変数名の後ろに%を付けるという 仕様を導入したためです。 プチコンmkIIでは整数型の変数が無かったのでC言語などで 利用されていた%演算子で剰余が得られました。
0そうだね
プレイ済み