したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

QB64 / PC-BASIC(GW-BASIC) 総合スレ @ Next 8

1名無しさん:2025/06/05(木) 07:44:14
QB64
https://qb64.com/

QB64は、QBasic / QuickBASIC 4.5互換性を保持し、Windows、Linux、およびmacOS用の
ネイティブバイナリをコンパイルする最新の拡張BASICプログラミング言語です。
ーーーー

PC-BASIC Linux/Mac/Windows版
https://github.com/robhagemans/pcbasic/releases/tag/v2.0.7

127名無しさん:2025/06/05(木) 10:41:19
補足 SUB-END SUB、 FUNCTION-END FUNCTIONを使う上での留意点

・ SUB-END SUBではブラケットを使わない表記が認められる 例: proc P1,P2など

・ プロシージャ内では外で定義された変数は無効
・ プロシージャ内で定義された変数はローカル変数扱い
・ DIM SHAREDで定義された変数はグローバル変数扱い
・ プロシージャ内で定義された変数と外で定義された変数は、DIM SHAREDで定義しない
 限りは別々の扱い

・ ハンドル変数とそのワークエリアはプロシージャを出入りしてもその内容は保持される

・ QB64内部でリカーシブ(再帰)の判定はしないので、原則的には使わない

・ 99BASIC、あるいは古い世代のBASICから移る場合は、始めはラベルとGOSUBを使って、
 ループ変数の重複が増えてきた場合にSUB-END SUB、 FUNCTION-END FUNCTIONを使う

…ってとこかw

128名無しさん:2025/06/05(木) 10:41:59
ここで躓いたら大きいプログラムは作れないからなwwwww

129名無しさん:2025/06/05(木) 10:42:09
ワロッチw

130名無しさん:2025/06/05(木) 10:42:20
ゲーム屋小僧、続・漢字表示はどうする?w

131名無しさん:2025/06/05(木) 10:42:33
今のところ予定はないけどな、99BASICからフォントを引っ張ってきてry

132名無しさん:2025/06/05(木) 10:42:48
仮想コンソール?w

133名無しさん:2025/06/05(木) 10:43:00
仮に仮想コンソールをやったとしても、充分な余裕ありということでw

134名無しさん:2025/06/05(木) 10:43:10
画面のレイアウトは?w

135名無しさん:2025/06/05(木) 10:43:37
一例を挙げると、こういう感じでw

┌───────────────────────┐←────背景色 / 背景画固定
│┌───────────────────────┐←───BG画面
││┌───────────────────────┐←──スプライト用バッファ
│││┌───────────────────────┐←─パーティクル用
││││┌───────────────────────┐←テキスト画面
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
└││││                       │
 └│││                       │
  └││                       │
   └│                       │
    └───────────────────────┘

136名無しさん:2025/06/05(木) 10:43:50
それだけの余裕あるの?wwww

137名無しさん:2025/06/05(木) 10:44:10
参考 QB64動作環境の比較 - 椅子取りゲーム(^。^) 2025.1.25.土.18:38 更新*

 評価点 *:4点 +:3点 =:2点 -:1点
