日誌2014-01-28 18:56
[RMXP RGSS] 改造基礎知識 (最後更新20210116)作者:未来ずら
class Xxxx (內容) end |
@name1 = "小明" @age1 = 16 @sex1 = "男" @name2 = "小華" @age2 = 18 @sex2 = "男" # 定義改名字的方法 def change_name(who, new_name) case who when "小明" @name1 = new_name when "小華" @name2 = new_name end end # 把小明的名字改成大明 change_name(@name1, "大明") # 看看是否有改名 p @name1 # <=大明 |
# 定義"人"的class class Person # 公開變數 attr_reader :name # 這樣做就可以用(物件.name來知道這個物件的@name值) # 初始化 def initialize(name, age, sex) @name = name @age = age @sex = sex end # 定義改名字的方法 def change_name(new_name) @name = new_name end end # 做出兩個人 person1 = Person.new("小明", 16, "男") person2 = Person.new("小華", 18, "男") # 更改小明的名稱 person1.change_name("大明") # 看看是否有改名 p person1.name # <=大明 |
class 子類 < 父類 |
類.new |
a = xxx |
代表某物件的變數.方法 例如:actor1.attack |
a = [100,200,300,400,500] b = a # b 代入 a a[0] = 0 # a的第0項,也就是100那欄代入0 p b[0] # 查看b的第0項,也跟著變0了 |
b = [] a.each {|obj| b.push(obj) } # 照順序代入每項的值 |
a = [Person.new("小明"), Person.new("小華"), Person.new("小美") ] b = [] a.each {|obj| b.push(obj.name) } # 照順序代入每項物件的name變數 |
a.each {|obj| b.push(obj) } |
Game_Battler.new |
def xxx(參數1,參數2...) (內容) end |
物件.方法名稱(參數1,參數2...) |
方法名稱(參數1,參數2[, 參數3]) |
Class People # 定義一個名叫say_hello的方法 def say_hello p "Hi" end # 對say_hello再定義 def say_hello p "Hey" end end |
a = People.new # 作成對像 a.say_hello # 出現訊息框顯示Hey,不會出現Hi |
a = 1 |
@a = 1 |
@@a = 1 # <= 這不是表符,來先跟我說三次 |
$a = 1 |
A = 1 |
refresh |
visible = false self.visible = false |
a = "abc" |
"#{a}" |
a = ["abc","def","ghi"] |
a[0] # "abc" a[1] # "def" a[2] # "ghi" |
a = [[1,2,3], "def", "ghi"] a[0][1] # 調用[1,2,3]中的「數字2」 |
person1 = { :name => "小明", :age => 13, :sex => "男" } p person1[:name] # <=顯示「小明」 |
生成 Sprite 對象。必須要指定對應的視口 |
0..5 # 0~5 0...10 # 0~9 |
a = :"abc" b = :"abc" p a.object_id, b.object_id # 兩個物件同ID c = "abc" d = "abc" p c.object_id, d.object_id # 兩個物件不同ID |
a = "" b = "" c = "" p a.object_id, b.object_id, c.object_id |
a = 1 b = 1 c = 1 p a.object_id, b.object_id, c.object_id |
a = Color.new(紅, 綠, 藍[, 不透明度]) a = Tone.new(紅, 綠, 藍[, 灰階程度]) # 用 "[]" 框起來的部分為可選參數,即可以省略 |
if 條件1 (內容) elsif 條件2 (不符合條件1,但符合條件2的內容) elsif 條件3 (不符合條件1和2,但符合條件3的內容) else (除此以外的內容) end |
a = 5 if a < 5 |
case a when 0..5 # a的值為0~5 (內容) when 6...10 # a的值為6~9 (注意,範圍表示多了一個「.」) (內容) else (除此之外的內容) end |
for a in [1,2,3] (內容) end |
def abc var = "abc" end def abc2 var = "abc" var2 ="cba" end def abc3 return 123 var = "abc" end p abc, abc2, abc3 |
p 物件, 物件2, 物件3.... |
rand(100) # 隨機取得 0~99 中的值 |
loop do (內容) end |
# 依序把 [1,2,3] 數組內元素代入val變數,然後p出來 [1,2,3].each { |val| p val } |
for val in [1,2,3] p val end |
def 實體變數名 return @實體變數名 end |
attr_writer(:實體變數名) attr_reader(:實體變數名) attr_accessor(:實體變數名) |
星矢(父類) 的攻擊方法會使用 天馬流星拳,於是: class 星矢 def attack 天馬流星拳 end end 星矢的兒子(子類) 的攻擊方法想在天馬流星拳的基礎上有所發展,於是: class 星矢的兒子 < 星矢 def attack super 小強式回血 end end 於是星矢的兒子攻擊時會先放 天馬流星拳 然後發動 小強式回血 |
alias 新名稱 舊名稱 |
alias old_initialize initialize def initialize @a = 0 @b = 0 old_initialize # 調用被改過名稱的原方法內容 refresh end |
if $DEBUG # 測試模式中 (內容) end |
# 用測試模式,而且沒用F12重開遊戲過 if $DEBUG and not $warning_read Graphics.freeze # 顯示警告圖片 @warning = Sprite.new # < 其實這裡用局部變數就可以 @warning.bitmap = RPG::Cache.picture("DEBUGWARNING") Audio.se_play("Audio/SE/002-System02",80,100) Graphics.transition(40) # 停在這畫面,等待按鍵 loop do Graphics.update Input.update # 如果按下確定或取消鍵就消除圖片,開始遊戲 if Input.trigger?(Input::C) or Input.trigger?(Input::B) Graphics.freeze @warning.bitmap.dispose @warning.dispose # 設置一個全域變數,防止F12又要再看一次 $warning_read = true Graphics.transition(40) break end end end |
if $BTEST # 戰鬥測試中 (內容) end |
$scene = Scene_Menu.new # 切換至選單畫面 $scene.update # 執行目前場景的update方法 |
while $scene != nil $scene.main end |
$data_actors # 角色 $data_classes # 職業 $data_skills # 技能 $data_items # 道具 $data_weapons # 武器 $data_armors # 防具 $data_enemies # 敵人 $data_troops # 敵方隊伍 $data_states # 狀態 $data_animations # 戰鬥動畫 $data_tilesets # 地圖元件 $data_common_events # 公用事件 $data_system # 系統 |
$game_temp # 暫存 $game_system # 遊戲系統 $game_switches # 事件公共開關 $game_variables # 事件公共變數 $game_self_switches # 事件的自用(獨立)開關 $game_screen # 畫面數值管理(色調、震動、閃爍) $game_actors # 我方角色 $game_party # 我方隊伍 $game_troop # 敵方隊伍 $game_map # 地圖 $game_player # 地圖場景(Scene_Map)中的玩家(就是能被你操控、到處走的角色) |
2014-01-28 23:16未来ずら:好羨慕簡明扼要的教學文啊 [e26]
什麼,居然還有你不知道的,看來還不夠基礎(欸
2014-01-29 14:47未来ずら:喔,Symbol是到VX ACE大概是官方有意推廣這玩意,於是預設腳本用了大量Symbol,甚至特地給Symbol表達式上色。
不過問題來了,因為按鍵判定也改成Symbol所以VX以前的全按鍵腳本不能直接用了[e26]我也是因為這樣才留意到這個類
2014-01-31 22:32未来ずら:OK的,我也很懶。不過怎麼突然和我說這個呢?(゚д゚;)
2014-01-31 22:41未来ずら:(´ ゚д゚`)エー