Apro qui il topic per il Laboratorio di programmazione che abbiamo intenzione di seguire io, BlackShadow91 e Lomax.
Naturalmente è tutto provvisorio, se c'è qualcosa da modificare nel topic segnalatelo.
Detto questo passiamo allo scopo del Laboratorio: In mancanza di un corso vero e proprio abbiamo pensato di riunirci qui, noi aspiranti allievi, e provare a creare qualcosa tutt'insieme, in modo da capire un po' meglio come funziona il mondo del RGSS.
Oltretutto siamo alla ricerca di un utente più esperto che possa seguirci, darci suggerimenti correzioni e quant'altro.
Ogni aiuto in generale naturalmente è ben accetto ^^
Ora mi rivolgo ai diretti interessati, iniziamo dal rispondere a questa domanda: che sappiamo fare? XD
Da parte mia posso dirvi che ho iniziato qualche settimana fa con il volere fare un minigioco davvero per esercizzio, per spatichirmi un po' con eventi, variabili, ed un po' di RGSS.
Il programmino consiste in un semplice simulatore di borsa, ci sono 5 azioni il cui prezzo varia in maniera casuale che si possono comprare e vendere, comprando a poco, aspettando e vendendo a prezzo più alto si guadagna qualcosa, qualche notizia casuale poi fa variare un po' più pesantemente il mercato ogni tanto. La programmazione è conclusa e funziona tutto, anche se devo dire che la maggior parte è fatto ad eventi, anche se l'RGSS mi è servito per preparare le schermate su cui far uscire le variabili, oltre che poi i calcoli come call script all'interno degli eventi.
Ingranare non è stato semplice, ma mi è servito a capire davvero i comandi più semplici, le variabili le classi le definizioni eccetera, senza contare che ora scorrendo quelle pagine non vedo più aramaico XD
Se vi interessa ecco il codice usato per le Window:
#==============================================================================# ** Window_Euro#------------------------------------------------------------------------------# This window displays the amount of gold.#============================================================================== class Window_Prezzo < Window_Base attr_accessor :idvariabile #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 544, WLH + 32) refresh end def draw_variabile(idvariabile, x, y) self.contents.draw_text(x, y, 103, WLH, $game_variables[idvariabile], 2) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.opacity = 100 draw_variabile(11, 0, 0) draw_variabile(12, 104, 0) draw_variabile(13, 207, 0) draw_variabile(14, 310, 0) draw_variabile(15, 409, 0) endend class Window_Num < Window_Base attr_accessor :idvariabile #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 544, WLH + 32) refresh end def draw_variabile(idvariabile, x, y) self.contents.draw_text(x, y, 103, WLH, $game_variables[idvariabile], 2) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.opacity = 255 draw_variabile(22, 0, 0) draw_variabile(23, 104, 0) draw_variabile(24, 207, 0) draw_variabile(25, 310, 0) draw_variabile(26, 409, 0) endend class Window_Singolo < Window_Base attr_accessor :z # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y, z) super(x, y, 136, 56) @z = z refresh end def draw_variabile(idvariabile, x, y) self.contents.draw_text(x, y, 103, WLH, $game_variables[idvariabile], 2) end def refresh self.contents.clear self.opacity = 255 draw_variabile(z, 0, 0) endend
Finito questo, sono passato a cercare di modificare un po' il battel sistem di XP per il mio progetto personale, per ora sono riuscito a creare un comando da combattimento Estrai che ti permette di cambiare arma equipaggiata, ti apre il menu armi (come oggetti) scegli ed equipaggi, poi torni al menù dei comandi di combattimento e puoi ancora attaccare o difenderti, il resto (ovvero Estrai Magie Oggetti) è disabilitato.
Credevo sarebbe stata un impresa titanica, invece mi è costato molto poco ed è stato più semplice del minigioco di sopra... Non ho però finito qua, nei prossimi giorni vedrò di andare avanti, oltre a piccole altre cose il mio intento è una grafica a picture dei menù di battaglia.
Il codice di questo non lo posso postare, poichè sono modifiche sparse per molte pagine.
Questo è quanto, ora sta a voi.
Le guide di Lomax, per soli Niubbi!! ^^
Ecco le guide passo passo che Lomax sta preparando di pari passo con il suo studio del RGSS, l'impaginazione è curata da BlackShadow91, altri crediti eventuali all'interno di ogni lezione.
#------------------------------------------------------------------------------##1)Scena del menù # #------------------------------------------------------------------------------#class Scene_Menu1 def initialize#Il ciclo for crea un array all'interno del quale si collocano le istanze della #classe Window_Eroe for i in 0...$game_party.actors.size #Creazione array @eroe = [] #Assegnazione istanze di classi @eroe[i]=Window_Eroe.new(i) end # Make command window s1 = "004-Weapon04" s2 = "004-Weapon04" s3 = "004-Weapon04" s4 = "004-Weapon04" s5 = "004-Weapon04" s6 = "004-Weapon04" @command_window = Window_Commandi_or.new(60, [s1, s2, s3, s4, s5, s6]) @command_window.index = 0 # If number of party members is 0 if $game_party.actors.size == 0 # Disable items, skills, equipment, and status @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end @command_window.active = true #Scongela una scena Graphics.transition #Aggiorna il contenuto loop do Graphics.update Input.update update if $scene != self break end end #Congela la scena Graphics.freeze end def update @command_window.update endend #------------------------------------------------------------------------------##2)Finestre degli eroi ##------------------------------------------------------------------------------# class Window_Eroe < Window_Base def initialize(n)#inizializzazione della variabile da usare per deeterminare la posizione del party @n = n #settaggio dimensioni della finestra super(posiz. X, posiz. Y, largh.,alt.) # per la cordinata x: calcola il resto di 2 dall'actor_id e lo moltiplica per 320, # per es 0%2=0; 1%2=1; 2%2=0; 3%2=1 super (n % 2 * 320, (n / 2) % 2 * 210,320,210) #creazione bitmap self.contents = Bitmap.new(width - 32,height - 32) #formattazione testo self.contents.font.name = "AR BERKLEY" self.contents.font.size = 28 testo self.contents.font.name = "Times New Roman" self.contents.font.size = 14 parametri grafica_eroe end def testo #pulire la finestra self.contents.clear#La variabile @actor assume l'id dell'eroe che occupa la posizione del party#corrispondente alla finestra su cui si deve scrivere @actor = $game_party.actors[@n] draw_actor_name(@actor, 190, 0) end def draw_actor_parameter_personale(actor, x, y, type) case type when 0 bitmap = RPG::Cache.icon("004-Weapon04") parameter_value = actor.atk when 1 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.pdef when 2 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.mdef when 3 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.str when 4 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.dex when 5 bitmap = RPG::Cache.icon("020-Accessory05") parameter_value = actor.agi when 6 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.int end self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = normal_color self.contents.draw_text(x + 48, y, 36, 32, parameter_value.to_s, 2) end def parametri draw_actor_parameter_personale(@actor, 0, 70, 0) draw_actor_parameter_personale(@actor, 100, 70, 1) draw_actor_parameter_personale(@actor, 100, 94, 2) draw_actor_parameter_personale(@actor, 0, 94, 3) draw_actor_parameter_personale(@actor, 0, 119, 4) draw_actor_parameter_personale(@actor, 100, 119, 5) draw_actor_parameter_personale(@actor, 0, 144, 6) end def grafica_eroe draw_actor_graphic(@actor, 32, 55) endend class Window_Commandi_or < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # width : window width # commands : command text string array #-------------------------------------------------------------------------- def initialize(height, commands) # Compute window height from command quantity super(0, 420, commands.size * 64 + 32, height) @item_max = commands.size @commands = commands @column_max = @commands.size self.contents = Bitmap.new(@item_max * 64, height - 32) refresh self.index = 0 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # * Draw Item # index : item number # color : text color #-------------------------------------------------------------------------- def draw_item(index) bitmap = RPG::Cache.icon(@commands[index]) self.contents.blt(64 * index, 0, bitmap, Rect.new(0, 0, 24, 24)) end #-------------------------------------------------------------------------- # * Disable Item # index : item number #-------------------------------------------------------------------------- def disable_item(index) draw_item(index, disabled_color) endend
Question
idru
Apro qui il topic per il Laboratorio di programmazione che abbiamo intenzione di seguire io, BlackShadow91 e Lomax.
Naturalmente è tutto provvisorio, se c'è qualcosa da modificare nel topic segnalatelo.
Detto questo passiamo allo scopo del Laboratorio: In mancanza di un corso vero e proprio abbiamo pensato di riunirci qui, noi aspiranti allievi, e provare a creare qualcosa tutt'insieme, in modo da capire un po' meglio come funziona il mondo del RGSS.
Oltretutto siamo alla ricerca di un utente più esperto che possa seguirci, darci suggerimenti correzioni e quant'altro.
Ogni aiuto in generale naturalmente è ben accetto ^^
Per un maggiore chiarimento vi rimando a questa discussione: Laboratorio - Proposte post.46
[XD questo tono serioso mi fa ridere molto]
Ora mi rivolgo ai diretti interessati, iniziamo dal rispondere a questa domanda: che sappiamo fare? XD
Da parte mia posso dirvi che ho iniziato qualche settimana fa con il volere fare un minigioco davvero per esercizzio, per spatichirmi un po' con eventi, variabili, ed un po' di RGSS.
Il programmino consiste in un semplice simulatore di borsa, ci sono 5 azioni il cui prezzo varia in maniera casuale che si possono comprare e vendere, comprando a poco, aspettando e vendendo a prezzo più alto si guadagna qualcosa, qualche notizia casuale poi fa variare un po' più pesantemente il mercato ogni tanto. La programmazione è conclusa e funziona tutto, anche se devo dire che la maggior parte è fatto ad eventi, anche se l'RGSS mi è servito per preparare le schermate su cui far uscire le variabili, oltre che poi i calcoli come call script all'interno degli eventi.
Ingranare non è stato semplice, ma mi è servito a capire davvero i comandi più semplici, le variabili le classi le definizioni eccetera, senza contare che ora scorrendo quelle pagine non vedo più aramaico XD
Se vi interessa ecco il codice usato per le Window:
Finito questo, sono passato a cercare di modificare un po' il battel sistem di XP per il mio progetto personale, per ora sono riuscito a creare un comando da combattimento Estrai che ti permette di cambiare arma equipaggiata, ti apre il menu armi (come oggetti) scegli ed equipaggi, poi torni al menù dei comandi di combattimento e puoi ancora attaccare o difenderti, il resto (ovvero Estrai Magie Oggetti) è disabilitato.
Credevo sarebbe stata un impresa titanica, invece mi è costato molto poco ed è stato più semplice del minigioco di sopra... Non ho però finito qua, nei prossimi giorni vedrò di andare avanti, oltre a piccole altre cose il mio intento è una grafica a picture dei menù di battaglia.
Il codice di questo non lo posso postare, poichè sono modifiche sparse per molte pagine.
Questo è quanto, ora sta a voi.
Le guide di Lomax, per soli Niubbi!! ^^
Ecco le guide passo passo che Lomax sta preparando di pari passo con il suo studio del RGSS, l'impaginazione è curata da BlackShadow91, altri crediti eventuali all'interno di ogni lezione.
Script in progettazione
#------------------------------------------------------------------------------##1)Scena del menù # #------------------------------------------------------------------------------#class Scene_Menu1 def initialize#Il ciclo for crea un array all'interno del quale si collocano le istanze della #classe Window_Eroe for i in 0...$game_party.actors.size #Creazione array @eroe = [] #Assegnazione istanze di classi @eroe[i]=Window_Eroe.new(i) end # Make command window s1 = "004-Weapon04" s2 = "004-Weapon04" s3 = "004-Weapon04" s4 = "004-Weapon04" s5 = "004-Weapon04" s6 = "004-Weapon04" @command_window = Window_Commandi_or.new(60, [s1, s2, s3, s4, s5, s6]) @command_window.index = 0 # If number of party members is 0 if $game_party.actors.size == 0 # Disable items, skills, equipment, and status @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end @command_window.active = true #Scongela una scena Graphics.transition #Aggiorna il contenuto loop do Graphics.update Input.update update if $scene != self break end end #Congela la scena Graphics.freeze end def update @command_window.update endend #------------------------------------------------------------------------------##2)Finestre degli eroi ##------------------------------------------------------------------------------# class Window_Eroe < Window_Base def initialize(n)#inizializzazione della variabile da usare per deeterminare la posizione del party @n = n #settaggio dimensioni della finestra super(posiz. X, posiz. Y, largh.,alt.) # per la cordinata x: calcola il resto di 2 dall'actor_id e lo moltiplica per 320, # per es 0%2=0; 1%2=1; 2%2=0; 3%2=1 super (n % 2 * 320, (n / 2) % 2 * 210,320,210) #creazione bitmap self.contents = Bitmap.new(width - 32,height - 32) #formattazione testo self.contents.font.name = "AR BERKLEY" self.contents.font.size = 28 testo self.contents.font.name = "Times New Roman" self.contents.font.size = 14 parametri grafica_eroe end def testo #pulire la finestra self.contents.clear#La variabile @actor assume l'id dell'eroe che occupa la posizione del party#corrispondente alla finestra su cui si deve scrivere @actor = $game_party.actors[@n] draw_actor_name(@actor, 190, 0) end def draw_actor_parameter_personale(actor, x, y, type) case type when 0 bitmap = RPG::Cache.icon("004-Weapon04") parameter_value = actor.atk when 1 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.pdef when 2 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.mdef when 3 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.str when 4 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.dex when 5 bitmap = RPG::Cache.icon("020-Accessory05") parameter_value = actor.agi when 6 bitmap = RPG::Cache.icon("009-Shield01") parameter_value = actor.int end self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = normal_color self.contents.draw_text(x + 48, y, 36, 32, parameter_value.to_s, 2) end def parametri draw_actor_parameter_personale(@actor, 0, 70, 0) draw_actor_parameter_personale(@actor, 100, 70, 1) draw_actor_parameter_personale(@actor, 100, 94, 2) draw_actor_parameter_personale(@actor, 0, 94, 3) draw_actor_parameter_personale(@actor, 0, 119, 4) draw_actor_parameter_personale(@actor, 100, 119, 5) draw_actor_parameter_personale(@actor, 0, 144, 6) end def grafica_eroe draw_actor_graphic(@actor, 32, 55) endend class Window_Commandi_or < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # width : window width # commands : command text string array #-------------------------------------------------------------------------- def initialize(height, commands) # Compute window height from command quantity super(0, 420, commands.size * 64 + 32, height) @item_max = commands.size @commands = commands @column_max = @commands.size self.contents = Bitmap.new(@item_max * 64, height - 32) refresh self.index = 0 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # * Draw Item # index : item number # color : text color #-------------------------------------------------------------------------- def draw_item(index) bitmap = RPG::Cache.icon(@commands[index]) self.contents.blt(64 * index, 0, bitmap, Rect.new(0, 0, 24, 24)) end #-------------------------------------------------------------------------- # * Disable Item # index : item number #-------------------------------------------------------------------------- def disable_item(index) draw_item(index, disabled_color) endend
Edited by idrula mia gallery su deviant
SUPERBIA SUDORE FORTUNA
Grandi sogni supportati da una grande passione!!
Medagliette: http://img846.imageshack.us/img846/9296/fcp1.pnghttp://img717.imageshack.us/img717/7703/fcp3.png http://www.rpg2s.net/cover_contest/icons/cc_1.png http://www.rpg2s.net/cover_contest/icons/cc_furor_1.png http://www.rpg2s.net/cover_contest/icons/cc_special.png http://www.rpg2s.net/cover_contest/icons/cc_special.pnghttp://rpg2s.net/gif/SCContest2Oct.gif
Link to comment
Share on other sites
Top Posters For This Question
33
9
29
13
Popular Days
Oct 15
16
Oct 8
15
Nov 2
11
Oct 13
11
Top Posters For This Question
BlackShadow91 33 posts
giver 9 posts
idru 29 posts
Lomax af 13 posts
Popular Days
Oct 15 2010
16 posts
Oct 8 2010
15 posts
Nov 2 2010
11 posts
Oct 13 2010
11 posts
115 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now