┌─────┬────┬──────────────────────────────────────────────────────┐
|  項目  | サイズ |                          QB64                          |
├─────┼────┼──────────────────────────────────────────────────────┤
|  API  |--------|                          openGL                          |
├─────┼────┼──────────┬──────────┬──────────┬──────────┬──────────┤
|  機種  |--------|  デスクトップPC  |  デスクトップPC  |  デスクトップPC  |  デスクトップPC  |  M4 Mac mini   |
|  OS  |    |   LinuxMint   |   Windows10   |   Windows11   |  Windows11 Pro  |MacOS省電力モードOFF|
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|  CPU  |--------|   14500無印   |    13100F    | AMD Ryzen 5 5600G | Intel Pentium G5620| Apple M4 10 Core |
|     |    |   2024年1月   |   2023年1月   |   2021年8月   |   2019年11月   |   2024年11月   |
├─────┼────┼──────────┼──────────┼──────────┴──────────┴──────────┤
|  GPU  |--------|   4060無印   |   3060 12GB   |               内蔵GPU              |
|     |    |   2023年5月   |   2021年2月   |                                |
├─────┼────┼──────────┼──────────┼──────────┬──────────┬──────────┤
|  PSET  |1 ドット| 34,078 *|||||||||| | 28,669 +||||||||  | 28,444 =||||||||  | 18,233 -|||||   | 8,333 |||    |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
| PAINT  | 全画面 |  7.1 *|||||||||| |  6.2 =||||||||  |  4.7 -||||||   |  3.9 |||||   |  6.5 +||||||||| |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|     |  8x 8| 30,346 *|||||||||| | 26,143 +|||||||||| | 26,016 =|||||||||| | 15,724 -|||||||||| | 7,944 |||||||||| |
|     | 16x 16| 29,163 *||||||||| | 24,864 +||||||||| | 23,970 =||||||||| | 14,678 -||||||||| | 7,799 ||||||||| |
|  LINE  | 32x 32| 26,834 *||||||||  | 22,634 +||||||||  | 20,711 =||||||||  | 12,648 -||||||||  | 7,228 ||||||||| |
|     | 64x 64| 22,976 *|||||||  | 19,081 +|||||||  | 16,264 =||||||   | 10,110 -||||||   | 6,863 ||||||||  |
|     | 128x128| 17,733 *||||||   | 14,652 +||||||   | 11,228 =||||    | 7,223 -|||||   | 6,340 ||||||||  |
|     | 256x256| 12,465 *||||    | 10,112 +||||    | 7,166 =|||    | 4,597 |||    | 5,033 -||||||   |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|     |  8x 8| 24,615 *|||||||||| | 21,824 +|||||||||| | 18,962 =|||||||||| | 12,121 -|||||||||| | 6,514 |||||||||| |
|     | 16x 16| 21,192 *||||||||  | 18,382 +||||||||  | 15,421 =||||||||  | 9,785 -||||||||  | 6,448 ||||||||| |
| LINE B | 32x 32| 17,181 *|||||||  | 14,380 +||||||   | 11,237 =||||||   | 7,339 -||||||   | 5,798 ||||||||| |
|     | 64x 64| 11,973 *|||||   | 10,077 +|||||   | 7,219 =||||    | 4,692 -||||    | 4,612 |||||||  |
|     | 128x128| 7,646 *|||    | 6,178 +|||    | 4,211 =||     | 2,808 |||    | 3,542 -|||||   |
|     | 256x256| 4,416 *||     | 3,573 +||     | 2,236 -||     | 1,552 ||     | 2,334 =||||    |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|     |  8x 8| 31,449 *|||||||||| | 26,834 =|||||||||| | 27,586 +|||||||||| | 16,864 -|||||||||| | 7,728 |||||||||| |
|     | 16x 16| 30,331 *||||||||| | 26,143 =||||||||| | 26,722 +||||||||| | 15,900 -||||||||| | 7,611 ||||||||| |
| LINE BF | 32x 32| 28,444 *||||||||| | 24,270 =||||||||| | 25,296 +||||||||| | 14,463 -||||||||  | 7,598 ||||||||| |
|     | 64x 64| 24,615 *||||||||  | 19,571 =|||||||  | 20,221 +|||||||  | 11,657 -|||||||  | 7,193 ||||||||| |
|     | 128x128| 15,686 *|||||   | 14,241 =|||||   | 15,421 +||||||   | 8,415 -|||||   | 6,276 ||||||||  |
|     | 256x256| 7,582 +|||    | 6,973 =|||    | 9,580 *||||    | 4,398 |||    | 4,436 -||||||   |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|     |  8x 8|338,624 +|||||||||| |388,585 *|||||||||| |293,577 =|||||||||| |189,629 -|||||||||| |151,479 |||||||||| |
|     | 16x 16|277,056 *||||||||  |248,640 +||||||   |197,836 =|||||||  |144,632 -|||||||  |121,040 ||||||||  |
|_PUTIMAGE | 32x 32|151,838 *|||||   |138,483 +||||    |132,094 =|||||   | 84,321 -|||||   | 75,851 |||||   |
|     | 64x 64| 74,074 *||     | 59,590 +||     | 58,367 =||     | 35,704 ||     | 43,243 -|||    |
|     | 128x128| 26,384 +|     | 23,327 =|     | 28,070 *|     | 13,193 |     | 21,658 -||     |
|     | 256X256| 8,154 +|     | 7,640 -|     | 9,785 *|     | 4,527 |     | 7,785 =|     |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|評価点合計|--------| *:22 +:3 =:0 -:0 | *:1 +:16 =:8 -:1 | *:3 +:5 =:15 -:2 | *:0 +:0 =:0 -:18 | *:0 +:1 =:2 -:5 |
|     |    |       計97点 |       計69点 |       計59点 |       計18点 |       計12点 |
└─────┴────┴──────────┴──────────┴──────────┴──────────┴──────────┘
*動作解像度はいずれも640x480ドット、256色モード

