いつもありがとう。
最近は少しだけ忙しいです。
期末試験
卒業判定
卒業式
オープンキャンパス&体験入学
新学期授業準備
入学式
そして、授業開始。。。
けど、一応。。。ピグはアメ集めのためにきたよ返し&グッピグ大作戦!!
ピグライフのお手伝い返しだけは。。。
けど、出来てない日もちょっとあるA=´、`=)ゞ
頑張る。
何を頑張るのかわからんけどまずは頑張る。
プログラムで使う変数は使い方により分類する事が出来ます。
逆に分類を知り事で適切な変数の扱いができるでしょう。
■変数の型
変数とは値を代入するものです。
どんな値を入れる事が出来るか知っておく必要があります。
プチコンの場合変数の方は2つです。
1)固定小数点方式の実数 ・・・ 例: A=10
2)文字列 ・・・ 例: A$="abc"
■配列のアクセス方法
変数をどうやって使うかその扱い方で分ける事が出来ます。
プチコンの場合には。。。
1)通常の変数 ・・・ 例: A=10
2)1次元配列変数 ・・・ 例: A(1)=10
3)2次元配列変数 ・・・ 例: A(1,2)=10
そのほかに今までにもたまに話題になっていたんですが
重要な分類で。。。
■変数のスコープ
スコープとは変数が見える範囲の事を言います。
残念ながらこれはBASICではサポートされていませんが
自らルールを決めて適切に使用する必要があります。
1)一時使用の変数(レジスタ変数)
その場限りの一時的な使用に向いています。
変数の内容は自分が使った後は変化します。
値をずっと覚えておく事はできません。
また扱うデータに決まりがないので分かりやすい名前は使わず。
基本使いまわすことを優先します。
例)
R0=10
_R1=3
2)ローカル変数
上記のレジスタ変数と同じですが、
使い方がある程度決まっているので
名前からどのようは値が入っているか想像できます。
例)
X=10
Y=5
3)グローバル変数
基本誰もが使っても良い変数なのですが
変数の値を保存するために使います。
例)今回のサンプルの場合は・・・
MTN ・・・ タスクの最大数として使っています。
4)タスク変数
今回タスクのために配列変数を作りました。
実は機能的にはグローバル変数ですが
タスクの中で扱うルールとし
タスクが保存しておきたい値を代入します。
例)今回のサンプルの場合は・・・
X(TN)=10
Y(TN)=0
ちなみに変数TNは何番目のタスクが使用するかを
指定するために使っています。
TNはグローバル変数です。
ここでは今回分かった VSYNC の対策です。
プチコンの場合だけ置き換えてください。
■VSYNC 1 の場合
1) 対策前のコード
@SYS_INIT
CLEAR
SYS_CNT=0
SYS_KEY=BUTTON()
RETURN
@SYS_CALL
VSYNC 1
(省略)
2)対策後のコード
@SYS_CALL
_VSYNC2=MAINCNTL%60
IF _VSYNC1==_VSYNC2 GOTO @SYS_CALL
_VSYNC1=_VSYNC2
(省略)■VSYNC n
2) 対策後のコード
@SYS_INIT
CLEAR
SYS_CNT=0
SYS_KEY=BUTTON()
_VSYNC=2 ← 自由に指定できる
_VSYNC1=MAINCNTL%60
RETURN
@SYS_CALL
_VSYNC2=MAINCNTL%60
_R0=_VSYNC2-_VSINC1
IF _R0>=_VSYNC GOTO @SYS_NEXT
IF -_R0<_VSYNC GOTO @SYS_CALL
@SYS_NEXT
_VSYNC1=_VSYNC2
(省略)
このサンプルコードでは_VSYNCの値を自由に変更できます。