りょうのゲーム塾 -21ページ目

りょうのゲーム塾

再開、準備中。


りょうのゲーム塾

いつもありがとう。


最近は少しだけ忙しいです。


期末試験

卒業判定

卒業式

オープンキャンパス&体験入学

新学期授業準備

入学式


そして、授業開始。。。



けど、一応。。。ピグはアメ集めのためにきたよ返し&グッピグ大作戦!!

ピグライフのお手伝い返しだけは。。。


けど、出来てない日もちょっとある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の値を自由に変更できます。