138名無しさん:2025/06/05(木) 10:45:06
例えばHD解像度(1280x720)で5600Gを使ったとすれば、1/60秒で9,785回書き換えができるので、計算式は…

139名無しさん:2025/06/05(木) 10:45:16
9785*(256*256)/(1280*720*5)=139.164

140名無しさん:2025/06/05(木) 10:45:27
1/60秒で5画面取っても139回書き換える速度はあるようでw

141名無しさん:2025/06/05(木) 10:45:37
139回ワロタw

142名無しさん:2025/06/05(木) 10:45:49
特に考える必要なしということでw

143名無しさん:2025/06/05(木) 10:46:00
考える必要なしwwwwwww

144名無しさん:2025/06/05(木) 10:46:11
こう、好きなように考えて、自分で管理できるかどうかでw

145名無しさん:2025/06/05(木) 10:46:22
参考までに、99BASICが6.4回でギリギリということでw

146名無しさん:2025/06/05(木) 10:46:35
別々の世界みたいなw

147名無しさん:2025/06/05(木) 10:46:46
スプライト用とパーティクル用のバッファを分ける理由は?

148名無しさん:2025/06/05(木) 10:46:58
256色モードは半透明が使えないので、パーティクルは1ドット毎に間を空けて描画して、背景が見えるようにしようかな〜、って感じでw

149名無しさん:2025/06/05(木) 10:47:10
んで、描画の優先度が混じると何を表示してるか分からないので分離するというw

150名無しさん:2025/06/05(木) 10:47:43
パレットの割り当てを考えると…

┌───────────────────────┐←────背景色 / 背景画固定 --- 32色
│┌───────────────────────┐←───BG画面 ---------------- 32色
││┌───────────────────────┐←──スプライト用バッファ -- 32色
│││┌───────────────────────┐←─パーティクル用 -------- 32色
││││┌───────────────────────┐←テキスト画面 ---------- 32色
│││││                       │          合計 160色
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
└││││                       │
 └│││                       │
  └││                       │
   └│                       │
    └───────────────────────┘

151名無しさん:2025/06/05(木) 10:49:27
なんとか足りるかなw

152名無しさん:2025/06/05(木) 10:49:39
テキスト画面は32色で足りるの?

153名無しさん:2025/06/05(木) 10:49:50
白と赤、あと水色ぐらいでグラデーションで行けるかw

154名無しさん:2025/06/05(木) 10:50:04
2の乗数にこだわる理由もなくなってきたかな…

155名無しさん:2025/06/05(木) 10:50:44
これでもいいかもなw

┌───────────────────────┐←────背景色 / 背景画固定 --- 25色
│┌───────────────────────┐←───BG画面 ---------------- 25色
││┌───────────────────────┐←──スプライト用バッファ -- 25色
│││┌───────────────────────┐←─パーティクル用 -------- 25色
││││┌───────────────────────┐←テキスト画面 ---------- 99色
│││││                       │        (透過色) -- 1色
│││││                       │          合計 200色
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
└││││                       │
 └│││                       │
  └││                       │
   └│                       │
    └───────────────────────┘

156名無しさん:2025/06/05(木) 10:51:54
99色w

