忍者ブログ

「の」べや

編集後記とかゲーム作ってたりとかいろいろ。 気まぐれ飽き性なんでもござれ。

   

RGSS : 「self.index = 」 「@index =」 「index = 」 の違い

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite

もうそろそろVX Aceなるものが発売されるというのに……未だVXに奮闘中です。

Aceもおもしろそうだけど、まあしばらくはVXで遊ぶことにします。

して本題。
RGSSをいじっていると題名のように同じ変数なのに命令形式が違う場合があるのです。
最初の頃はこれにかなり悩まされました。「何で違うんだろう」って。
で、適当に使っていたのですが、いかんせんうまく動かない。

それにはこんな理由があったんですね。

↓↓↓↓↓↓

簡単にまとめよう

@index =
はローカル変数 @indexを変更しているだけ

index = , self.index =
は同じクラス内にメソッドが設けてあり、そのメソッドを実行している。
もしくはスーパークラスのメソッドを呼び出している。

def index=(v)
  xxxxxx
  xxxxxxx
  @index = v
end

みたいな感じになっていると考えられる。この場合は@indexの変更だけではなく、それ以外の処理も行う事ができる。使い方はメソッドの中身次第ってところかと。なので、たとえば

@percentというローカル変数があり、これは 0~100 までの整数にしたい、という場合はメソッドで

def percent=(v)
  @percent = v
  @percent = 100 if @percent > 100
  @percent = 0 if @percent < 0
end

と設定して数値を設定するときに percent += 1 とか、そんな感じにすればいい。

これを知ったのは最近だったりもする……。
恐らくwindowクラスのopennessあたりはこのメソッドを使っているかと考えられます。

ちなみにRGSS2内では max , min メソッドがよく使われています。上の文をmax,minを利用して書く事もできますね。

def percent=(v)
  @percent = [ [ v , 100].min , 0].max
end

違ってたらスミマセン

追記:self.index = とindex = は微妙に違うらしい。
index=ってやるとエラーになりました orz。

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題
PR

COMMENT

TRACKBACK

Trackback URL:

ブログ内検索

お知らせ

動画に使用している「妹さん」の立ち絵はこちらの著作権フリー素材集を使って作っています。


著作権フリー立ちキャラクター素材集vol.8全年齢版


2021/08/05に CeVIO AI さとうささらが発売されました。なんとDLSiteでも買えます。

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

カテゴリ

プロフィール

HN:
のぎー
性別:
男性

カウンター

Copyright ©  -- 「の」べや --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]