Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
121 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4172
次のページ(過去)
返信[1]
親投稿
otta777 otta777a
1.配列変数に読み込んだBGのデータをBG画面に描画する命令 BGLOADを使用していない。 BGSHOW命令は対象のレイヤーのBGを表示するか非表示にするかの 指定をする命令です。ヘルプを表示すると命令の説明が見られるので BGLOADやBGSHOWの命令の説明をよく読んでみて下さい。 2.レイヤー0(SC_BG1_L0")のBGデータしかロードしていないので他の レイヤーに描画されていたBGは表示されません。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
ユーザ定義命令で引数として文字列変数を渡しているため指定するなら G "@A"とラベル名を""でくくったラベル文字列で指定する必要があります。 で、DEF命令のヘルプに書かれていますが、DEF~END範囲内で GOSUB命令を使う場合はスロット番号を指定する必要があります。 プログラムを実行するスロットが固定化されて汎用性が低下するので あまりお勧めできない方法だと思います。
3そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
単純に演奏中のBGMが終わってから別のBGMを演奏したいのなら BGMCHK関数で演奏中のトラックの演奏が終わってるか調べて 終わっていたら次のBGMを演奏するようにするのはどうでしょうか?
0そうだね
プレイ済み
返信[14]
親投稿
otta777 otta777a
【訂正】 数値を文字コードに変換して→数値を文字コードとして文字に変換して の間違いです^^;;;
2そうだね
プレイ済み
返信[13]
親投稿
otta777 otta777a
2行目 配列変数の指定とダイアログ表示フラグが逆ですね。 7行目 配列変数BFに格納されている数値を文字コードに変換して BF$に格納するという事でいいのかな? でしたらMID$関数を使う必要は無いですよ。CHR$関数で文字コードを 文字に変換してBF$に結合すれば良いと思います。
1そうだね
プレイ済み
返信[11]
親投稿
otta777 otta777a
私のTXT形式ファイル→DAT形式ファイルで文字コードをDAT形式で セーブした場合には配列変数に読み込んだ数値配列変数の 文字コードを文字に変換して文字列変数に結合する方法が使えます。 数値配列変数の内容が0未満の負の数だったり、小数点を含む 実数だった場合はひかひかるさんのご指摘の通り、STR$で数値を 文字に変換した後に区切り文字を追加して結合していく方法になります。 その場合はTXT形式ファイル→DAT形式ファイルの変換も区切り文字ごとに 配列変数に格納するプログラムを作る必要がありますね。
1そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
PUSH/POPのメモリリークは3.1.0で修正されたとは報告されていますが 自分も問題が起きなくなったかまでは確認をして無かったです。 もしメモリリークが心配でしたらDIM命令で充分大きな要素数で 配列変数を宣言してPUSH命令を BUF[I]=ASC(MID$(MES$,I,1))に置き換えるのも手です。
1そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
TXT形式のファイルは文字列変数に読み込まれるのでその文字列を 1文字ずつ文字コードに変換してDAT形式でセーブする配列変数に 格納してDAT形式でその配列変数をセーブしています。
2そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
DIM BUF[0] LOAD "TXT:ファイル名",MES$ FOR I=0 TO LEN(MES$)-1 PUSH BUF,ASC(MID$(MES$,I,1)) NEXT SAVE "DAT:ファイル名",BUF こういうことでいいのかなぁ?
3そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
BGのキャラクターサイズ16の場合は1024、キャラクターサイズ32の 場合は256を指定すると0番に設定されているグラフィックが 表示されます。 キャラクターサイズ8の場合は0~4095まで使用するため0番に 設定されているグラッフィックは表示できません。
4そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
BGSCALE命令でレイヤー単位の拡大、縮小は可能です。 倍率は50%~200%の範囲です。 キャラ単位で拡大、縮小をすることは出来ません。
2そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
READ命令で読み込むデータの場所を指定するにはRESTORE命令で ラベルを指定します。この指定でラベル以降のDATAを読み込みます。 これをせずにREAD命令を使用するとプログラムの一番最初の DATAを読み込みます。詳しくはREAD命令のヘルプを参照して下さい。 分からないことがあった場合に関連命令のヘルプを参照すると 解決することもありますよ。
0そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
Yボタンが1文字削除というのはプチコン3号の入力モードでYボタンを 押すとBSキーと同じ動作をするためだと思いますよ。
2そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
あと接戦になって自分のHPが1になったときに102行目、107行目の 条件に当てはまらないのでゲームオーバーになっちゃいますよ。
2そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
96行目の次に敵HPが1未満になっていたら@Mへジャンプ 100行目の次にプレイヤーHPが1未満になっていたら @ENDへジャンプ、そうでなければ@T2へジャンプとした方が 相打ちも起こらないので良いかと思いました。 必ず先攻を取れるのでプレイヤーが有利ですけど。^^;;;
1そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
102行目のIF命令でプレイヤーのHPが1より多い場合@T2にジャンプするため 105行目のIF命令は実行されません。 103行目でプレイヤーのHPが1未満の場合に@ENDにジャンプします。 プレイヤーのHPが1の場合に初めて敵HPの値を判断するため自分のHPが 1より多い場合は敵HPの判別が行われません。 その場合は敵のHPが1未満になっても勝利と表示されないということになります。
2そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
【訂正】 >入れておけばBGPUT命令で 利用できます。が抜けていました。 > C=INSTR("□HG■",MID$(D$,X,1) 末尾の括弧が抜けてました。 正しくはC=INSTR("□HG■",MID$(D$,X,1))です。
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
RESTORE @MAPDATA:Y=0 REPEAT READ D$: IF D$=="@END" THEN BREAK FOR X=0 TO LEN(D$)-1  C=INSTR("□HG■",MID$(D$,X,1) IF C!=-1 THEN BGPUT 0,X,Y,BGC[C] NEXT:Y=Y+1 UNTIL FALSE @MAPDATA DATA "■■■■■■■■■■■" DATA "■□□□□■□□□G■" DATA "■□■■□□□■■□■" DATA "■H□□□■□□□□■" DATA "■■■■■■■■■■■" DATA "@END"
3そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
INSTR関数で文字列の中から任意の文字が何個目にあるか 検索することができます。この関数を利用すると自分が指定した 記号が何番なのか取得できます。 A=INSTR("■HG□",C$) これを元にBGのキャラ番号を取得できるように配列変数にキャラ番号を 入れておけばBGPUT命令で DIM BGC[4] COPY BGC,@BGCDATA @BGCDATA DATA 416,873,864,416
3そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
MIC系命令で録音した音声を簡単にPCMSTREAM命令で 再生レートを変えて再生出来るんで面白い事ができますよ。
2そうだね
プレイ済み