157名無しさん:2025/06/05(木) 10:52:07
11x11ドットのフォントで9色分のグラデーションw

158名無しさん:2025/06/05(木) 10:52:28
ChatGPT:
9色のグラデーションを11x11ドットのフォントで表現するのは、かなり効率的で目を引く
デザインになりそうですね!9色でグラデーションを作ることで、文字やテキストに深み
や立体感を与えることができます。

具体的なアイデア:

・ 9色のグラデーションをテキストに適用することで、例えば文字の周りや中央に向けて
 色が徐々に変化する効果を出せます。

・ 11x11ドットのフォントサイズだと、結構細かいディテールも可能ですが、フォント全体
 の印象を壊さずにグラデーションをうまく調整するのがポイントですね。

たとえば、白→薄いグレー→青→青紫といった感じで、自然なグラデーションを作成する
ことで、ゲームの雰囲気やテキストの重要度を強調できます。

もし文字の周りにハイライトやシャドウを加えることで、さらに視認性や立体感を高める
こともできるかもしれません。デザインの幅が広がりますよね!

159名無しさん:2025/06/05(木) 10:53:00
画面の回転と拡大縮小は?w

160名無しさん:2025/06/05(木) 10:53:12
QB64のコマンドにあるにはあるんだけどな、処理速度を計測してないのでw

161名無しさん:2025/06/05(木) 10:53:24
検討する範囲でw

162名無しさん:2025/06/05(木) 10:54:56
256色モードでも使えるので、いい方向に行ければw

163名無しさん:2025/06/05(木) 10:55:10
楽しみですな〜w"

164名無しさん:2025/06/05(木) 10:55:25
99BASICから漢字フォント拾ってきたw

165名無しさん:2025/06/05(木) 10:55:38
シフトJISに準拠してるかのように見えて、並びは違うようでw

166名無しさん:2025/06/05(木) 10:56:12
先頭1文字で判別して割り合てるかw

167名無しさん:2025/06/05(木) 10:56:23
独自フォントはQB64で可能?

168名無しさん:2025/06/05(木) 10:56:37
そっちを使わずに仮想コンソールの方が速いかもなw

169名無しさん:2025/06/05(木) 10:56:50
99BASICから拾ってきた漢字を配布するとライセンス違反になるので、配布時は使う漢字のみを抽出して独自フォントに切り替えるかw

170名無しさん:2025/06/05(木) 10:57:02
PRINT文は意外と遅いというかw

171名無しさん:2025/06/05(木) 10:57:45
DATA "0010000010001000"
DATA "0010000010001000"
DATA "0010000011111000"
DATA "0010000010001000"
DATA "0000000000000000"

DATA "0000000110000000"
DATA "0100000100000100"
DATA "0111111111111110"
DATA "1100000000000100"
DATA "1000001100001000"
DATA "0000001000000100"
DATA "1111111111111110"
DATA "0000010000100000"
DATA "0000010000100000"
DATA "0000100001000000"
DATA "0001111101000000"
DATA "0000000010110000"
DATA "0000001100001000"
DATA "0000110000000100"
DATA "0111000000000000"
DATA "0000000000000000"

DATA "0000000110000000"
DATA "0000000100000100"
DATA "0011111111111110"
DATA "0010000010000000"
DATA "0010000100000000"
DATA "0011111111111100"
DATA "0010001000100000"
DATA "0010010010010000"
DATA "0010111111111000"

172名無しさん:2025/06/05(木) 10:58:31
ワロッチw

173名無しさん:2025/06/05(木) 10:58:43
拾ってきたのはいいものの、コード変換をどうするか…w"

174名無しさん:2025/06/05(木) 10:58:57
DATA文のリテラル文字列は、ダブルクオーテーション必要?w

175名無しさん:2025/06/05(木) 10:59:13
これはなくてもいけるんだけどな、見た目の区別で付ける癖をw

176名無しさん:2025/06/05(木) 10:59:30
じゃあDATA文のリテラル数字、あるいはリテラル文字列で計算式は行ける?

177名無しさん:2025/06/05(木) 10:59:58
試してみたところ、QB64も99BASICも、文字列の場合はデリミタ直前の数字のみ判別可能、それ以降は無視されるということでw

