|
| [VX]Basics of RGGS2 step 1 | |
|
+8TheoAllen reijubv LucyF HayzenTZ rusted_71 nekopia yerry_great CrimsonSeas 12 posters | Pengirim | Message |
---|
CrimsonSeas Novice
Posts : 106 Thanked : 9 Engine : RMVX
| Subyek: [VX]Basics of RGGS2 step 1 2010-01-06, 23:54 | |
| By request , gw mau nyoba bikin basic RGSS2 tutorial. Tutorial ini gw bikin per step, dan mulai dr yg paling basic ttg RGSS2 dulu.Step-step pengajaran disini berdasarkan apa yg gw rasa paling tepat buat diajarkan duluan(berhubung gw bljarnya juga acak2kan jd harap maklum klo urutan tutorialnya juga acak2kan) Kemungkinan besar klo baru baca step 1 nya blom bkl bisa bikin script baru, paling cuma bikin minor changes di default script. Tapi gw bkl bikin step 2, 3 dst, dan moga2 aja di step terakhir udah cukup buat bikin system baru. RGSS2 Basic Tutorial; Step 1Difficulty: 1/5 Tutorial ini bakal ngebahas basic dari programming. Disini gw ga bakal mengajarkan cara2 bikin sistem ini itu, ato bikin CMS ato apalah (mungkin nanti gw bikin example buat beginian di step-step berikutnya), gw cuma ngajarin dasar2 programming doang, kenapa ga lgsg cara2 bikins cript ini itu aja? Karena orang yg ngerti dasar2 programming bakal bisa bikin lebih bnyk sistem2 baru yg lebih inovatif, drpd cuma gw ajarin cara bikin suatu sistem yang mana org itu cuma bkl bisa bikin 1 sistem itu. Step 1 ngebahas hal2 yang bener2 dasar, mungkin kbnykan bakal ngerasa ini ga guna, tp percaya ato ga, bagian basic2 yg kliatannya ga penting ini justru penting banget nantinya. TUTORIAL INI BELOM TENTU BERGUNA BUAT KALIAN!!Hal ini karena ada yang emang namanya bakat dalam orang2. Kira2 sama lah kyk gw baca tutorial spriting sampe mokad juga gw ga bisa spriting, tp scripting malah gw ga pake tutorial segala(ga balanced banget). Ada juga orang yang kebalikan dari gw, bikin graphics dan sprites jago banget, tp ga bisa scripting. Ada juga orang yang balanced, bisa semua biarpun pas2an. Maka itu, tutorial ini blom tentu berguna buat semua orang, tergantung orangnya berbakat di bidang apa dulu. Disarankan buat coba dulu ikutin tutorial ini, nanti klo kalian merasa ngerti, silahkan berbahagia karena kalian bisa lanjut ke step berikutnya. Klo kalian ga ngerti, entah gw yang bikin tutorialnya susah dimengerti ato emang bakat kalian mungkin ga dsini. Apa yang dibahas disini?-Variables -Operators and Assigments -Control Structures -Simple Arrays and Hashes -Data Type part1 -Definition of a method call Variables- Spoiler:
Variable adalah sesuatu yg dipake untuk menyimpan data, object, ato apapun yang ada di game. Bahasa kerennya sih dia representation dari memory address. Jenis2 variable: Local Variable: Variable yg dimulai dengan huruf kecil ato dengan underscore (_). Variable ini biasanya cuma berlaku dalam scope yang terbatas banget (biasanya 1 method definition). - Code:
-
test_variable _localvar variableExample Instance variable: Variable yang berlaku untuk suatu object. Misalnya, suatu object enemy punya instance variable yang menyimpan value untuk HP, MP, Screen Position, etc. Variable ini dimulai dengan tanda @. Variable ini bisa diakses dimana aja dalam 1 object itu, tapi klo objectnya beda variablenya juga beda. Misalnya lagi, tiap musuh punya HP, MP, Screen Position etc yang beda2 nilainya. Perubahan nilai variable HP untuk 1 musuh ga ngaruh ke musuh yang lain. - Code:
-
@instance_variable @hp @mp Global Variable: Variable yang bisa diakses dimana aja, berlaku global dalam 1 system. Variable ini diakses sama object manapun nilainya ya itu2 aja. Variable ini dimulai dengan tanda $ - Code:
-
$global_variable Constant: Variable yang ga bisa di assign ulang. Misalnya 1 variable udah diassign valuenya 5 ya nilainya segitu terus, ga bisa dirubah. Constant dimulai dengan huruf kapital. - Code:
-
CONSTANT_EXAMPLE Itu jenis2 variable, diinget2 aja dulu ini apaan, mgkin ga gitu berguna sekarang tp ntar bkl penting bgd di step2 berikutnya. Operator and Assignment- Spoiler:
Operator itu gunanya untuk memanipulasi data, sementara Assignment untuk meng-assign sebuah value ato object ke sebuah variable. Contoh Operator: - Code:
-
5 + 3 # 8; Addition 5 * 3 # 15; Multiplication 5 / 3 # 1; Division 5 - 3 # 2; Substraction 5 % 3 # 2; Remainder(Modulus klo kata buku matematik SMA) Assignment, Self Assignement Assingement => Meng-assign value di left hand side jadi sama dengan right hand side - Code:
-
#Contoh disini sekalian menjelaskan sedikit tentang data type. Nama2 variable gw bikin sesuai sama data typenya. integer = 100 float = 12.25 float = 100.0 string = "Example" array = [] hash = {} Self Assignment => Duh gw bingung jelasin ini gimana, liat contoh aja ya: - Code:
-
a = 5 b = 3 c = 6 d = 2
a *= b #a = 5, b = 3, a *= b => a = a * b = 15 c += 3 #c = 6, c += 3 => c = c + 3 = 9 c /= d + 1 #c = 9, d + 1 = 3, c /= d => c = c / (d + 1) = 3, inget c udah ditambah 3.
Ngerti lah ya? Sebelum lanjut ke bagian berikutnya, gw mau ngejelasin tentang p. p itu gunanya buat munculin 1 variable ato object ato apapun lah ke sebuah message box. Coba aja deh diatas main, tulis code ini: - Code:
-
p "Testing p" Lah gunanya? Banyak, bisa buat test output dari suatu coding. Misalnya mau ngetes self assignment diatas, tulis ini di atas main. - Code:
-
a = 5 b = 3 c = 6 d = 2
a *= b #a = 5, b = 3, a *= b => a = a * b = 15 c += 3 #c = 6, c += 3 => c = c + 3 = 9 c /= d + 1 #c = 9, d + 1 = 3, c *= d => c = c * (d + 1) = 3, inget c udah ditambah 3.
p a #Muncul 15 di messagebox p b #Muncul 3 di message box p c #Muncul 3 di messagebox p d #Muncul 2 di messagebox
Jadi p itu gunanya buat ngetes hasil dari code2, buat gw ini penting pas gw masih belajar trus nyoba2 syntax2 dasar ruby. Control Structure- Spoiler:
Terbagi 2 jenis: Branching dan Looping Branching: Structure yang bikin pilihan. Disini kan orang2 udah pada tau COnditional Branching di event editor kan? Nah iin sama kyk gitu, cuma lebih gampang pakenya IMO. Branching sendiri ada 2 jenis: if Structure - Code:
-
x = 5 if x == 5 #Kalo x = 5 p "variable = 5" elsif x > 0 #Kalo x > 0 p "variable positif" else #Kalo ga semua yang kesebut diatas p "variable negatif end
#Basic if Structure if condition1 statement blocks 1 elsif conditiion2 => Optional, bisa juga ga pake elsif. statement blocks 2 elsif conditiion 3 => elsif bisa sampe berapa aja statement blocks 3 else => else cuma bisa ditaro di paling bawah, dilakukan klo semua condition diatas ga ada yg terpenuhi state blocks 4 end
Bisa juga bikin simple1 line if structure kyk gini statement if condition Example: x = "Test_if_Structure" if b == 5 Structure ini cuma berlaku buat 1 line statement, dan ga bisa pake elsif ato else Penjelasan buat yg ga tau apa itu condition sama statement: -condition : ya condition, ngecek apakah suatu condition itu bener ato ga. Nilai dari condition ini bisa true ato false, klo terpenuhi ia true, klo ga terpenuhi dia false -statement :1 line di coding yang melakukan sesuatu. Klo linenya banyak namanya statement block Cukup jelas lah ya, sekarang penjelasan operator2 buat conditionnya dulu deh - Code:
-
x == y #true kalo nilai x sama dengan y, untuk object, true klo x adalah object yg sama dengan y. x != y #true kalo nilai x ga sma dengan y, untuk object, true klo x bukan object yg sama dengan y.
x > y #true klo x lebih besar dari y
x < y #true kalo x lebih kecil dari y
x >= y #true klo x ga kurang dari y
x <= y #true klo x ga lebih dari y
a && b #true kalo a = true dan b = true. Sedikit infr yg bakal berguna nantinya, klo a udah ketauan false, b ga bakal dicek. Disebut juga AND operator
#Example: 1 / 0 == 2 && 1 / 2 == 3 #error, 1 gabisa dibagi 0
1 / 2 == 3 && 1 / 0 == 2 #false, 1 / 0 == 2 ga dicek, kalo dicek ini bakal jadi error.
a||b #true kalo a ato b = true. Mirip kayak &&, disini kalo a udah ketauan true, b ga bakal dicek. Disebut juga OR operator
a ^ b #true kalo salah 1 true dan salah satu false. Disebut juga XOR operator
!a #Negation, klo a = true, !a = false, klo a = false, !a = true. #Inget biarpun !a = false, a sendiri tetep true, dan sebaliknya.
Aturan buat && dan || klo conditionnya banyak tuh kayak logika matematik di SMA gitu lah. Nah sekarang contoh penggunaan if structure: - Code:
-
a = 6 b = 10 c = 12
if a == 6 && b * a > 70 && c < 13 p "statement block 1" elsif b < 5 && c / 0 == 6 p "statement block 2" elsif c / a == 2 && b % a == 4 p "statement block 3" else p "else block" end
#Outputnya pasti "statement block 3"
#Contoh 1 line structure y = 7 p "Simple 1 line if structure" if y > 0 && y < 10 Kebalikan dari if itu unless, if kan artinya kalo, nah unless artinya kalo ga, jadi ya kebalikan dari if, statement block cuma bakal jalan kalo condition ga terpenuhi. Satu lagi bedanya, unless ga punya elsif, tapi tetep punya else. - Code:
-
#Basic unless structure unless condition #Kalo condition ga terpenuhi (condition = false) statement_block else #kalo condition terpenuhi else_statement end
#Simple 1 line structure statement unless condition #Sama lah kyk yang if, cuma ini statement jalan kalo condition ga terpenuhi. Yah 'unless condition' itu secara garis besar sama dengan 'if !condition' lah. Nah sekarang gimana kalo misalnya kayak gini, ada variable x, kalo x == 1, p "A", klo x == 2, p "B", klo x == 3, p"C", klo x == 4, p "D", gimana bikin branch structurenya? Bisa sih pake if terus2an, tapi repot, mending kita pake case structure aja. case Structure - Code:
-
x = 3 case x when 1 p "A" when 2 p "B" when 3 p "C" when 4 p "D" else p "Ga ada pilihannya" end
#Basic case Structure case variable/object when condition1 statement block 1 when condition2 statement block 2 when condition3 statement block 3 else else statement Yah intinya klo ngerti if structure pasti ngerti yg ini juga lah, gw ga bahas banyak2 deh. LoopingLooping berarti ngulang, tujuannya buat ngulang statement block yang ditentukan sampe loop selese. Ada juga loop yang ga selese2, namanya infinite loop, contoh infinte loop itu method buat ngerefresh layar tiap 1/60 detik (Graphics.update) Kita bakal bahas sedikit tentang simple loop dulu. while Structure - Code:
-
x = 0 while x < 5 p x x += 1 end #Code ini bakal munculin 5 message box, yang pertama tulisannya 0 yg terakhir bakal munculin 4.
#Basic while Structure while condition statement block #statement block bakal diulang berkali2 sampe condition ga terpenuhi. end Untuk conditionnya persis sama kyk di branching structure, pastikan waktu bikin statement block, ada bagian yang kalo diulang berkali2 bakal bikin condtion ga terpenuhi. - Code:
-
#Infinite Loop x = 0 while true p x x += 1 end
y = 1 while y > 0 p y y += 2 y *= 3 end #Contoh2 infinite loop, sangat ga disarankan buat nyoba code ini soalnya ntar bakal ngulang2 munculin messagebox #nonstop. Loop ini kalo diliat, statement blocknya ga bikin condition jadi ga terpenuhi, makanya dia ngulang2 terus. Di contoh #pertama, karena conditon = true, ya apapun yg terjadi loopnya bakal ngulang2 terus. Di contoh kedua, conditionnya #selama y > 0, dan seperti yg bisa dilihat sampe kapanpun y bakal selalu > 0.
for StructureFor structure ini biasanya buat bikin loop dari sesuatu yang punya size, misalnya loop array, atau loop dari suatu range angka, biasanya itu pake for Structure - Code:
-
for i in 1..5 p i end #Loop di atas bakal ngulang 5 kali, mulai dari i == 1 sampe 1 == 5. x..y berarti dari x sampe y. Kalo diterjemahin ke bahasa # indo, for i in 1..5 berarti 'Untuk i dalam jangakauan dari 1 sampe 5.'
Contoh loop array - Code:
-
array = [0, 2, 5, 5, 3] for a in array p a end #Loop diatas bakal ngecek semua isi array satu-satu, dan ngelakuin statement block dengan isi array yg lagi dicek saat itu. Di #bahasa indonesiain, kira2 artinya 'Untuk a di dalam array.' Loop diatas bakal ngeluarin 5 messagebox berurutan, dengan #output 0, 2, 5, 5, 3 berurutan. Ada lagi sebenernya yg namanya until Structure, cuma until Structure itu persis sama kayak while, bedanya cuma kalo while kan selama condition terpenuhi, kalo until sampe condition terpenuhi. Kira2 sama kayak if dan unless gitu lah. break dan nextbreak dan next itu tujuannya buat mengubah aliran loop. break: Keluar dari loop paling dalem. - Code:
-
x = 10 while true p x x += 10 break if x >= 100 end #Loop diatas bakal ngulang terus menerus, dan nambah nilai x sebesar 10 tiap pengulangan. Saat x >= 100, program bakal #keluar dari loop karena ada break disitu. next: Lanjut ke pengulangan berikutnya. - Code:
-
y = 0 while y < 10 y += 1 next if y % 2 == 0 p y end #Loop di atas bakal ngeluarin semua angka ganjil dari 1 - 9 dalam message box. next if y % 2 == 2 berarti loop #bakal lanjut ke pengulangan berikutnya saat y genap. Lanjut pengulangan berarti dia bakal skip semua statement #block di bawah next. Inget2 bedanya break sama next, break itu buat bener2 keluar dari loop, biasanya buat keluar dari infinite loop klo suatu condition udah tercapai. next itu buat skip loop, loop nya tetep jalan cuma di skip ke pengulangan selanjutnya (kalo ada pengulangan selanjutnya) Sedikit intermezzo, di bahasa inggris pengulangan disebut iteration dan penambahan value sedikit2 di loop itu namayna increment, ini lumayan penting klo mau minta bantuan di forum luar soalnya kmaren gw nemu org yg ngakunya Masterful tp ga tau apa itu iteration dan increment Simple Arrays and Hashes- Spoiler:
Tadi kan beberapa kali gw nyebut tentang Array, sebenernya array itu apa? Anak Rayangan kah ? Array itu kumpulan data, dia itu gunanya buat nyimpen beberapa value sekaligus. Gunanya? Macem2, hampir semua script itu butuh penggunaan array trutama script2 yang pake config2 segala. Contoh array: - Code:
-
array = [1, 2, 5, 7] #Basic syntax #array = [data1, data2, data3,...data n] #Jumlah daa bebas, bahkan bikin array kosong pun gapapa Data2 di array itu punya index, index itu bisa diartikan data keberapa lah. Mulainya dari 0 sampe ukuran array - 1. Jadi misalnya 1 array isinya 5 data, indexnya mulai dari 0 sampe 4. Nah gimana caranya ngambil data dari array? Gini caranya: - Code:
-
ar = [5, 2, 6, 7, 10] p ar[0] #5 p ar[2] #6 p ar[4] #10
#Basically, syntaxnya gini deh: array[n] bakal ngasih value dengan index == n. Inget2 mulainya dari 0 bukan dari 1, dan #slsenya di size - 1
Nah array ini punya beberapa method yang berguna buat dapetin data2 tentang array tersebut. - Code:
-
array = [0, 1, 2, 3, 4, 5, 6, 7] #Minta ukuran dari array (jumlah data) : array.size array.size p array #8
#Nambah isi array :array.push(val) array.push(3) p array #[0, 1, 2, 3, 4, 5, 6, 7, 3]
#Ngilangin data di array. :array.delete(val) Semua data dalam array yang sama dengan val bakal diilangin array.delete(3) p array #[0, 1, 2, 4, 5, 6, 7]
#Ngilangin data dengan index tertentu :array.delete_at(index) array.delete_at(0) p array #[1, 2, 4, 5, 6, 7]
Nah kalo hash itu apa? Hash itu kayak array, tapi kan kalo value di array punya index, kalo di Hash punya 'key'. Contoh: - Code:
-
hash = {"Key1" => "Value1","Key2" => "Value2", "Key2" => "Value3"}
Kalo di array, kita kalo mau minta value dari data ke sekian, kita mintanya kan pake index, jadi data keberapa yang kita cari. Nah ini agak susah kalo urutan datanya random, makanya pake Hash, karena hash itu ga penting urutannya gimana aja, yang penting ada key sama value nya. Inget dalam 1 hash bisa ada 2 value yang sama, tp ga boleh ada 2 key yang sama. Hash Operations: - Code:
-
hash = {2 => "Hash", => 3 => "Example", 4 => "Key", 7 => "value"} #Minta data dengan key tertentu : hash[key] p hash[3] #"Example"
#Ngeset sebuah key dan value ke hash: hash[key] = new_value #Kalo key tsb udah ada di hash, bakal overwrite value yang di map ke key tsb. #Kalo key tsb blom ada di hash, bakal bikin pasangan key => value yang baru. hash[2] = "Hashes" p hash[2] #"Hashes"
#Bikin suatu array yang isinya semua key yang ada di hash : hash.keys keys_array = hash.keys p keys_array #[2, 3, 4, 7]
#Bikin suatu array yang isinya semua value yang ada di hash :hash.values values_array = hash.values p values_array #["Hashes", "Example", "Key", "Value"]
#Minta banyak data dalam hash : hash.size p hash.size #4 Hash dan array bakal lebih bnyk di bahas di step2 berikutnya. Data types part 1- Spoiler:
Disini bakal ngebahas sedikit tentang data types. Gw nyebutnya data type sih gara2 gw kebiasaan kyk gitu di univ tp klo di Ruby documentation ini lebih sering disebut Object Type. Kita bakal bahas numerical data types sama String data type. Array dan Hash udah dibahas diatas jadi ga gw bahas dulu disini. Numerical data types: integer => 10, 5, -10, 0, 9999, 500, 650, 100, -900. Integer itu artinya bilangan bulat. float => 10.0, 5.0, 10.5, 0.0, 6.125, -8.15 Float itu bilangan desimal, inget bahwa 10.0, 5.0, 0.0 juga termasuk float type. Sedikit fakta menarik tentang integer division. Di programming language, 25 / 100 * 100 ga sama dengan 25 * 100 / 100. Kenapa? Liat di bawah: - Code:
-
p 25 / 100 * 100 #25 / 100 = 0, 0 * 100 = 0 p 25 * 100 / 100 #25 * 100 = 2500, 2500 / 100 = 25 Loh kok 25 / 100 = 0? Bukannya 0.25? Nah ini terjadi karena kedua operand (operand=value yang dioperasikan sama operator) itu data typenya integer, jadi hasilnya juga harus integer. Integer itu karena berupa bilangan bulat, klo hasilnya desimal, bakal dibuletin ke bawah, jadi 0.25 = 0 Numerical data conversion: Ada 2 jenis, explicit conversion dan implicit conversion: Explicit conversion: Conversion lewat method call. Lebih jelasnya liat aja di bawah: - Code:
-
x = 5.25 y = 10 #Untuk mengconvert data type dari float ke integer, kita pake method call to_i p x.to_i #5
#Untuk mengconvert data type dari integer ke float, kita pake method call to_f p y.to_f #10.0
#Untuk mengconvert data type ke String, kita pake method to_s p x.to_s #"5.25"
Implicit conversion: Conversion lewat mathematical operation. Berlaku buat conversion dari integer ke float - Code:
-
a = 5 b = 6.0 c = 12
p a * b #30.0 Data typenya a berubah jadi float kalo dikali sama float number
p a * b / c #a * b = 30.0, 30.0 / 12 = 2.5
p a / c * b #a / c = 0, 0 * 6.0 = 0.0
Inget bahwa di programming language, urutan operation itu ngaruh sama hasil datanya. StringString = Senar gitar? Bukan2, maksud string disini itu data type yang merepresentasikan text. String itu harus ditutup sama tanda "" - Code:
-
x = "String" y = "Example" String operations: Ini blom dibahas ya tadi, karena td kan kita baru bahas mathematical operations ya. Nah klo string opration itu agak beda, liat contoh di bawah: - Code:
-
x = "5" y = "8" p x + y #"58"
a = "String" b = "Example" p a + " " + b #"String Example"
k = "Test" p k * 5 #"TestTestTestTestTest" Kok kayak anak kecil aja 5 + 8 = 58? Lah emang gitu, kan dia data type yang ngurusin soal text, jadi 5 + 8 = 58 dong String conversions: String conversion cuma ada yg explicit doang. - Code:
-
x = "String1" y = "String2" a = "6" b = "75.7"
#Untuk conversion dari string ke integer, pake method call to_i p a.to_i #6 p b.to_i #75 p x.to_i #0 => Yap emang gitu, jangan tanya gw kenapa.
#Untuk conversion dari string ke float pake method call to_f p a.to_i #6.0 p b.to_i #75.7 p y.to_i #0.0
Trus apa gunanya kita blajar data type ini? Percaya deh, manipulasi data type itu banyak banget kepakenya, disarankan klo kamu emang niat jadi scripter buat pelajari data type bener2. Definition of method call - Spoiler:
Dari tadi gw nyebut method call, itu apaan sih btw? Method call itu artinya kita 'memanggil' method tertentu yang ada di dalam suatu object. Misalnya dalam object Array ada method namanya size, nah kita panggil method itu buat mengeksekusi method dengan nama yg sama. Dalam hal ini, method 'size' itu ngasih jumlah data yang ada di dalam array. Contoh2 method call: - Code:
-
integer.to_s string.to_f integer.abs #Ngasih nilai absolute dari integer ato float array.clear #Bikin array jadi kosong actor.hp enemy.mp $game_party.gold etc Inget satu hal yang penting tentang method call ini. - Code:
-
a = 5.25 x = a.to_i # x = 5, tapi a tetep 5.25. Ini karena a.to_i ga ngerubah nilai a, dia cuma ngasih nilai a.to_i. Kira2 sama aja kyk: b = 25 y = 5 b /= y * 5 #b = 1, tapi y tetep 5, bukan berarti y jadi 25. Beberapa method call itu punya 'argument', yaitu value yang dikasih buat menjalankan method tsb. Agak susah jelasinnya, buat lebih jelas liat contoh deh: - Code:
-
actor.make_obj_damage_value(user, obj) @actor_command_window.setup(actor) Nah disini, semua yang ada di dalem tanda kurung itu namanya argument. Argument ini yang menentukan hasil dari method call tersebut. Misalnya, method call pertama bakal bikin damage yang dibikin ke actor berdasarkan siapa yg make (user) dan skill/item yang dipake(obj). Di contoh kedua, method call bakal bikin command2 di actor command window jadi sesuai sama actor yang lagi active, dalam hal ini, bikin nama command skillnya berubah2 tergantung apa yg di set di class database
Nah segitu dulu aja Basic Tutorial RGSS2 step 1. Semoga berguna buat membantu para calon scripter buat blajar lebih bnyk tentang scripting. References-Help File RPG Maker VX (yeah gw ngambil bahan2 ini sebagian besar dari help file, cuma gw coba jelasin lebih detail.) Cari bagian tentang: +Numeric +String +Hash +Array +Control Structure +Operator and Assingment +Variables and Constants +Method call(bagian ini baca2 dikit aja, gw blom bahas terlalu dalem soalnya -Google is your best friend!! Learn yourself!!Apa yang ada di tutorial ini mungkin ga lengkap, maka dari itu sangat diharapkan kalian mau coba belajar sendiri. Pake daftar references di atas buat belajar lebih dalam ttg apa yg dibahas di tutorial ini. Coba2 sendiri mainin codingannya buat ngetes banyak hal. Baca2 default script ato script orang lain buat liat contoh2 penggunaan apa yang gw bahas disini. Buset dah panjang banget!!Gw juga kaget tau2 sepanjang ini tapi ini baru sebagian loh, masih bnyk hal yg harus dipelajari ttg programming, klo kalian emang niat jadi scripter bersabarlah kalian, bayangkan gimana ribetnya pas gw blajar tanpa tutorial
Terakhir diubah oleh CrimsonSeas tanggal 2010-01-07, 00:52, total 1 kali diubah | |
| | | yerry_great @> Moderator
Posts : 1251 Thanked : 15 Engine : Multi-Engine User Skill : Very Beginner Type : Jack of All Trades
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 00:17 | |
| Wah kk Saya baca dulu ya... nanti saya tunggu tutorial yang lain... Udah lama banget nunggu tutorial RGSS Mungkin ini bisa di sticky... gmn mimin/momod | |
| | | nekopia Novice
Posts : 170 Thanked : 5 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 00:44 | |
| XDMantap!! Gw jadi terharu... Jadi inget kuliah gw! Keep posting bro! Sangat bermanfaat [meski sedikit lieur] Seandainya gw bisa ngasi Rep. Point Btw, gw mo nanya yang : - Code:
-
c /= d + 2 #c = 9, d + 2 = 4, c *= d => c = c * (d + 2) = 36, inget c udah ditambah 3 operator awalnya kan "/" kok berubah jadi "*"? Tengkyuu... | |
| | | CrimsonSeas Novice
Posts : 106 Thanked : 9 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 00:51 | |
| @yerry: Thank you, coba dibaca dulu, klo ada yg ga ngerti tanya aja, skalian bisa gw update tutorialnya biar lebih gampan dimengerti @neko: Ini emang urutan2nya gw coba bikin bedasarkan materi kuliah gw, biarpun baru materi kuliah semester 1 sih Btw yang itu salah ketik gw, bentar gw benerin dulu, thanks yak | |
| | | rusted_71 Scripter Karatan
Posts : 392 Thanked : 11 Engine : RMVX Skill : Beginner Type : Scripter
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 01:11 | |
| weeh... sep banget tutornya...
usulan buat tambahan tentang aliasing tentang table
trus kk request donk tutor tentang method gsub di string... gw dari dulu ga ngerti2 gimana sih tuh... codenya ga jelas gitu soalnya... | |
| | | CrimsonSeas Novice
Posts : 106 Thanked : 9 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 01:22 | |
| @rusted: Sabar gan, ini kan masih step 1, masalah aliasing itu masuk step 2, klo table mungkin step 2 ato 3. Disini soalnya blom mempelajari tentang method defining, sedangkan aliasing itu kan lanjutan method defining. Klo table, sampe skrg gw cuma nemu Table dipake buat parameter actor, dan Table itu juga terbatas soalnya limit data dari -32768 sampe 32767 (sempet kesel gw pas bikin CS:U Battler stats gara2 ini, ga bisa bikin HP diatas 32767 jadinya, klo ga balik lagi ke 1 -_-'). Tapi nanti gw bkl jelasin juga kok, tenang aja Klo tentang gsub gw bahas dikit kok di tutorial note tag, cek disitu aja | |
| | | rusted_71 Scripter Karatan
Posts : 392 Thanked : 11 Engine : RMVX Skill : Beginner Type : Scripter
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 02:55 | |
| seep dah... tambahain dikit deh... soal argument di method... banyak scripter yang pas lagi buat script tuh kadang2 salah masukin argument di method... <= termasuk gw... apa lagi yang baru hijrah... dari RGSS ke RGSS2... cthnya... method "gain_item" di class Game_Party klo di RGSS method itu di gunain dengan masukin item_id(numericl), ama jumlahnya (numerical) tapi klo di RGSS2 method itu digunain dengan masukin data item(RGP::Item) ama jumlahnya (numerical) jadi klo mau manggil method liat2 dulu method itu perlu argumen apa ga, trus klo ternyata perlu, cari tahu dulu jenis argumen yang dimasukin tuh apa? klo mo liat coba aja pencet CTRL+F di script editor trus ketik nama methodnya bis tuh pilih yang ada "def" di depan nama method itu... tapi klo ternyata ga ada, cthnya method2 di array, bitmap, sprite, dll kamu bisa cari di help... masukin aja nama methodnya di tempat search... intinya seh biar kamu yang mau belajar script ga mengalami kesalahan dalam memanggil method dengan cara mengetahui method2 itu... wih panjang juga ya... dah lah belajar audit lagi... | |
| | | HayzenTZ Novice
Posts : 131 Thanked : 4 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 05:37 | |
| Wow,nice~ tapi gw masih belajar dasarnya dulu di bukunya Pragmatic Programmer (Ruby language for dummies lol) masih banyak yg blum ngerti.. jadi blum berani coba2 diterapin ke RGSS2,haha. | |
| | | CrimsonSeas Novice
Posts : 106 Thanked : 9 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 06:35 | |
| @rusted: Sabar kk, argument itu dibahas lebih detail nanti pas lagi bahas method sekalian, kan disini blom begitu dijelasin method itu sebenernya apa. Di step 2 masuk kok detail lebih dalam tentang arguments.
@Hayzen :Loh ini pragmatic Ruby loh, yang gw bahas ini kan basic dari RGSS2, dimana basic dari RGSS2 itu Ruby bukan? Di step 1 ini, semuanya masih persis sama kyk Ruby, yang ngebedain Ruby sama RGSS2 itu kan cuma ditambahin Built-in Module, Classes, Functions dan bebrapa yg lain, sisanya sih sama persis. | |
| | | LucyF Newbie
Posts : 98 Thanked : 3 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 08:17 | |
| Yow! terbit juga tutorialnya. Keren, dalam waktu dekat langsung bisa bikin sebayak ini. Sebagai salah satu pihak yang juga ngerasa request saia sangat berterima kasih kk Crimson Looks readable . Terusin mpe step terakhir kk. Meskipun mungkin ngga ngasi komen2 tapi yakinlah banyak yang keeping their eye on tutorial kayak gini. (Termasuk saya ) Oke, save dulu. Soalnya sekarang lagi fokus scripting di Action Script. Ntar baru nyoba ke RGSS2, kalo belajarnya bareng2 kan ribet tuh. Saya kasi rep deh ^^V (lho lho mana tombol rep-nyah?) | |
| | | reijubv Kai Runes
Posts : 1476 Thanked : 33 Engine : RMVX
Trophies
Awards:
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 08:46 | |
| @crimson emmm, constant bisa dirubah loh, sebagai bukti, coba buka script saya yg limited vision >.< dan juga . . . . coba pake tipe data long integer untuk integer yang panjang, oia, saya pernah coba mempengaruhi movement speed dari sebuah event dengan angka float, tapi saya rubah menjadi int dengan cara begini : a = 3.5 b = a.to_int dan saat di test, moevement speed yang menggunakan variable b tetap saja 3.5, tidak berubah menjadi 3 atau 4, try it out! untuk string, ada beberapa cara untuk menentukan suatu text itu string atau bukan : semua yang berawal menggunakan 2x slash (//) dan diakhiri dg itu lagi adalah string semua yang berawal dengan (apa ini namanya) (') itu juga string pendefinisian string menggunakan " " didalam stringnya bisa menggunakan (/) juga menggunakan (') tapi dua selain itu tidak bisa menggunakan " " di dalamnya, kalaiu menurut bahasa pemrograman C, " " adalah string, sedangkan ' ' adalah char, untung aja di ruby disatuin >.< oia, untuk memanggil method dari sebuah module script misalnya : - Code:
-
module cobain def buang_sampah raise "Duh, ini rpgmaker, bukan layanan buang sampah" end end
untuk memanggil def buang_sampah, tidak bisa menggunakan Cobain.buang_sampah!!! untuk manggil si buang_sampah, taruh "self." (tanpa tanda kutip) sebelum nama def itu, seperti ini : - Code:
-
module cobain def self.buang_sampah raise "Duh, ini rpgmaker, bukan layanan buang sampah" end end
maka berikutnya anda hanya perlu menggunakan cobain.buang_sampah untuk instance variable, ada cara supaya bisa diakses dari luar class yang menggunakannya, misalnya dengan cara merubahnya menjadi attribute variable : setelah mendefinisi nama class, definisikanlah variable yang ingin anda gunakan dengan kriteria sebagai berikut : attr_accessor :nama_variable # ini adalah variable yang bisa dibaca dan ditulis dari luar class attr_writer :nama_variable # ini adalah variable yang HANYA bisa ditulis (kalau dari luar class) dan tidak mereturn value nya attr_reader :nama_variable # ini adalah variable yang hanya bisa dibaca (kalau dari luar class) untuk membuktikan tentang attribute_variable bisa diliat di banyak script bawaan XP/VX . . . <OOT> Saya lebih milih menggunakan Gosu daripada Ruby , semoga RPGMaker berikutnya merubah RGSS menjadi Gosu karena jauh lebih menarik dan lebih mudah . . . (meskipun sama pemrograman utk game dari Ruby) Terakhir, belajar scripting itu fun! Kalau kalian sudah bisa bikin HUD sendiri misalnya, pasti ketagihan untuk mencoba script baru, entah edit yang orang, atau bikin sendiri, jadi, keep scripting and keep rm-ing. . . | |
| | | CrimsonSeas Novice
Posts : 106 Thanked : 9 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 09:38 | |
| - reijubv wrote:
- @crimson
emmm, constant bisa dirubah loh, sebagai bukti, coba buka script saya yg limited vision >.<
Oh iya yang ini gw lupa, gw ingetnya di java constant itu ga bisa dirubah. - Quote :
dan juga . . . . coba pake tipe data long integer untuk integer yang panjang, Buat apa, ruby itu ga pake long ato integer, dia cuma punya integer yang kebagi 2 jadi Bignum sama Fixnum, Fixnum itu buat angka yang ga gitu gede, kalo udah gede banget OTOMATIS langsung jadi Bignum, yang bisa nyimpen angka berapa aja. Klo long kan masih ada batesnya berapa gitu gw lupa. - Quote :
oia, saya pernah coba mempengaruhi movement speed dari sebuah event dengan angka float, tapi saya rubah menjadi int dengan cara begini : a = 3.5 b = a.to_int
dan saat di test, moevement speed yang menggunakan variable b tetap saja 3.5, tidak berubah menjadi 3 atau 4, try it out!t Yakin udah bener pake b? Kalo a sih emang 3.5, tapi kalo b ya jadi 3, coba aja di script2 lain pasti jdnya gitu. Coba aja dibawah pake p b, liat b nilainya brapa, 3 ato 3.5 - Quote :
untuk string, ada beberapa cara untuk menentukan suatu text itu string atau bukan :
semua yang berawal menggunakan 2x slash (//) dan diakhiri dg itu lagi adalah string semua yang berawal dengan (apa ini namanya) (') itu juga string
pendefinisian string menggunakan " " didalam stringnya bisa menggunakan (/) juga menggunakan (') tapi dua selain itu tidak bisa menggunakan " " di dalamnya, kalaiu menurut bahasa pemrograman C, " " adalah string, sedangkan ' ' adalah char, untung aja di ruby disatuin >.< Yang paling umum pake "" kan? Btw, kalo mau ada tanda " di dalem string pake escape sequence, jadinya \" Anyway, biasanya " " itu dipake buat bikin string biasa, klo // itu biasanya dipake buat regular expression, emang ga wajib tapi itu emang hampir semua orang pakenya kyk gitu. Sisanya juga gw udah tau kok, udah masuk menu buat step berikutnya. Mengenai method dari module, disini gw aja blom bahas module itu apa, tunggu udah jelas dulu module itu apa. Dan yg kamu bahas itu tentang method definitionnya, sedangkan yg gw bahas itu baru method call nya. Kalo method definition emang blom gw bahas. Dan untuk instance variable, tunggu sampe gw bikin penjelasan ttg class dan object dulu, ntar juga gw jelasin attr_accessor dll juga blom pada tau class dan object itu apa. Dan gw minta tolong banget, ini tutorial gw yang bikin, gw tau apa2 aja yang harus dimasukkin dan kapan harus dimasukkin. Klo main ditambah2in gitu malah jadi ngaco urutannya. Mendingan tunggu aja sampe tutorial gw abis semua, liat mana yang kurang baru tambahin. Ato sekalian bikin tutorial baru. Sori klo gw jadi emosian gini cuma dr kemarin isinya orang2 pada sok2 nambah2in pdhl emang blom waktunya gw masukkin.Inget ini step by step tutorial, klo emang kamu udah ngerti ttg itu liat2 dulu apakah emang udah saatnya dimasukkin ato blom. Apa gunanya dikasih tau ttg method defintion untuk module klo method defintion biasa aja blom gw kasih tau? Apa gunanya juga ngasih tau attr_accessor dll klo blom gw jelasin apa itu class dan object, gimana cara bikin class dan object etc?Emang sih pas gw dulu bljar otodidak gw tau duluan ttg attr_accessor dll daripada class dan object, tp udah lama scripting gw tau juga itu urutannya salah. Kcuali ralat dari rei ttg constant, I appreciate that 1 part only. Sori gw marah2, mau dikasih warn bar ato rep - juga gpp. | |
| | | reijubv Kai Runes
Posts : 1476 Thanked : 33 Engine : RMVX
Trophies
Awards:
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 09:56 | |
| @crimson ah, tidak masalah, sama2 pelajar ayo kita belajar sama-sama, saling improv satu sama lain, lagian kalo kita berdebat di sini kan orang lain juga jadi lebih banyak tau tidak ada manusia yang sempurna, lebih banyak yang sembrono, hehehe btw, tentang movement speed pake float.to_int tetep aja movespeednya bergerak 3,5 pixel, bukan 3 pixel atau 4, mungkin bug dari engine VX . . . | |
| | | TheoAllen ♫ RMID Rebel ♫
Posts : 4935 Thanked : 63
Trophies
Awards:
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-01-07, 11:21 | |
| Yeah, it's an nice tutor. Kayaknya terlalu kejem kalo tar tenggelam Buat yang mau belajar RGSS2. Tapi kok step satu ya? Berarti masi ada step2 laen dunk? Kalo bisa kumpulin jadi satu disini *pinned untuk sementara OOT: lho2 yang dipinned dah banyak tu kapan2 buat tutorial list. Sekarang lagi sibuk EDIT: kalo ada yang bersedia membuatkan tutorial list tar aku kasi rep poin | |
| | | Durea Novice
Posts : 161 Thanked : 3 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-02-17, 14:17 | |
| misi newbie mo nanya nih... kalo RGSS2 itu pake bahasa pemrograman apa yah.. soalnya ane g ngerti tutorialnya mas TS...(bukan Tutornya jelek tapi kan masing2 orang cara pemahamannya beda heheh)... kalo RGSS2 itu emang dah sebuah bahasa pemrograman ada e-booknya ga yak ? | |
| | | dnasman
Admin Kodok Ganteng Indonesia™
Posts : 1361 Thanked : 21 Engine : RMXP Skill : Intermediate Type : Event Designer
Trophies
Awards:
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-02-17, 14:24 | |
| | |
| | | Durea Novice
Posts : 161 Thanked : 3 Engine : RMVX
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-02-17, 14:48 | |
| - dnasman wrote:
- ryu1210 wrote:
- misi newbie mo nanya nih...
kalo RGSS2 itu pake bahasa pemrograman apa yah.. soalnya ane g ngerti tutorialnya mas TS...(bukan Tutornya jelek tapi kan masing2 orang cara pemahamannya beda heheh)... kalo RGSS2 itu emang dah sebuah bahasa pemrograman ada e-booknya ga yak ? RGSS2 kalo ga salah pake ruby kalo serius mw belajar RGSS coba cek di sini >>> https://rmid.forumotion.net/tutorials-f13/kompilasi-tutorial-rgss-dan-ruby-t877.htm
jgn lupa kenalan di thread Introduce Yourself ok TKP dulu.... sorry langsung main loncat aja hehehe nanya dung...nih daped Script dari kk Brad.... class Window_Test < Window_Base def initialize super(0, 0, 200, 200) self.contents.draw_text(0, 0, 180,32, "Hello World") end end Window_Test.new Window_Base itu apa ya kenapa musti disitu ? Window_Text itu nama class berarti bisa bebas kan ya ? def initialize ini maksudnya apa ? super(viewport) ? ko di help file Windows.new(viewport) ya? Maaf Jika banyak bertanya | |
| | | hart Senior
Posts : 805 Thanked : 38 Engine : Other Skill : Very Beginner Type : Developer
| Subyek: Re: [VX]Basics of RGGS2 step 1 2010-02-18, 11:11 | |
| @^: class Window_Base itu induknya para class Window. Coba buka class Window_Base, di sana banyak method2, variabel, dll yang mengatur window2 yang bakal dipake di window2 lain. Jadi untuk menggunakannya, Window_Base itu harus diwariskan dulu ke class yang akan memakainya(Bahasa umumnya disebuat inheritance). Cara mewariskannya ya tulis seperti contoh itu pake tanda '<' . Maaf bila salah Contoh: Method untuk menampilkan class, nama actor, dll ada di Window_Base. Terus misal kita buat class Window_Coba, kita ingin menampilkan nama actor di class itu, maka kita harus memanggil method yang ada di Window_Base, dan untuk bisa memanggil itu, Window_Coba harus mewarisi class Window_Base. def initialize itu Constructor. Fungsinya biasanya untuk memberi nilai awal/inisialisasi variabel2, dll yang akan dipakai di class itu. super itu untuk melakukan kode2 yg ada di class induk(dalam hal ini Window_Base). Jadi, bila di method initialize class Window_Test diberi perintah super, maka akan dijalankan method initialize yang ada di class Window_Base. Method initialize di class Window_Base memiliki 4 argumen(atau parameter yah?), karena itu ketika menulis super juga harus diberikan 4 argumen. Maaf bila salah Hmm.. biar gak OOT: wah, mantap tutorialnya, om CrimsonSeas, sangat berguna bagi saya yang bodoh ini tapi step 2 nya mana nih? kutunggu yah kehadirannya.. hihihi... | |
| | | Omega_Xis Newbie
Posts : 7 Thanked : 0 Engine : RMVX Skill : Beginner Type : Event Designer
| Subyek: Re: [VX]Basics of RGGS2 step 1 2011-03-28, 20:00 | |
| penjelasannya mantab (malaupun masih baca 1/4 ama bolak balik gara2 ada yg gk ngerti :hammer) e.g Self Assignment Tapi rasanya kayak Excel yak? apalagi yg if, else, not, dll. | |
| | | Sponsored content
| Subyek: Re: [VX]Basics of RGGS2 step 1 | |
| |
| | | | [VX]Basics of RGGS2 step 1 | |
|
Similar topics | |
|
| Permissions in this forum: | Anda tidak dapat menjawab topik
| |
| |
| Latest topics | » [Web Novel] Gloria Infidelis by LightNightKnight 2016-11-17, 21:27
» [Announcement] Forum baru untuk RMID by TheoAllen 2016-08-25, 16:39
» Where I'm Wrong ? by ReydVires 2016-07-24, 16:10
» flakeheartnet's Resources part III by flakeheartnet 2016-07-08, 14:30
» Keira's Art Warehouse by KeiraBlaze 2016-06-28, 19:27
» Theo Core Time System + Bingung by Lockin 2016-06-27, 16:24
» Error Script, Maybe ? by Lockin 2016-06-27, 16:20
» Nusaimoe @ RMID Lounge by Jihad Bagas 2016-06-21, 05:02
» Call Random Battle by Lockin 2016-06-15, 17:04
» Flakeheartnet Resources Part II [come back gift] by flakeheartnet 2016-06-07, 15:51
|
Statistics
|
Members: [ 4947 ]
Topics: [ 8258 ]
Posts: [ 112606 ]
Newest member: [ https://rmid.forumotion.net/u4968 ]
|
|
|
|