プチコン4 まとめWiki

プチコン4 メモ

パンくずリスト

知って得するプチコンメモ! BASIC 書きのお供にどうぞ。3号Wiki初代/mkII Wikiを参考に、何かありましたらどうぞ。なお、公式のまめちしきもあります。

PUSHKEY 命令の特殊キー一覧

PUSHKEY 命令で、引数に 65536 以上の数を与えると特殊な効果がある場合があります。その引数と効果の一覧です。

  • 65576 - ソフトキーボードの表示トグル
  • 65619 - 上書きモード、挿入モードの切り替え
  • 65621 - ソフトキーボードを表示
  • 65622 - ソフトキーボードを非表示
  • 65624 - パフォーマンスメーターの表示トグル
  • 65627 - ソフトキーボードが右に移動
  • 65628 - ソフトキーボードが下に移動
  • 65629 - ソフトキーボードが左に移動
  • 65630 - ソフトキーボードが上に移動

プチコンBIGのフォント

#SYSプロジェクトの中にプチコンBIGの16ドットフォントのファイルがある。

使用方法は

  1. LOADG”#SYS/BIGFONT16”,5,0,1024

隠し関数・命令

UISTATE()

  • 0~5の引数を渡すと数値が返ってくる。
  • それ以外の数値を渡すとOut of range
  • ソフトウェアキーボードの位置によって返値が変わる
    返値位置
    0無し
    1
    17
    33
    49

MILLISEC()の正確さ

軽く実験したので結果を乗せました。

  • VSYNC 60とMILLISEC()の1000は等しい
  • TIME$()の変更周期とMILLISEC()の1000は等しくない

MILLISECは「ミリ秒」という意味ですから、1秒にちょうど1000増加しないとおかしいのですが、なぜか一致しません
時間を延ばして実験したところ1秒平均が1000に近づくことが分かったので、検証プログラムの処理時間による誤差のようです。

再試験の結果

TIME$()MILLISEC()開始からの増加量経過秒数増加量/秒
21:24:1166370------------
21:24:1267373100311003.00
21:24:1368377200721003.50
21:24:146933429643988.00
21:24:157033839684992.00
21:24:167134249725994.40
21:24:177234559756995.83
21:24:187335169817997.29
21:24:197435579858998.13
21:24:207535989899998.78
21:24:2176363999310999.30
21:24:22773691099911999.91
21:24:237837312003121000.25
21:24:247937713007131000.54
21:24:25803331396314997.36
21:24:26813371496715997.80
21:24:27823411597116998.19
21:24:28833451697517998.53
21:24:29843511798118998.94
21:24:30853551898519999.21
21:24:31863591998920999.45
21:24:32873622099221999.62
21:24:33883692199922999.95
21:24:348937323003231000.13
21:24:359037624006241000.25
21:24:369138025010251000.40
21:24:37923362596626998.69
21:24:38933402697027998.89

※増加量/秒 は小数第2位まで

デフォルトの音量

BGMPLAY命令・BEEP命令で音量を指定しなかった場合、64を指定した時と同じ音量になる。
RECSTART命令・RECSAVE命令を使い、再生中の音声を配列変数に書き出して比較すると確認できる。

SPHOME設定下で、SPCOLを設定するとき

公式リファレンス
(https://sup4.smilebasic.com/doku.php?id=reference:%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%88)では

SPCOLで始点X,始点Yを指定する場合、SPHOMEの情報は全く使用しない。

とあるが、SPHOMEはスプライトの表示位置をずらして原点が指定座標にくるようにするという挙動をしているので
SPHOMEを設定した後にSPCOLで衝突判定を設定する際, SPCOLで渡す始点X, 始点YをSPHOMEで設定した座標ぶんずらす必要がある。
具体的には

  1. X = 8:Y = 8
  2. SPSET 0,0
  3. SPHOME 0,X,Y
  4. SPCOL 0,0−X,0−Y,16,16

とするとスプライト表示と衝突判定とが一致するようになる。

コメント

ページを編集するまでもないものの、もし何か一言コメントがありましたら以下へどうぞ。

  • あまさとしおん : 3号と異なり4の場合は、VSYNC 60と本体時計の1秒は等しい(MILLISEC()がちょうど1000増加する)ようです。 (2020/03/12 (木) 20:07:45)
  • あまさとしおん : 追試したので書きますね (2020/03/12 (木) 20:19:25)

メニュー 【4】

過去シリーズWiki

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 1 人がこのサイトを見ています
  • このページはこれまでに 6045 回、本日は 1 回、昨日は 0 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.100 秒 | このページの最終更新 : 2022/09/20 (火) 12:23:39 (565d) | ログイン
Copyright(C) 2011-2019 プチコンまとめWiki