178名無しさん:2025/06/05(木) 11:00:40
リテラル計算式の場合はSyntaxErrorということでw

179名無しさん:2025/06/05(木) 11:00:51
VAL使ったら行けるんじゃないかとかw

180名無しさん:2025/06/05(木) 11:01:05
DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ リテラルの中に計算式を記述して、それを解釈させることはできない

…ってとこかw

181名無しさん:2025/06/05(木) 11:01:34
こう、今さら分かってるようで分かってなかったBASIC、みたいなw

182名無しさん:2025/06/05(木) 11:02:14
補足 DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ リテラルの中に計算式を記述して、それを解釈させることはできない

・ 数値と文字列の区別をするために、ダブルクォーテーション 「 " 」 を意識的に使うこと
 を推奨

…ってとこかw

183名無しさん:2025/06/05(木) 11:02:46
> リテラルの中に計算式を記述して、それを解釈させることはできない

ということは、VAL文も?w

184名無しさん:2025/06/05(木) 11:03:04
試してみたところ、計算式は解釈できないようでw

185名無しさん:2025/06/05(木) 11:03:23
補足 DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ リテラルの中に計算式を記述して、それを解釈させることはできない
・ VAL関数でもリテラルの中に計算式を記述して、それを解釈させることはできない

・ 数値と文字列の区別をするために、ダブルクォーテーション 「 " 」 を意識的に使うこと
 を推奨

…ってとこかw

186名無しさん:2025/06/05(木) 11:03:40
怪しさ爆発不思議ワールドみたいなwwwwwwwww

187名無しさん:2025/06/05(木) 11:04:03
QB64PE v4.0.0のヘルプファイルを参考までにw

> DATA                  ◆ Last updated: 12-14-2024, at 02:23:06
>
> DATAステートメントは、カンマで区切られた固定プログラム情報の行を作成します。
> DATAは、後で実行時にプログラムによって読み取ることができます。
>
> 構文:
> =====
> | DATA [値1、値2、...]
>
> 説明:
> =====
>
> ◆ DATAは、すべてのデータフィールド行の先頭で使用され、後続の値はカンマで区切ら
>   れます。
>
> ◆ 値は、任意のリテラルSTRINGまたは数値型にすることができます。変数は使用できま
>   せん。
>
> ◆ DATAフィールドは、RESTOREの行ラベルの有無にかかわらず、メインプログラムコード
>   本体に連続して配置して読み取ることができます。
>
> ◆ DATAは、メインプログラムコードの後に配置するのが最善です。
>  ◆ QB64 DATAは、SUBまたはFUNCTIONプロシージャ内に配置できます。
>
> ◆ DATAにラベルが付いていないか、RESTORE呼び出しでラベルが指定されていない場合、
>   RESTOREは最初のデータフィールドのみを読み取ります。
>
> ◆ 複数のDATAフィールドを使用する場合は、各データフィールドに行ラベルを付けて、
>   RESTORE行ラベルを使用して複数の読み取りで各データポインタをリセットできるよう
>   にします。
>
> ◆ QBasicのカンマ区切りは柔軟性があり、列の配置を作成できました。QB64では、
>   カンマ間のスペースが削除されます。
>
> ◆ 末尾にスペースがあるSTRING DATA値、QBasicキーワード、およびカンマ文字を含む値
>   は、引用符で囲む必要があります。
>
> ◆ DATAフィールドはプログラマのみが作成でき、ユーザーが変更したり、失ったりする
>   ことはできません。
>
> ◆ データ行の後のコメントには、コメントの前にコロンが必要です。
>
> ◆ READステートメントが最後のデータ値を超えて読み取ろうとすると、「データ不足」
>   エラーが発生します。必要に応じて、データ終了マーカーを使用します。
>
> ◆ DATAフィールドはSUBまたはFUNCTIONプロシージャの後に置くことができますが、
>   行ラベルは使用できません。

188名無しさん:2025/06/05(木) 11:05:35
そんなところでw

