[Ruby]Hướng dẫn RGSS

Thảo luận trong 'Lưu Trữ' bắt đầu bởi squall&rinoa, 24/2/06.

  1. squall&rinoa

    squall&rinoa Donkey Kong

    Tham gia ngày:
    23/1/04
    Bài viết:
    449
    Nơi ở:
    Hải Phòng
    Đây là list các cú pháp trong RGSS ( rất hữu dụng cho việc viết script đó ).
    Đầu tiên là cú pháp cơ sở dữ liệu của nhân vật:

    Mã:
    $data_actors[id]. 
     
    [color=#0084a5]id 
    [/color][color=#0084a5]name [/color]
    [color=#0084a5]class_id 
    initial_level 
    exp_basis [/color]
    [color=#0084a5]exp_inflation 
    character_name 
    character_hue
    battler_name
    battler_hue
    weapon_id
    weapon_fix 
    armor1_id
    armor1_fix
    armor2_id
    armor2_fix
    armor3_id
    armor3_fix
    armor4_id
    armor4_fix
    parameters[status_id, level][/color]
    Cách dùng như sau. ( tương tự với các cái tiếp theo nhé ).
    Ví dụ bạn muốn xét tên của nhân vật có id là 2 ta có thể gán cho một biến = $data_actors[2].name ( mong tui nói ít mọi người hiểu nhiều nha ).

    Tôi không ghi nghĩa của nó sở dĩ nó cũng chỉ là những từ tiếng anh thông thường thui. Ai có lòng hảo tâm thì dịch hộ tui nhé.
     
  2. squall&rinoa

    squall&rinoa Donkey Kong

    Tham gia ngày:
    23/1/04
    Bài viết:
    449
    Nơi ở:
    Hải Phòng
    Cú pháp của nhân vật hiện hành :
    $game_actors[id].
    Mã:
      
    hp 
    maxhp 
    sp 
    maxsp 
    level 
    exp 
    str 
    dex 
    agi 
    int 
    atk 
    pdef 
    mdef 
    eva
    
    Cú pháp armor ( tui chưa tìm được từ thích hợp để dịch )
    $data_armors[id].
    Mã:
     id
    name
    icon_name
    description
    kind
    auto_state_id
    price
    pdef
    mdef
    eva
    str_plus
    dex_plus
    agi_plus
    int_plus
    guard_element_set[id]
    guard_state_set[id]  
    Cú pháp class ( của nhân vật ) :
    $data_classes[id].

    Mã:
     id
    name
    position
    weapon_set
    armor_set
    state_ranks
    element_rank
    learnings[level,skill_id]  
    Cú pháp common event ( trong database í ) :

    $data_common_events[id].
    Mã:
    id
    name
    trigger
    switch_id
    Cú pháp quái vật :
    $data_enemies[id].
    Mã:
    name
    maxhp
    maxsp
    str
    dex
    agi
    int
    atk
    pdef
    mdef
    animation1_id
    animation2_id
    exp
    gold
    item_id
    weapon_id
    armor_id
    treasure_prob
    battler_name
    battler_hue
    Cú pháp Item :
    $data_items[id]
    Mã:
    name
    occasion
    icon_name
    description
    price
    common_event_id
    scope
    consumable
    Cú pháp Skill :
    $data_states[id].
    Mã:
    name
    icon_name
    description
    scope
    occasion
    animation1_id
    animation2_id
    common_event_id
    sp_cost
    power
    atk_f
    eva_f
    str_f
    dex_f
    agi_f
    int_f
    hit
    pdef_f
    mdef_f
    variance
    element_set[id]
    plus_state_set[id]
    minus_state_set[id] 
    Cú pháp states :
    $data_states[id].
    Mã:
    name
    animation_id
    restriction
    nonresistance
    zero_hp
    cant_get_exp
    cant_evade
    slip_damage
    rating
    hit_rate
    maxhp_rate
    maxsp_rate
    str_rate
    dex_rate
    agi_rate
    int_rate
    atk_rate
    pdef_rate
    mdef_rate
    eva
    battle_only
    hold_turn
    shock_release_prob
    auto_release_prob
    plus_state_set[id]
    minus_state_set[id]
    guard_element_set[id]
    cú pháp Weapon :
    $data_weapons[id].
    Mã:
    name
    icon_name
    description
    animation1_id
    animation2_id
    price
    atk
    pdef
    mdef
    str_plus
    dex_plus
    agi_plus
    int_plus
    plus_state_set[id]
    minus_state_set[id]
    element_set[id]
    
     
  3. squall&rinoa

    squall&rinoa Donkey Kong

    Tham gia ngày:
    23/1/04
    Bài viết:
    449
    Nơi ở:
    Hải Phòng
    Tui sẽ up lên tất cả những hướng dẫn về script tui thu thập và dịch trên Internet. Nhưng nó không theo một bài bản nào cả và hơn nữa trình độ dịch của tui còn kém vì vậy có những đoạn khó hiểu thì mong các bạn dịch lại hộ dùm tui nhé. Vì vậy những ai đọc mà không hiểu thì có thể hỏi tui qua nick Tidus_don_coi nhé. Đây là phần tiếng việt ( do tui dịch ) của hướng dẫn ban đầu tạo một cms.

    Tạo một cms căn bản

    Để hiểu làm thế nào để tạo ra một CMS, đầu tien bạn cần hiểu class Scene_Menu làm việc như thế nào. Như vậy, đầu tiên, tôi sẽ giải thích cho bạn.

    Đây là class Scene_Menu mặc định.
    Hy vọng bạn đã đoán ra được ở đây một vài đối tượng từ bài hướng dẫn trước đây của Dubealex. Nếu không, Tôi sẽ cố gắng giải thích thật đơn giản để bạn có thể hiểu được.
    Tôi đoán để làm điều này, Tôi sẽ phải làm mỗi ghi chú trên mỗi hàng...Để làm điều này, Nhấn # và đánh những dòng ghi chú ngắn gọn vào.
    Bây giờ, hãy nhìn những hàng dưới đây:
    Bây giờ....Script CMS của bạn không phải chỉ có tên "Scene_Menu". Bạn có thể đổi tên nó thành "CMS" hay là cái gì cũng được, chỉ cần nhớ gọi cho đúng ở dưới class Scene_Map Nếu bạn đổi tên của class.

    Đồng thời, đề giới thiệu những cái mà bạn không biết của câu lệnh này trong Ruby. Đây là câu lệnh để tạo những chú ý dài nó sẽ chỉ dừng lại khi bạn kết thúc nó.
    =begin và =end. Tìm kiếm trong những script và xem xem tôi sử dụng nó như thế nào, như vậy bạn có thể vận dụng chúng. Nó thích hợp bình luận dài mà không trùng một hàng.
    Như cái này, nó chỉ nói đơn giản với trò chơi khi bạn có 0 nhân vật trong nhóm. Trong trưởng hợp này, nó tắt item, skills, equip, và status. Bạn thấy 0, 1, 2, 3 chứ? Đó là những cái s mà bạn đã định nghĩa. 0=1 1=2 2=3 etc.... bạn đừng hỏi tại sao lại thế....vì nó chỉ làm như thế... ( lúc trước dịch là như thế, nhưng bạn có thể hiểu rằng 0 trong rgss là cái đầu tiên, thế thui ).
    Dòng này chỉ tắt lệnh chọn save if nếu bạn muốn tắt lựa chọn save trong trò chơi.
    Oooo, bây giờ là cửa sổ...Cái này là thời gian chơi, và những tọa độ của nó.
    Cái này là số bước.
    Cái này là số vàng bạn giữ.
    Cuối cùng là, cửa sổ trạng thái.
    Đây là một phần quan trọng của cửa sổ, nếu bạn có một đối tượng thay đổi....
    Dù bạn không thực thi nó thì, nó cũng là một phần rất quan trọng của script...Nếu bạn quyên việc bố trí của đối tượng đúng cách, sau đó bạn sẽ không thể có khả năng tống khứ chúng..... ( tui cũng chưa hiểu lắm :D )

    Cái này nói cho chúng ta rằng khi cửa sổ lệnh được thi hành, nó sẽ chạy method update_command cái mà chúng ta sẽ cập nhật sau (which we will need to update later).

    Cái này nói cho chúng ta rằng khi cửa sổ status window được thi hành, nó sẽ chạy method update_status cái mà chúng ta sẽ cập nhật sau (which we will need to update later).

    Bây giờ chúng ta định nghĩa method update_command
    Đây cũng là phần mã rất quan trọng. Bạn nhớ những cái s1, s2 và tương tự ở phần đầu? Rùi, ở đây, chúng ta không định nghĩa nó xa hơn, nhưng chúng ta sẽ nói với máy tính chính xác cái gì sẽ xảy ra khi nó được chọn.

    Bây giờ chúng ta định nghĩa method update_status.
    Bây giờ....hi vọng bạn tất cả các lệnh được sử dụng trong việc tạo một CMS cơ bản.....
     
  4. squall&rinoa

    squall&rinoa Donkey Kong

    Tham gia ngày:
    23/1/04
    Bài viết:
    449
    Nơi ở:
    Hải Phòng
    Còn đây là phần tiếng anh của nó.

    Okay....didn't have much time, so I do this in like 20 minutes....
    But, as stated earlier this week, here is my tutorial for creating your own CMS in Ruby! So far this covers the basics and allows you to understand how the Scene_Menu works....however, tomorrow, I will try to post how to create it from scratch. I will also post little tips and neat ideas that I have found for creating a CMS over time.

    So here it is....
    *Note: this does require some basic knowelge of RGSS.

    Chapter 1: Understanding The Menu Scene.
    To understand how to create a CMS, you first need to understand how the Scene_Menu class works. So first, I would like to explain this to you.

    Here is the default Scene_Menu class.
    Hopefully you have recognized some of the objects in here from Dubealex's Previous tutorials. If not, I am going to try to cover as much as I possibly can anyway.
    I guess in order to do this, I will have to make a note on each line....To do this, Press # and type your little note.
    Now, take a look at these lines:
    Now....Your CMS Script does not have to be named "Scene_Menu". You can name it "CMS" for all I care, just remember to call the correct class under the Scene_Map if you are to change the name of the class.

    Also, to introduce those of you who do not know of this command in Ruby. Here is the command for making LONG notes that will only stop when you tell it to.
    =begin and =end. Look for these in the script and see how I use it, so that you may do so yourself. It's useful for long commentary that doesn't fit in one line alone.
    As for this, it simply tells the game what to do when you have 0 actors in your party. In this case, it disables item, skills, equip, and status. See the 0, 1, 2, 3? Those are the s's that you defined. 0=1 1=2 2=3 etc.... don't ask why it does....it just does...
    This line just disables the save option if you disable the save option in the game.
    Oooo, now for the windows...This one is the playtime, and its coordinates.
    This one is the steps taken.
    This one is the amount of gold held.
    Finally, the Status Window.
    This is an important part of the windows, if you have objects that are changed....
    Whether or not you realize it, this is actually a very important part of the script...If you forget to dispose of the objects properly, then you will not be able to get rid of them at all.....
    This one tells us that when the command window is active, that it will run the method update_command which we will need to update later.
    This tells us that when the status window is active, that it will run the method update_status which we will need to update later.
    Now we define the update_command
    This is also a very important part of the code. Remember those s1, s2 thingys we looked at in the beginning? Well, here, we not only define them further, but we tell the computer exactly what will happen when it is selected.
    Now we are defining the update_status method.
    Now....you hopefully understand all of the commands used in creating a basic CMS.....In the next chapter, we will be covering how to Create your own CMS from scratch.
     
  5. squall&rinoa

    squall&rinoa Donkey Kong

    Tham gia ngày:
    23/1/04
    Bài viết:
    449
    Nơi ở:
    Hải Phòng
    Cảm ơn rất nhiều đến nhulan ( người có công chính trong việc dịch bài hướng dẫn này ) nhưng vì dịch ít quá nên tui lại phải dịch phần còn lại. Nhưng công của nhulan là rất lớn vì đây là phần có nhiều từ khó dịch nhất. Và tôi dịch bài này chỉ nhằm giúp đỡ những ai chưa có những hiểu biết cơ bản về RGSS & Ruby. Mong mọi người tiếp tục ủng hộ.



    Dịch từ bài hướng dẫn của Dubealex.
    Tài Liệu Về Ngôn Ngữ Hướng Đối Tượng - RUBY



    Chương I : Ruby & RGSS



    1- Ruby là gì ?



    Mã:
    Ruby là một OOP-ngôn ngữ lập trình hướng đối tượng. Trong khi những người dùng ở phía Tây mới chỉ nghe đến Ruby thì ở Nhật Bản , Ruby đã có sự phổ biến vượt xa cả Python (một OOP khác)
    
    
    [i][u]Vậy cái gì đã làm cho Ruby trở nên phổ biến như vậy ?[/u][/i]
    Ruby đã thêu dệt nên những nét đặc biệt nhất của những ngôn ngữ lập trình. Những nét đó chính là :
    -[b]Sức mạnh[/b]: Ruby là sự kết hợp giữa sức mạnh hướng đối tượng thuần túy của ngôn ngữ OOP cổ điển với sức diễn đạt và sự tiện lợi của ngôn ngữ kịch bản (script) của [b]Perl[/b]. Chương trình của Ruby rất nhỏ gọn, rất dễ đọc và còn có thể giữ được (maintainable) ; ngòai ra bạn còn có thể hoàn tất một vài dòng lệnh mà không có gì là khó hiểu.
    -[b]Tính đơn giản[/b] : Cú pháp và nghĩa của nó rất trực quan và dễ đọc (clean). Và cũng không có “những trường hợp đặc biệt” nào mà bạn cần phải ghi nhớ ^_^. Như các ví dụ (instance), số nguyên (integer), hay các lớp (classes), vừa đủ giống vối mọi thứ khác. Mỗi khi bạn học những cái cơ bản, nó rất dễ dàng để đoán trước được cách làm những cái mới hơn -> đoán đúng ^^.
    -[b]Tính vô hình[/b]:Ruby giải phóng bạn khỏi sự cực nhọc (drudgery) trong việc nhồi nhét của các trình biên dịch (complier). Nhiều hơn những ngôn ngữ khác mà chúng ta có thể làm được, Ruby nằm trong thẩm quyền của bạn do đó bạn có thể tập trung giải quyết các lỗi bằng tay.
    -[b]Sẵn có[/b]: Ruby là nguồn mở nên có thể sử dụng một cách tự do đối với người dùng hay người phát triển. Không giống như nhiều ngôn ngữ mới khác, Ruby không giới hạn bạn về mật nền HĐH và pháp lý (vendor). Ruby có thể chạy trên Unix hay Linux , Microsoft Windows và những hệ thống chuyên dụng khác nữa như các OS hay những cái khác.
    & Hầu hết thì Ruby đặt sự vui thích ở phía sau trong trong việc lập trình. Khi mà lần đầu tiên bạn cảm thấy thích thú khi viết một chương trình - một chương trình có thể làm việc được trong lần đầu tiên, một chương trình đọc được ngày tới, tháng tới, hay năm tới mà bạn chỉ có thể hiểu được chính xác như thế ? Chúng ta tìm thấy ở Ruby như một hơi thở mới trong sự rối loạn (dense), một sự cuồng nhiệt trong thế giới lập trình. ( hơi lằng nhằng ^^ )
    
    [...]
    
    Ruby là một ngôn ngữ hướng đối tượng xác thực. Tất cả những thứ mà bạn làm chỉ là các đối tượng và kết quả của việc bạn làm cũng chính bản thân đối tượng đó .
    
    [...]
    
    Giống như [b]Perl[/b], Ruby cũng giỏi về xử lý văn bản. Giống [b]SmallTalk[/b], mọi thứ trong Ruby đều là những đối tượng, Ruby còn có thêm các khối (block), phần bên trong (interator), các siêu lớp (meta-class) và những thứ tốt khác.
    & Bạn có thể dùng Ruby để viết những server, hay những thí nghiệm của mẫu ban đầu (phototype), và cho công việc lập trình mỗi ngày. Ruby có qui mô tốt vì là một [b][u]ngôn ngữ hướng đối tượng thống nhất và đầy đủ[/u][/b]. ^_^
    
     
    
    [b]Điểm đặc trưng của Ruby :[/b]
    Cú pháp đơn giản.
    Mang các đặc điểm của ngôn ngữ hướng đối tương cơ bản như nhiều lớp (classes), nhiều phương thức (methods), nhiều đối tượng (objects) và hơn nữa).
    Mang thêm các đặc diểm đặc biệt khác như sự pha trộn (mix-ins), nhiều phương thức gỡ rối (singleton methods), sự thay đổi tên (renaming), ....
    Quá tải toán tử (operation overloading).
    Tiến hành các ngoại lệ (Exception handling).
    Sự nhắc lại (iterator) và sự đóng kín (closures).
    Trình gom và xử lý rác (garbage collection).
    Nhập liệu động (dynamic loading) và độc lập trong cấu trúc.
    Tính khả chuyển cao (high transportability) –> chạy trên nhiều nền khác nhau như : Unices, Windows, DOS, OSX, OS/2, Amiga và hơn nữa. ( tui cũng chỉ dựa trên nghĩa và chút ít hiểu biết của mình về lập trình ^^. Vì vậy, nếu có sai  thì làm ơn sửa hộ ^^ )
    Và như bạn đã thấy, Ruby là một ngôn ngữ OOP <Object Oriented Programing> và nhiều chi tiết về OOP nữa sẽ được đề cập ở các phần sau. Thực ra thì Ruby là một nguồn mở cho phép bạn tải về công cụ để tạo chương trình từ bất cứ website nào. Bạn có thể ghé qua trang chủ của Ruby là www.rubycentral.org để tải các công cụ này.

    2- Lịch sử của Ruby

    Mã:
    Ruby được tạo ra bởi Yukihiro Matsumoto (hay còn được gọi là Matz)
    
    Bị ảnh hưởng của [b]Perl[/b], Matz muốn sử dụng tên của một lọai đá quí để đặt tên cho một ngôn ngữ của anh ta, vì thế cái tên Ruby ra đời sau khi Matz nhìn thấy viên đá quí của bạn đồng nghiệp ^_^.
    
    Và sau đó anh ta nhận thấy rằng Ruby giống với  [b]Perl[/b] ở một vài điểm. Trong đá quí thì pearl là tháng sáu còn ruby là tháng bảy. Khi đo cỡ font chữ thì pearl là 5pt Ruby là 5.5pt. Từ đó anh ta nghĩ Ruby là một cái  tên hay cho một ngôn ngữ lập trình mới hơn (hi vọng nó sẽ tốt hơn) so với [b]Perl[/b].
    
    [...]
    
    [i]<< Theo những lời trích dẫn của Matz trênRuby Talk >>[/i]
    
    “Ruby được tạo ra ngày 24 tháng 2 năm 1994, khi tôi đang nói chuyện với bạn đồng nghiệp về khả năng của một ngôn ngữ OOP và những đặc điểm phụ thêm cho nó. Là một Fan hâm mộ OOP trong 15 năm, tôi muốn ngôn ngữ xác thực  trong hướng đối tượng-OOP, và sử dụng ngôn ngữ kịch bản một cách dễ dàng. Tôi đã tìm kiếm nhưng cuối cùng vẫn không tìm được cái nào.” ^_^
    
    “Vì thế tôi quyết định tạo ra nó. Tôi phải mất vài tháng để làm sao hiểu được cách vận hành. Tôi đặt vào nó những đặc điểm mà tôi cho là cần, chẳng hạn như sự nhắc lại (iterator) ; sự đóng kín (closures) hay trình gom và xử lý rác (garbage collection).”
    
    “Sau đó tôi đã tổ chức lại những đặc điểm của [b]Perl [/b]vào thư viện của các lớp (class) và bổ sung chúng. Tôi đã cho ra mắt Ruby bản 0.95 tại Nhật Bản ở một nhóm thảo luận trong nước vào tháng 12 năm 1995.”
    
    “Kể từ đó,  danh sách thư của tôi rất nhiều nên phải lập cả một trang web riêng.”

    3- Hướng đối tượng-OOP là gì ?



    Một ngôn ngữ lập trình hướng đối tượng hay OOP là một ngôn ngữ mà tất cả những gì mà bạn thao tác chính là “đối tượng” (objects).

    (Ghi chú : Một “ngôn ngữ” là tập hợp tất cả các cú pháp (syntax), giới hạn (term), qui tắc (rules) và cấu trúc (structure) được dùng để tạo ra một chương trình nào đó. C++ ; JAVA ; Ruby là những ngôn ngữ khác nhau.)

    Mọi ngôn ngữ hướng đối tượng đều có ít nhất một khía cạnh giống nhau, đó là vì chúng đều là những OOP. ^_^ Cấu trúc cơ bản mà chúng xử lý là như nhau. Một OOP là một tập hợp bao gồm những thành phần chính và chức năng của chúng.

    Bao Gồm :

    - Các lớp – Class
    - Những phương thức – Methods
    - Những thông điệp – Messages
    - Những đối số – Arguments
    - Biến và hằng số – Variables/Constants.

    [​IMG]

    Giải thích sơ đồ:

    -Các lớp
    -Thông điệp
    -Biến số/Hằng số
    -Phương thức[/u] + CODE
    Biến số/Hằng số

    Một lớp thì chứa các biếnphương thức định nghĩa.

    - Một phương thức chứa các biến định nghĩa và CODE.

    - Một thông điệp có thể chứa các đối số.

    - Một đối tượng là một trường hợp của một lớp.

    - Một đối tượng liên lạc qua các thông điệpđối số.



    Ví dụ về các đối tượng trường hợp :



    Hãy xem một lớp như một nhà máy xe hơi, và một đối tượng chính là một chiếc xe hơi. Nhà máy sẽ chứa những chức năng cần thiết để sản xuất mộ chiếc xe hơi, và mỗi chiếc xe sẽ được xem như những trường hợp (instance) khác nhau của cùng một thứ. Những chiếc xe “trường hợp” này khi đó sẽ những đối tượng khác nhau và có thể bị sửa đổi mà không bị ảnh hưởng đến các chiếc xe đối tượng khác. Khi công ty xe hơi cần một chiếc xe khác, họ có thể yêu cầu nhà máy của họ sản xuất một chiếc mới một cách dễ dàng. Một khi nhà máy (class) được tạo ra, nó sẽ tiết kiệm được rất nhiều thời gian khi mà bạn không cần phải thực hiện lại ở mỗi chiếc xe (object) một cách thủ công.

    Ví dụ về sự liên lạc và thuộc tính của đối tượng
    Khi mà bạn muốn truy xuất ( hiểu đại loại là muốn xét ) một thuộc tính của một đối tượng, bạn cần gửi một thông điệp cho nó, và nó có thể cho bạn một câu trả lời. Và khi bạn muốn thay đổi thuộc tính của một đối tượng, bạn cũng cần gửi một thông điệp đến nó, để nó tự sửa đổi. Trong RPG Maker XP, một Hero sẽ có nhiều thuộc tính như tên “Name”, máu “HP” hay cấp độ “Level”. Khi bạn mở menu chính trong game của bạn, bạn có thể thấy được các thuộc tính này (Level, Name và HP) trên màn hình. RPG Maker XP đã làm ở phía sau là gửi một thông điệp đến đối tượng Hero để yêu cầu những thông tin về thuộc tính của nó.

    Một phương thức thường được định nghĩa sao cho một đối tượng có thể nhận được các thông điệp, và cái gì sẽ xảy ra khi nó nhận được thông điệp đó. Như một ý thức, đối tượng sẽ liên kết với cái tạo ra nó là lớp (class) cùng lúc với khi thông điệp được gửi tới đối tượng, và phương thức có liên quan trong lớp đó sẽ được thi hành.

    Quay trở lại ví dụ về Hero của chúng ta : Có nghĩa là lớp định nghĩa Hero trong RPG Maker XP có một phương thức cho mỗi thông điệp mà bạn gửi đến.
    Và cũng có nghĩa là bạn sẽ tìm thấy một phương thức được gọi là tên “Name”, phương thức này sẽ định nghĩa những gì sẽ xảy ra khi thông điệp được gửi và nhận. ( nếu cảm thấy khó hiểu thì bạn thử thay từ phương thức = method. Và method đại loại như là một việc làm gì đó ví dụ class “buổi sáng” có nhiều method và trong số đó có method “ đánh răng “ ^^ ).

    (Ghi chú: mỗi phương thức sẽ dùng để đáp ứng hay trả lời cho nhiều thông điệp ^^).

    4- RGSS là gì ?

    "Ruby Game Scripting System" – Hệ thống kịch bản game viết bằng Ruby. RGSS sử dụng Ruby như ngôn ngữ của chính nó. Vậy nếu bạn biết về Ruby bạn cũng sẽ biết về RGSS. Sự khác biệt giữa RGSS và Ruby rất quan trọng khi bạn biết là nên xem RGSS như là một ngôn ngữ “kịch bản” (scripting) đã sử dụng để tạo thêm các thành phần. Chỉ trong Ruby, nếu bạn muốn hiển thị một hình ảnh lên màn hình bạn không thể chỉ sử dụng cùng một cú pháp như bạn đã sử dụng trong RM XP ( chính cái đó tạo ra sự lằng nhằng của RGSS với các ngôn ngữ thông thường khác ^^ ), bạn phải nhập Code lại với các chức năng đi lên.

    Ví dụ : Để hiển thị hình ảnh bằng RGSS ta làm như sau :

    Mã:
    image = Sprite.new
    image.bitmap = RPG::Cache.picture(name of picture) 
    
    Thật cơ bản, bạn chỉ cần có hai dòng hiển thị hình ảnh lên màn hình, bởi vì bạn sử dụng lớp tên là “Sprite” đã được lập trình sẵn trong RPG Maker XP (Không có sẵn trong Script Editor). Và bạn cũng sử dụng một môđun (module) “RPG” cũng không có sẵn trong Script Editor. Tất cả là làm cho công việc của bạn dễ dàng hơn và nhanh hơn khi nhập Code cho game của bạn. ( Nếu được tôi sẽ post tất cả các module và class của RPGXP trong một ngày không xa. Nhưng chỉ là để bạn tiện tra cứu thôi vì ngay bản thân phần help của RPG Maker cũng đã có đầy đủ rùi ( tui sẽ lấy ở đó mà chỉ khác là tui sẽ dịch nghĩa cú pháp thui ^^ )

    Nhưng khi RGSS sử dụng Ruby, và đó chính là RPG Maker XP sử dụng Ruby (ver 1.80), bạn có thể nhập Code mới một lớp “Sprite” và sử dụng nó hay thêm các chức năng vào trong nó.
    Vì thế, tất cả có nghĩa là RGSS có ít phức tạp hơn so với Ruby ( cái này tui không đồng tình với dubealex nhưng vẫn phải ghi để tôn trọng bản quyền ), bởi vì xử lý ở cấp độ thấp và được quản lý bởi RPG Maker XP cho nên bạn không cần phải nhập Code cho chúng nữa.

    (Ghi chú: xử lý cấp độ thấp có nghĩa là những thứ mà bạn phải nhập Code để hiển thị hình ảnh, để nói chuyện với máy tính (trong Windows), đọc một File nào đó, hay trình bày một File nào đó v.v...)

    5- Script Editor của RPG Maker XP

    RPG Maker XP được xây dựng với một trình “Sửa chữa mã” – Script Editor gắn kèm cho phép bạn Sửa/Thêm những gì mà chúng ta gọi là kịch bản “Scripts”. Thực ra những kịch bản này chính là RGSS Code (dùnh cú pháp & sức mạnh của Ruby) cho phép thêm/sửa đổi các đặc điểm của RPG Maker XP. Khi bạn mở Script Editor lên bạn có thể thấy rất nhiều “Script” đã có trong đó, chính là những script mặc định để một game mặc định chạy, như đối tượng Hero mà chúng ta đã nói ở phần3. Cách mà hãng Entebrain những script thành các lớp. Mỗi lớp nằm trong một trang của riêng nó (cho dù bạn có trộn nhiều lớp vào trong một trang).

    Để mở và sử dụng Script Editor bạn nhấn phím F11 hay Menu > Tool rồi chọn “Script Editor” hoặc sử dụng biểu tượng trên thanh công cụ.

    Lưu ý rằng tên thật của lớp chính là tên mà bạn đặt cho trang (bố cục “tên trang” gồm phần dưới cùng bên trái của cửa sổ), không có gì để làm đối với tên lớp, nó chỉ là tên của script mà thôi. Và nó có thể là bất cứ tên nào, nó không nhất thiết là tên của lớp, như tôi đã nói từ trước, bạn có thể thêm nhiều lớp vào cùng một trang.

    Màu CODE:

    Có nhiều màu Code được sử dụng khi bạn soạn thảo script của bạn, hãy biết rằng màu Code là sự tiện lợi nhất như lập trình trong Ruby (một số thẻ màu đã bị bỏ).

    Màu xanh :

    Màu xanh được trình bày các cú pháp Code, như def, class, end, when, if, case, …
    [​IMG]

    Màu đỏ :
    Màu đỏ được sử dụng để trình bày các con số, như 1, 2, 35 ...
    [​IMG]

    Xanh da trời :
    Màu xanh da trời được sử dụng để trình bày các xử lý và các toán tử, như =, +, và *
    [​IMG]

    Màu xanh lá :
    Màu xanh lá được sử dụng để trình bày lòi chú giải của bạn, lời chú giải được lờ đi trong Code của bạn, nó giống như những gì bạn ghi chú về công việc mà bạn đang làm hay chức năng của Code.
    img]http://www.dubealex.com/index.php?act=Attach&type=post&id=149[/img]

    Màu tím :
    Màu tím được dùng như văn bản (thường là một chuỗi) thành phần trong Code của bạn trong suốt chiều dài với những biểu tượng chỉ dẫn của Ruby.
    [​IMG]

    5- Những đặc tính của Script Editor :

    Script Editor của RPG Maker XP có một vài những đặc tính cơ bản, như là Search ( tìm kiếm ), Replace ( thay thế ) và Go to Line ( đến một dòng bất kì ). Ở đây có một danh sách của những tùy chọn đó.

    Những đặc tính hiển thị code (mã ) :

    ( Nhấn chuột phải vào code view ( đoạn trắng ( hiển thị mã ) ) để nhìn thấy tất cả đặc tính )

    -> Những lệnh sẵn có từ Window Cut/Copy/Paste/Undo.
    -> Tìm kiếm ( Control + F ).
    -> Thay thế ( Control + H ).
    -> Go To Line ( Control + G ).
    -> Phóng to/nhỏ ( Control + con cuộn ( của chuột ) ).


    Những đặc tính của page list ( hiển thị trang ) :[/b]

    Và một điều khác ( giống một tin mừng ) vì bạn có thể sử dụng Unicode trong Script Editor vì RPG Maker XP và Ruby là những sản phẩm của người nhật ( vỗ tay vì Enterbrain đã làm một việc đúng đắn và ném trứng thối vì dùng Ruby là ngôn ngử chủ đạo để tạo ra RGSS ^^ ).

    Đó hỏi đây trả lời ( phần này Dubealex ko có ^^ ) :

    Đó hỏi : Học RGSS để làm gì

    Đây trả lời : Bạn thích tui trả lời kiểu gì ^^.

    Đó hỏi : Tất cả các kiểu.

    Đây trả lời : Thứ nhất, nếu bạn đang dùng RPG Maker XP thì khỏi bản vì nếu nắm rõ nó thì gần như bạn có thể biên soạn tòan bộ phần program của game theo ý thích. Ví dụ như thay đổi CMS ( hệ thống menu ) thay đổi CBS ( hệ thống óanh nhau ) và còn rất nhiều rất nhiểu những cai khác. Tiện đây tôi cũng nói luôn rằng, trình độ RGSS của tôi còn rất hạn chế, tôi chỉ post những cái gì tôi đã học được và hiểu. Vì trên tôi còn rất nhiều người đi trước ( tôi biết vậy ) về RGSS như Faha, Zubachi, Ice Dragon ( nhưng hình như lão này bỏ rùi hay sao í ^^ ).

    Thứ hai, nếu bạn không dùng RPG Maker XP thì học RGSS cũng như học Ruby mà học Ruby là học lập trình ( ^^ ). Mà Ruby là một ngôn ngữ nền tảng để học lập trình. Nên vì thế bạn cũng không lo học thừa đâu.



    Tôi chỉ có thể nghĩ được một câu hỏi để trả lời ngay ai có câu hỏi nào thì cứ tiếp tục post nhé. Thank lot.
    </SPAN>
     
  6. squall&rinoa

    squall&rinoa Donkey Kong

    Tham gia ngày:
    23/1/04
    Bài viết:
    449
    Nơi ở:
    Hải Phòng
    Các bác ơi, có bài hướng dẫn kết thúc chap 2 rùi nhé, nhưng tại tui dùng font .VnTime nên giờ pó tay. Pác nào hảo tâm down về rồi post lên cho anh em nhé.
     

    Các file đính kèm:

  7. squall&rinoa

    squall&rinoa Donkey Kong

    Tham gia ngày:
    23/1/04
    Bài viết:
    449
    Nơi ở:
    Hải Phòng
    Phần còn lại đây nè phần 2 và 3 của dubealex.
     

    Các file đính kèm:

    • rgss.rar
      Kích thước:
      165.6 KB
      Đọc:
      348

Chia sẻ trang này