アイワナ製作

変数について

はじめに

ここでは変数についての解説をします。
変数はギミックを作るにあたってとても重要なものです。

変数とは?

変数とは、簡単に言ってしまえば入れ物です。
yuuutu edition ver2.13のオブジェクトの中の色々な部分で使われていますが
playerがジャンプする際にjumpという変数を利用しているので
この部分を利用して、解説します。

playerはジャンプする際に
vspeed=-jump;
というコードが実行されています。
プレイヤーがジャンプする構図1
このjumpという変数の中には8.5という数字が入っており
その変数にマイナスが付いているので-8.5となります。
プレイヤーがジャンプする構図2
この部分を細く解説します。

playercreateイベントの3行目には
jump=8.5;というものがあります。
これはjumpという入れ物の中に数字の8.5を入れるという意味です。
jumpという変数に8.5の数字を入れる図
変数という入れ物に何かを入れると、変数は入れたものと同じものになります。
今回の場合はjumpの中に8.5を入れたので
jumpは数字の8.5と同じものになります。
数字の8.5にマイナスを付けると-8.5になるように
jumpにマイナスを付けると-jumpとなります。
なので、vspeed=-jumpとした場合はvspeed=-8.5と同じになります。

変数の管理

変数は作り出したオブジェクトが管理します。
今回の場合はplayerjumpという入れ物を持っていることになります。
playerがjump変数を持っている図
playerjumpを利用することは出来ますが
別のオブジェクト、例えばblockjumpを持っていません。
もしblockvspeed=jumpとした場合、そのjumpは別の入れ物で中には何も入っていません。
なので、vspeed=0になります。
blockがjump変数を持っている図
何も入っていない変数が0になったのはGameMakerの仕様です。
※オプションに何も入っていない変数には0を代入するというものがあります。

変数の使い方(基本)

まずは変数を作成します。
変数を作成する際に注意することがあります。
それは変数の名前にオブジェクト名やルーム名などですでに使われている名前を使わないことです。
間違って使ってしまうとエラーが出ます。
それ以外は基本的に自由です。
aaaでもabcでも構いません。
わかりやすい名前にしておくと、あとで確認する際に便利です。
ここではhensuuという名前にします。

このhensuuに色々なものが入ります。

数字
例)hensuu=10;
hensuuが10になります。

文字
例)hensuu="こんにちわ";
hensuuが"こんにちわ"になります。

ID
例)hensuu=instance_create(x,y,block);
hensuuに作成したblockのIDが入ります。
block.vspeed=10;とすると、今いるルームのすべてのblockがvspeed=10;になりますが
hensuu.vspeed=10;とすると、上記で作成したblockだけがvspeed=10;になります。
この書き方はギミック作成でよく使われるので、別の機会に詳しく解説したいと思います。

変数への代入

変数への代入は変数という箱の中身を増減するというものです。
代入の書き方はこのようになります。
<変数> = <式(数値)>

例)
hensuu=10;を元の状態として
数値を増加させる書き方
hensuu+=1;
この場合はhensuuに10+1され、hensuu11になります。

数値を減少させる書き方
hensuu-=2;
この場合はhensuuに10-2され、hensuu9になります。

数値を掛け算させる書き方
hensuu*=3;
この場合はhensuuに10×3され、hensuu30になります。

数値を割り算させる書き方
hensuu/=4;
この場合はhensuuに10÷4され、hensuu2.5になります。

変数を使うメリット

変数を使うメリットはいくつかあります。
一つはあとから中身を入れ替えれることです。
playerがジャンプする部分を
vspeed=-8.5;
にしてしまうとあとからジャンプ力を変えることは出来ませんが
vspeed=-jump;
のように変数を使うと
jump=4.25とすることでジャンプ力を半分に出来ます。

他の使い方としては中身を保持することです。
オブジェクトに触れた回数を保持したり、コードを実行する回数を保持したりなどです。
この使い方に関しては別の機会に解説したいと思います。

PAGE TOP

    inserted by FC2 system