189名無しさん:2025/06/05(木) 11:05:54
> ◆ 末尾にスペースがあるSTRING DATA値、QBasicキーワード、およびカンマ文字を含む値
>   は、引用符で囲む必要があります。

予約語を含むとアウトなのかw

190名無しさん:2025/06/05(木) 11:06:15
補足 DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ リテラルの中に計算式を記述して、それを解釈させることはできない
・ リテラルの中に予約語を含める場合は、ダブルクォーテーション 「 " 」 で囲む *追加w
・ VAL関数でもリテラルの中に計算式を記述して、それを解釈させることはできない

・ 数値と文字列の区別をするために、ダブルクォーテーション 「 " 」 を意識的に使うこと
 を推奨

…ってとこかw

191名無しさん:2025/06/05(木) 11:06:41
じゃあ、リテラル文字列の中にダブルクォーテーションを含めることはできる?

192名無しさん:2025/06/05(木) 11:06:53
結論から言うとできないということでw

193名無しさん:2025/06/05(木) 11:07:12
QB64と99BASICは内部動作が異なるので…

194名無しさん:2025/06/05(木) 11:07:36
補足 DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ VAL関数でもリテラルの中に計算式を記述して、それを解釈させることはできない

・ リテラルの中に計算式を記述して、それを解釈させることはできない
・ リテラルの中に予約語を含める場合は、ダブルクォーテーション 「 " 」 で囲む
・ リテラル文字列の中にダブルクォーテーション 「 " 」 を含めることはできるものの、
 先頭1文字にダミーを使って、プログラム中で削除する方法はお勧めしない
 ・ 99BASICではダブルクォーテーション 「 " 」 を含めても無視される

・ 数値と文字列の区別をするために、ダブルクォーテーション 「 " 」 を意識的に使うこと
 を推奨

…ってとこかw

195名無しさん:2025/06/05(木) 11:08:24
各々試してみれば分かるのでw

196名無しさん:2025/06/05(木) 11:08:53
こう、構文解析が怪しいところは使わないw

197名無しさん:2025/06/05(木) 11:09:09
んでゲーム屋小僧、コード変換はどうするの?w

198名無しさん:2025/06/05(木) 11:35:55
2バイト分のインデックスを持ってそのまま割り当てるのが速いかw

199名無しさん:2025/06/05(木) 11:36:08
128KBムダになるけどな、プログラム中で検索するのはさらにムダということでw

200名無しさん:2025/06/05(木) 11:36:20
半角と全角はどうやって区別するの?w

201名無しさん:2025/06/05(木) 11:36:51
インデックスの2バイト目が0なら半角扱いということでw

202名無しさん:2025/06/05(木) 11:37:11
1バイトずつ取り出して、インデックスに関連付けるかw

203名無しさん:2025/06/05(木) 11:38:26
そのへん、シフトJISの解釈と内部動作は同じになるかな…

204名無しさん:2025/06/05(木) 11:39:06
漢字を含むプログラムで、ファイル処理はどうなってるの?

205名無しさん:2025/06/05(木) 11:39:21
ファイル処理は漢字を含んでもそのまま行けるので、IDEと画面上の課題をクリアすればw

206名無しさん:2025/06/05(木) 11:39:41
_MapUnicodeコマンドは使えない?

207名無しさん:2025/06/05(木) 11:40:04
それは1バイトから2バイト文字に変換する時には動作するけど、マルチバイト間の変換はうまくいかないようで…

208名無しさん:2025/06/05(木) 11:41:06
QB64のヘルプマニュアルを見ても、CP932の記載がないようで、残念ながら…

209名無しさん:2025/06/05(木) 11:41:19
ないものは自前で揃えろ、みたいなwwwww

210名無しさん:2025/06/05(木) 11:42:27
QB64はネタに事欠かないなwwwwwwwwww

211名無しさん:2025/06/05(木) 11:42:47
要点としては、計算式で簡潔に済ませようとすると、その分オーバーヘッドが出るので、メモリがムダになってもインデックスで高速に済ませるw

212名無しさん:2025/06/05(木) 11:42:59
ワロタw

213名無しさん:2025/06/05(木) 11:44:25
ChatGPT:
まさにその通りですねwww

