Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
112 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3272
次のページ(過去)
返信[42]
親投稿
otta777 otta777a
整数型変数で>>のビットシフトの挙動におかしなところがあるのを見つけました。 ? HEX$(&H80000000>>2) とすると E0000000 と表示されます。 シフトしたときに最上位ビットに0をセットするのでは無くシフト前の状態を 維持してしまいます。シフト回数分だけこの処理がされているようです。 今のところはシフト後にAND命令で有効なビットだけ取り出しています。 シフト回数分0をセットするように修正をお願いします。 <<ではきちんとシフト回数分0がセットされています。
1そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
テレビの番組を選ぶ矢印の位置がずれています。 カーソル位置か番組の表示位置を変えて番組名の左に矢印が表示される 様にした方が自然だと思います。 テレビの番組内容を表示するときにY座標が29の時は文字列の後に セミコロンを付けると文字がスクロールしなくなりますよ。 それが嫌で23行目から表示するようにしたのではないかと推測。
2そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
一部しか見ていませんが気が付いた事を。 Xボタンを押して表示されるメニューでトレーナーズカードを表示した時に Aボタンを押しっぱなしにしているとメニューに戻ってしまいますね。 カードを表示後にボタンのオフチェックをしてから何かボタンを押したら メニューに戻るようにした方がいいと思います。 トレーナーズカードを表示後にとじるを選ぶとIllegal functionになります。 XSCREEN 3を行うとそれより前にSPSETで指定したスプライトの 設定が無効になってしまうためだと思います。 またマップ画面も消えてしまうのでXボタンを押したときのメニューを 閉じるときにはマップの表示とスプライトの設定をする必要が あると思います。
2そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
>ぐーぐさん INBY%は1024でないとかけ算をして10ビット上位にシフトできないですよ。 データの変換のためのFOR~NEXTのループ内にIF命令が入ると 処理速度が落ちてしまうんでIF命令を使わなくてもいいような 細工をすると高速化できます。 自分の場合はFOR~NEXTでSTEP 2で増分を2としてループ内では I%+1で配列の数値を参照するようにしてIF命令を排除しています。
0そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
画像サイズの高さ、幅が奇数の場合にエラーになっちゃうバグが残ってました^^;;; 13行目のDIM命令の前に IF LEN(B%) MOD 2!=0 THEN PUSH B%,0 を追加して下さい。 配列変数の要素数が奇数になる場合にB%[I%+1]の部分で配列変数の 要素数の範囲を超えてしまっていました。
1そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
>あまさと しおん ええ、そうです。ただ領域指定が出来ないんで上画面の400×240の エリアにしか描いていなくても512×512ドットのサイズでセーブ されるため512KBのサイズになってしまうんですよ。 背景画像を複数実装してるゲームで1プロジェクトに収まらない ものもあるので絵を描いている範囲だけGSAVEでセーブですれば と思ったら整数型配列変数は32ビットで思った程 小さくならなかったんです。色変換フラグを物理コードのままに 指定すれば1ドット16ビットなので1つの変数に2ドット分の情報を 持たせて半分の容量にできるのでは?と考えました。 圧縮は1/2にしかなりませんがビットシフトとOR命令で行ってるんで スピードは速いと思います。
1そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
公開キー:E23X7WQE
0そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
GSAVE ファイル名,ページ番号,X座標,Y座標,幅,高さ ファイル名にはGRPn:やDAT:などのリソース名は含まない事。 ページ番号で指定したグラフィック画面の座標X,Yから幅、高さの サイズのグラフィックをファイルにセーブする。 GLOAD ファイル名,X座標,Y座標,幅,高さ ファイル名にはGRPn:やDAT:などのリソース名は含まない事。 PAGE命令で指定された描画ページにグラフィック画面の 座標X,Yから幅、高さのサイズでファイルからロードする。 セーブしたときと同じ幅、高さを指定しないと絵が崩れる。 引数のチェックは省略してます。
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
>みむ*mimさん GSAVE命令で色変換フラグを「物理コードのまま」にして整数型配列変数を 使うと上位16ビットは0なんですよ。上位16ビットに次のドットの情報を 格納すればファイルのサイズは半分に出来るかもって思いつきで 作ったのがこの関数です。
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
動作確認用のプログラム部分。
0そうだね
プレイ済み
プレイ日記
otta777 otta777a
グラフィック画面の一部をSAVE "GRPn:ファイル名"でセーブするより小さいサイズでセーブする命令を作ってみました。400×240のサイズで192KB程のファイルになります。そのファイルをグラフィック画面にロードする関数も同梱してます。
7そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
この関数からの戻り値を記録しておいてから関数を呼び出して 戻り値と記録しておいた戻り値を比較すれば押した、離したの検知は 出来そうですが、ユーザー関数内で検知する方法は思いつきませんでした。
1そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
すいません。MGと記述したのはMBの間違いでした。 変数の数値の小数第一位まで求める場合は ROUND(変数*10)/10で行けると思います。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
システム変数FREEMEMはバイト単位で値を返してくるのでこの場合は Byte→MBとなりますね。 Byte/1024でKB KB/1024でMG MG/1024でGBとなります。 FREEMEMの上限は8MB程度なのでGBまで変換すると小数に なってしまいますよ。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
STICK OUT関数で取得できるスライドパッドの情報の変化を検知して 押した瞬間、離した瞬間が検知出来そうですが 左に操作している状態からスライドパッドを離した場合と右に 操作した場合の区別の付け方が分からないので離した瞬間を どう検知したらいいかは思いつきませんでした。
2そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
スロット0~3で実行するプログラムとSMILEキーから起動された プログラムでは一部命令で挙動の違いがあるのでプログラムの 起動時にチェックする機能を付けようとした名残だと思ってます。 BACKTRACE命令でプログラム起動直後に実行中のスロット番号を チェックしてスマイルキーから起動しなかった場合にメッセージを 表示してプログラムを終了する細工している自作のツールが あります。
1そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
GPUTCHR命令で入力すべき文字を描画する前にB$に文字列を 代入してGPUTCHR命令では文字列を直接指定するのでは無く B$を指定するようにすれば出題と判定で同じ文字列を参照するため 打ち間違いがなくせます。 あとB$に設定する内容をREAD命令でDATAから読み込むようにすれば 少し改造は必要ですが25行から31行目までのプログラムで対応できる と思います。
1そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
宝箱を開けたかどうかはフラグで管理されてますか? 宝箱のあるマップを読み込んだ後にフラグをチェックして 既に開けていたら宝箱のBGを床、または開いた宝箱のBGに 書き換えればよいかと思います。
1そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
オフセットとは補正という意味です。 画面の左上がBG画面のどの位置になるかをドット単位の 座標で指定できます。 BGのキャラクターサイズを16(初期値)にしている場合は BGOFS 0,16,16でレイヤー0のBGをの画面左上をキャラクタ単位の 座標1,1から表示します。 ACLS BGFILL 0,2,2,4,4,1:CLS:PRINT "offset 0,0" WAIT 120 BGOFS 0,16,16:CLS:PRINT "offset 16,16" WAIT 120 BGOFS 0,32,32:CLS:PRINT "offset 32,32" WAIT 120 これでBGOFS命令の働きが分かると思います。
1そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
BGPUT命令はBGキャラを描画する命令なのでBGのオフセットは 変更されません。 そのためBGOFS ~ OUTで座標を取得しても0のままになります。
0そうだね
プレイ済み