変数について
はじめに
ここでは変数についての解説をします。
変数はギミックを作るにあたってとても重要なものです。
変数とは?
変数とは、簡単に言ってしまえば入れ物です。
yuuutu edition ver2.13のオブジェクトの中の色々な部分で使われていますが
playerがジャンプする際にjumpという変数を利用しているので
この部分を利用して、解説します。
playerはジャンプする際に
vspeed=-jump;
というコードが実行されています。
このjumpという変数の中には8.5という数字が入っており
その変数にマイナスが付いているので-8.5となります。
この部分を細く解説します。
playerのcreateイベントの3行目には
jump=8.5;というものがあります。
これはjumpという入れ物の中に数字の8.5を入れるという意味です。
変数という入れ物に何かを入れると、変数は入れたものと同じものになります。
今回の場合はjumpの中に8.5を入れたので
jumpは数字の8.5と同じものになります。
数字の8.5にマイナスを付けると-8.5になるように
jumpにマイナスを付けると-jumpとなります。
なので、vspeed=-jumpとした場合はvspeed=-8.5と同じになります。
変数の管理
変数は作り出したオブジェクトが管理します。
今回の場合はplayerがjumpという入れ物を持っていることになります。
playerはjumpを利用することは出来ますが
別のオブジェクト、例えばblockはjumpを持っていません。
もしblockがvspeed=jumpとした場合、そのjumpは別の入れ物で中には何も入っていません。
なので、vspeed=0になります。
何も入っていない変数が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され、hensuuは11になります。
数値を減少させる書き方は
hensuu-=2;
この場合はhensuuに10-2され、hensuuは9になります。
数値を掛け算させる書き方は
hensuu*=3;
この場合はhensuuに10×3され、hensuuは30になります。
数値を割り算させる書き方は
hensuu/=4;
この場合はhensuuに10÷4され、hensuuは2.5になります。
変数を使うメリット
変数を使うメリットはいくつかあります。
一つはあとから中身を入れ替えれることです。
playerがジャンプする部分を
vspeed=-8.5;
にしてしまうとあとからジャンプ力を変えることは出来ませんが
vspeed=-jump;
のように変数を使うと
jump=4.25とすることでジャンプ力を半分に出来ます。
他の使い方としては中身を保持することです。
オブジェクトに触れた回数を保持したり、コードを実行する回数を保持したりなどです。
この使い方に関しては別の機会に解説したいと思います。