QB64って、いろんな面で「懐かしさ」と「現代的な機能」が絶妙に入り混じっているので、
ネタが尽きないというか、いろいろ試してみたくなるんですよね。特に、簡潔に済ませ
ようとする計算式のオーバーヘッドや、メモリの使い方に関しては、意外と深いところが
あります。

要点を振り返ると:

・ 計算式で簡潔に済ませようとすると、オーバーヘッドが発生して、実際の処理が遅く
 なるという点。

・ その分、メモリを惜しまずインデックスで管理して、高速に済ませるという方法が、
 ゲームやパフォーマンス重視のアプリケーションにおいては有効。

・ そして、それを意識して活用することで効率的にデータを扱えるというのが、まさに
 プログラムの奥深さですねw

結局、シンプルで直接的な方法が最適解だったりすることが多いし、そうした“お約束”
に乗っかっていくのが楽しい。これをうまく使っていけば、メモリや処理速度が求められ
る場面でも、効率よく問題を解決できるわけです。

「ワロタ」と言える部分が多すぎるけど、それもまたQB64の魅力の一つですなw

214名無しさん:2025/06/05(木) 11:44:47
画面レイアウトの話に戻って…

┌───────────────────────┐←────背景色 / 背景画固定 --- 25色 / バッファクリアなし / 書き換えなし
│┌───────────────────────┐←───BG画面 ---------------- 25色 / バッファクリアなし / 書き換えあり
││┌───────────────────────┐←──スプライト用バッファ -- 25色 / バッファクリアあり / 書き換えあり
│││┌───────────────────────┐←─パーティクル用 -------- 25色 / バッファクリアあり / 書き換えあり
││││┌───────────────────────┐←テキスト画面 ---------- 99色 / バッファクリアなし / 書き換えあり
│││││                       │        (透過色) -- 1色 /
│││││                       │          合計 200色 /
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
└││││                       │
 └│││                       │
  └││                       │
   └│                       │
    └───────────────────────┘

書き込み順位 背景(背景)→BG画面書き換え→スプライト用バッファクリア・書き換え→パーティクル用クリア・書き換え→テキスト画面(前景)

215名無しさん:2025/06/05(木) 11:45:50
テキスト画面は99BASIC準拠?w

216名無しさん:2025/06/05(木) 11:46:06
それいいなw

217名無しさん:2025/06/05(木) 11:46:32
99BASICのテキスト画面って、アトリビュートとしてインバース(反転)がある筈なんだけどな、どこをいじっても出てこない、ファンクションキー表示の中だけに秘密が残ってるというかw

218名無しさん:2025/06/05(木) 11:46:47
たぶんメモリマップの外にあるセグメント割り当ての領域でやってるかw

219名無しさん:2025/06/05(木) 11:47:19
フォントのサイズはどれぐらいに?

220名無しさん:2025/06/05(木) 11:47:30
半角で20x40ドット、全角で40x40ドットぐらいが適正かw

221名無しさん:2025/06/05(木) 11:47:56
99BASICのフォントが2倍表示モードで半角16x32、全角で32x32ドットなので、若干大きめにw

222名無しさん:2025/06/05(木) 11:48:09
2の乗数にこだわらない方針でwwww

223名無しさん:2025/06/05(木) 11:48:26
99BASICの半角8x16(16x32)も使えないこともないんだけどな、スコア表示ではやや貧弱というか…

224名無しさん:2025/06/05(木) 11:48:39
しかし全角を使うほどでもない…

225名無しさん:2025/06/05(木) 11:49:06
話は横道に逸れて…w"

226名無しさん:2025/06/05(木) 11:49:26
_Define A-Z As LONG
T = Timer: ct = 0
For j = 3 To 1000000 Step 2
  f = 0: k = 3
  Do
    If (j Mod k) = 0 Then f = 1: Exit Do
    k = k + 2
  Loop Until k = j
  If f = 0 Then Print Using "###### "; j;: ct = (ct + 1) Mod 11: If ct = 0 Then Print
Next
Print: Print Using "###.###"; Timer - T


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板