Jump to content
Rpg²S Forum

mikb89

Utenti
  • Posts

    655
  • Joined

  • Last visited

Posts posted by mikb89

  1. Ciao vECh, grazie per il commento ^^

     

    Per quanto riguarda:

    ...uno che makera impara roba su...

    la mia non è una conseguenza logica. Cioè non dico che makerare implica imparare X. Dico solo che uno che vuole fare per bene il suo progetto e si accorge di avere carenza in un campo cerca di migliorarsi e allora va a studiarselo. Più o meno bene, certo, a seconda di quanto lo ritiene importante. In breve quello che volevo dire è: Rpg maker non è il mezzo per imparare, ma può essere la motivazione. Mi rendo conto che non può valere per chiunque o per tutti i campi, e in questo caso sono d'accordo con quanto dici.

     

    Ok sull'escludere la fantasia dalle capacità, anche perché dirlo mi fa un po' senso.

    In generale mi sta proprio sullo stomaco il fatto di dirmi bravo in qualcosa e preferisco dire piuttosto che sono incapace, quando non ho niente di tangibile per dimostrarlo. E il problema è proprio questo. Su capacità metterei un bel Nessuna e chiuderei il cv così. Almeno farei ridere qualcuno :)

     

    La lista di programmi conosciuti l'avevo fatta ma poi mi è sembrata ripetitiva con tutti quegli "ottima conoscenza, buona conoscenza" però il discorso lingua originale non l'avevo pensato e l'unico programma che mi ha dato problemi di questo tipo (non riuscire a trovare un opzione se scritta in lingua diversa) è stato guarda caso proprio Photoshop :)

     

    Be' senza dubbio quanto hai scritto è costruttivo e non posso che apprezzare. Purtroppo in questo periodo sono però demoralizzato già di mio :(

    Nonostante stia prendendo la tendenza ad essere un po' approssimativo negli ultimi anni, sono comunque il primo a non adagiarsi sugli allori e a continuare ad imparare qualcosa ogni giorno. Forse pecco un po' quando mi ritengo all'altezza di una situazione, ma almeno quando arriva la batosta posso rendermi conto che non era così e quindi impegnarmi per colmare le lacune.

     

    Grazie ancora, in questo topic stanno accumulandosi un sacco di consigli preziosissimi ^^

  2. Capito.

    Ad angle puoi anche passare un valore non intero, il fatto è che il valore considerato con sin e quello considerato come angle, se vuoi fare sia muovere circolarmente l'oggetto che rotearlo, non corrispondono.

    Quindi se usi lo stesso valore non ti dà errore, però vedi che l'oggetto fa il giro su sé stesso più velocemente rispetto a come si muove.

     

    Che comunque se provi tu stesso puoi vedere e che lo dico io è inutile xD

     

    Potevi ad esempio valutare @var in gradi e passarlo direttamente ad angle e convertirlo invece per sin e cos, in radianti. Una conversione però si doveva sempre fare.

     

    Allora se poi prendi un buon voto in trigonometria, creditami xD

  3. Il fatto è che se fai tutto tu da zero sai quello che c'è e come funziona. Se invece vai a modificare uno script già esistente e avanzato, oltre a dover imparare il linguaggio di programmazione, devi anche studiarti lo script stesso. E in genere i bs sono belli lunghi.

    Quindi, in genere, se il bs fa quello che vuoi fare o quasi va bene usarlo. Altrimenti eventi.

     

    Comunque non vado la scelta delle magie, si vede solo il cerchio e si toglie subito. È un sistema già integrato nello script o l'hanno aggiunto quelli del progetto?

     

    Provalo, vedi cosa riesci a fare.

  4. Una variabile in più in che senso?

     

    Cioè tu, avendo un valore come @var, che non va bene per i gradi, considerandolo in radianti puoi ricavarne un angolo in gradi...

    Esattamente. @var alla fine è un numero, però lo considero in radianti per poter ricavarne quel che voglio.

     

    Se @var aumentava di 1 semplicemente il giro era più veloce. Se aumentava di 10 iniziava a saltare parti xD

  5. In effetti in questa parte ho un po' sorvolato. È che per spiegarla bene ci vorrebbe un paragrafo a parte.

     

    È come hai capito tu. @var è espresso in radianti, una misura che ha una definizione BRUTTISSIMA:

    Tale misura rappresenta il rapporto tra la lunghezza di un arco di circonferenza spazzato dall'angolo' date=' e la lunghezza del raggio di tale circonferenza.

    Il valore .angle ha invece bisogno di un numero espresso in gradi.

    Ora, mentre i gradi vanno da 0 a 360, i radianti vanno da 0 a 2 pi greco. Ragion per cui, se 0 è 0, 360 corrisponde a 2 pi greco.

    Quella che faccio è una conversione di unità, un po' come 1 € che vale 1936,27 £ xD

    Allego una piccola dimostrazione pratica :*

     

    Come ottenere 2 volte pi greco:

    Prendi una cordicella e fanne un cerchio. Misurane il diametro (la lunghezza fra un bordo e l'altro) e dividi per due per ottenere il raggio.

    Misura la cordicella, dividi per il raggio -> 2 volte pi greco!! eeeehhhh!! xD

     

    Do per scontato si sappia che un giro completo è 360° e che il pi greco vale 3,1415...

     

    Le funzioni sinusoidali arrivano quindi a 2 pi greco perché, se gli dai un valore più alto, come per i 360, è come se stessi ricominciando il giro.

     

    Per ottenere la formula io uso le proporzioni:

     

    2 pi : 360 = @var : x

     

    Per ottenere x, si moltiplica 360*@var e poi si divide per 2 pi greco.

     

    Comunque è una formula nota, si dovrebbe ricordare a memoria. Io me la calcolo perché ho una memoria del cavolo xD

     

    Dimmi quanto comprensibile è così poi la allego di sopra, magari togliendogli un po' di 'xD' che ho sparso ^^

  6. ^^

     

    @kero: ok xD

     

    Non facilissimo da comprendere per un profano della trigonometria, ma decisamente utile e interessante :sisi:

    Apo, hai notato qualche passaggio difficile in particolare? Magari è qualcosa che posso spiegare meglio ^^

     

    Ottimo tutorial! Non ero a conoscenza che l'RGSS integrasse il modulo Math, ma voglio provare a fare qualche script che usi il Seno e Coseno!

    Ha un sacco di funzioni utili, per esempio Math::hypot(x,y) per calcolare la distanza fra due punti o Math::atan2(x,y) che calcola l'angolo di orientazione verso una coordinata. Usarli toglie un sacco di lavoro di calcoli ^^

     

    Grazie anche a voi per i commenti ^^

     

    (quanti ^^ ho messo nel post? xD)

  7. :D

     

    Ecco là:

    http://img851.imageshack.us/img851/6696/abbbfinal.pnghttp://img715.imageshack.us/img715/4316/abbbfacefull.png

    ne ho fatto anche il face :D

     

    È abbastanza truce? xD

     

    Comunque fra un po' apro il topic del progetto, devo solo fare qualche tile e almeno un fruit ^^

  8. Guardian, hai ragione :D

     

    Grazie, keros ^^ (p.s. preferisci essere abbreviato in kero o keros? keros fa un po' di espagnolo xD)

     

    EDIT: aggiunti esempi ^^

    Sono più che altro un'anticipazione dei contenuti, ma è quello che alla fine spiega il tutorial, anche se capendo bene i concetti si possono fare molte più cose.

  9. Ok.

    Per quanto ho capito, vuoi realizzare una cosa complicata :)

    Forse ti conviene lasciar stare del tutto gli script, a meno che non trovi un bs che sia moolto simile o qualcuno che sia moolto disposto a scrivere grosse parti di codice.

    Se c'è poco da fare posso aiutarti (leggi: modificarti lo script io), ma bisogna trovare una base che ci si avvicina di molto. Non ne conosco.

     

    Per quanto riguarda gli eventi, cosa sai fare?

    Sai creare un menu? Fino a quattro elementi puoi usare un mostra scelta, se sono 7 ancora ancora puoi fare un'eventuale "Altre scelte" che ti porta a una seconda pagina, ma altrimenti devi farlo via eventi e picture.

    Sai gestire i valori tramite variabili? Tipo i punti vita, i danni fatti considerando i valori attacco/difesa ed eventuali modificatori (fortuna, abilità, roba così).

     

    Per calcolare la possibilità di colpire un nemico, c'è nell'imposta variabile la possibilità di inserire la posizione di un evento.

    In una variabile metti la coordinata x e in una la y.

    Poi sottrai le rispettive x e y dell'eroe.

    Infine, vabè, può sembrare una parolaccia, ma ci devi calcolare l'ipotenusa.

    Ti serve la radice quadrata, che negli eventi non c'è, quindi puoi usare un chiama script con scritto:

    $game_variables[R] = Math::hypot($game_variables[X], $game_variables[Y]).floor
    

    Al posto di X e Y metti gli id delle variabili che hai scelto e al posto di R l'id della variabile dove vuoi il risultato.

    La variabile R conterrà la distanza.

    A questo punto, confronti con il valore del raggio entro cui puoi colpire e, se il valore è compreso, fai in modo che il nemico si aggiunge alla lista.

     

    Per le altre cose ci dovrebbero essere dei tutorial o delle guide, comunque.

    Vedi cosa riesci a fare ^^

  10. Grazieee ^^

    Se ne era parlato dell'utilità, ma non aveva mai avuto tante applicazioni... magari se vuoi accennare a qualche esempio utile! ^ ^

    L'esempio che forse più riscuotere più utilizzi è un HUD circolare. Oppure per fare oscillare oggetti in caduta per effetti atmosferici particolari. Vabè che ce ne sono di già fatti però. Comunque tipo foglie che cadono, tempesta di sabbia, ecc.

    Mi sa che per 2k e 2k3 non è tanto utile come tutorial, giusto come concetto D:

    Più che altro il resto. Comunque mi pare ci fossero patch che fanno usare le funzioni trigonometriche.

  11. Usare seno, coseno e resto

    Versione 1.0

     

    1. Introduzione

     

    Per
    : RPG Maker XP/VX/VX Ace, RPG Maker 2000/2003 con patch.

    Autore
    : mikb89.

    Descrizione
    : Per chi programma minigiochi o crea da sé menu e HUD, queste funzioni tornano molto utili ma sono poco conosciute.

    Tramite seno e coseno si possono ottenere movimenti particolari come oscillazioni o rotazioni.
    Menu ad anello
    ,
    HUD circolari
    ,
    foglie che cadono
    si creano tramite questi.

    Il resto è utilizzatissimo per limitare un valore entro un certo campo, tipo nelle
    voci di un menu
    o per conoscere singole cifre di un numero (es. solo le decine), nel caso si vogliano
    mostrare valori in menu/bs ad eventi
    in cui i numeri sono dentro picture.

    Con questo tutorial imparerete a fare tutte queste cose.

    Ultima modifica
    : 29/02/2012.

     

     

    2. Tutorial

     

    sin cos %

    .Introduzione

    Senza una conoscenza approfondita di matematica e trigonometria, per uno scripter autodidatta è difficile pensare

    di andare ad usare queste tre funzioni che, invece, risultano utilissime una volta apprese.

    Questo tutorial fornirà una base da cui partire.

     

    .Setup

    L'idea che dovremo avere è di una variabile che si va incrementando di una quantità unitaria. Io userò 0.1.

    Creare la variabile è semplice:

    @var = 0

    E poi, per incrementarla ad ogni update:

    @var += 0.1

    Questa qui NON è LA tecnica, è solo quella che userò qui per spiegare queste funzioni.

     

    .Seno

    Il seno, in trigonometria, è una funzione che, dato un numero, ne fa risultare un altro compreso tra -1 e 1.

    La sintassi matematica del seno è sin(x), dove x è il numero. Come vedete, ci sono le parentesi come se fosse una

    funzione di programmazione. In RGSS(1,2,3,x), però, la sintassi è diversa:

    risultato = Math::sin(@var)

    in quanto la funzione fa parte del modulo Math.

    Questo codice andrà messo nell'update, sotto l'incremento di @var scritto poc'anzi.

    http://img407.imageshack.us/img407/2420/sinw.png

    Nella figura la x sotto è la nostra @var che aumenta e il grafico mostra il valore restituito da sin a seconda del

    cambiamento di questa.

    Immaginatevi di essere piatti e di vedere questa figura perpendicolarmente dal punto di inizio di x verso la

    direzione in cui va la freccia. Immaginate che non ci siano le linee già disegnate ma che sia un punto a seguirne

    il movimento.

    Il risultato di sin, che è quello che vedreste, è un movimento oscillante!

    Questa cosa ovviamente non è utile solo se vogliamo fare un pendolo, vedremo infatti un esempio molto diffuso

    subito dopo la breve spiegazione del coseno.

     

    .Coseno

    Il coseno funziona allo stesso modo del seno, solo, a valori 'spostati'.

    Cioè, se il seno di 0 è 0, il coseno di 0 è 1.

    I valori risultanti però spaziano nello stesso campo, fra -1 e 1.

    Il risultato visivo è quindi lo stesso.

    http://img854.imageshack.us/img854/8997/cosr.png

    Nello stesso punto il valore sarà diverso da quello dato dal seno, ma l'andamento del punto osservato sarà sempre

    oscillante.

    Allora, a che serve conoscerli entrambi?

     

    .Movimento circolare

    L'esempio che avevo anticipato prima è il cerchio, o almeno il movimento necessario per crearlo.

    Vi faccio un esempio pratico dettoci da un professore di fisica.

    Ficcatevi un disco nel dito.

    Poggiateci un oggetto sopra e alzate il dito in modo che il disco stia all'altezza dell'occhio.

    Dovrete vedere il disco come una linea o quasi.

    Fatelo girare e seguite l'oggetto con l'occhio.

    Il movimento dell'oggetto è quello della funzione seno! (O coseno, vabé)

    Guardando però il disco dall'alto, il movimento dell'oggetto è in realtà circolare.

    Per ottenere questo, semplicemente assegniamo le coordinate ottenute dal risultato dato dallo stesso valore una

    volta con seno e una volta con coseno. Codice:

    @sprite.y = Math::sin(@var)
    @sprite.x = Math::cos(@var)
    

    Ovviamente @sprite dovrà essere prima creata e disegnata, poi aggiornata e, alla fine, cancellata.

    @sprite = Sprite.new
    @sprite.bitmap = Bitmap.new(30,30)
    @sprite.bitmap.fill_rect(0,0,30,30,Color.new(255,255,255))
    

    va messo all'inizio,

    @sprite.update

    dentro l'update, mentre:

    @sprite.bitmap.dispose
    @sprite.dispose
    

    alla fine.

    Questo è il codice di un quadrato che gira.

    Voi però non lo vedrete.

    Come abbiamo detto, i valori risultanti vanno da -1 a 1 e, in questo esempio sono anche non inclusi.

    Per non inclusi intendo dire che il risultato ci si avvicina al limite, ma non lo raggiunge.

    Immaginateli come -0.999999999999 e 0.999999999999, solo, con un numero di 9 infinito.

    In programmazione il numero di 9 non è infinito ma dipende dal tipo di variabile che si usa, ma questi son altri

    discorsi.

    Quindi, come intero, visto che i pixel sono proprio interi, il risultato sarà sempre 0. O 1 a seconda

    dell'arrotondamento.

    È quindi necessario moltiplicare il risultato in base allo spazio fra cui vogliamo far muovere l'oggetto.

    Mettiamo che vogliamo farlo muovere di 100 pixel, dobbiamo moltiplicare per 50. Otterremo un movimento fra -50 e

    50.

    In questo modo girerà però attorno al bordo superiore sinistro della finestra. Possiamo spostarlo sommando dei

    valori al risulato della funzione. Per metterlo ad esempio al centro dello schermo, per esempio lo schermo del VX:

    @sprite.y = 416/2 + Math::sin(@var)*50
    @sprite.x = 544/2 + Math::cos(@var)*50
    

    Non sarà perfettamente centrato perché le coordinate si riferiscono all'angolo superiore sinistro dell'oggetto e

    non al suo centro, si può rimediare con:

    @sprite.ox = @sprite.oy = 30/2

    per fare in modo che il punto di riferimento non sia 0 (ovvero l'angolo) ma il centro. La metà di 30 in quanto 30 è

    la grandezza che abbiamo definito prima.

    Volendo fare gli sboroni, possiamo anche cambiare l'angolazione del quadrato mentre gira.

    @sprite.angle = -@var*360/(2*Math::PI)

    Non si può passare direttamente @var perché l'angolo va da 0 a 360 mentre i valori che prendono le funzioni

    sinusoidali hanno 2 volte pi greco come gamma di valori. Che corrisponde a Math::PI, mi pare chiaro.

    Il meno va messo perché il giro è al contrario. I valori matematici litigano con quelli informatici perché nella

    prima le y vanno dal basso verso l'alto mentre nella seconda è al contrario. Vabè.

     

    .Resto

    Il resto è più semplice e lo trovate spesso usato negli script.

    Quello che rappresenta il resto lo sanno tutti. Divido 10 per 4. Mi viene 2,5. Se lo faccio col metodo di divisione

    imparato alle elementari, ottengo 2 come risultato intero e un resto di 2.

    La particolarità del resto è che non può superare il divisore. Il 4, in questo caso. Faccio esempi numerici.

    8/4 = 2, resto 0

    9/4 = 2, resto 1

    10/4 = 2, resto 2

    11/4 = 2, resto 3

    12/4 = 3, resto 0

    Sarà così all'infinito. 0, 1, 2 e 3.

    Se vogliamo limitare un valore a un numero basta quindi valutare il resto.

    In rpg maker viene ad esempio usato nelle pagine di equip, status, skill quando premendo PagUp si passa all'eroe

    successivo.

     def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Skill.new(@actor_index)
     end

    Per ottenere il resto si usa %. O %= per settare. Con questo codice l'@actor_index non potrà indicare un eroe che

    non è nel gruppo in quanto è limitato dalla dimensione di questo (in inglese members = membri [del gruppo], size =

    dimensione).

    Si poteva di certo mettere una condizione. Se @actor_index è maggiore di x allora impostalo a zero.

    Oltre a non essere elegante, questa cosa funziona solo con incremento unitario.

    Mettiamo che il party comprenda 3 elementi.

    @actor_index è 2 (visto che parte da zero, indica il terzo elemento).

    Se @actor_index venisse incrementato di 2, non dovrebbe essere impostato a 0, come fa la condizione, ma dovrebbe

    andare a 1.

    Con il resto il valore viene impostato correttamente.

     

    Il resto si può usare anche dagli eventi, nel settaggio variabile.

    Utilissimo ad esempio per indicare valori numerici via picture.

    Come fate a mostrare 973 utilizzando 10 picture che contengono i signoli numeri da 0 a 9?

    973%10 = 3

    E avete il primo numero. Lo sottraete, dividete per 10 e avrete 97.

    97%10 = 7

    E così per tutti i numeri.

    Poi tramite condizione potete mostrare la picture a seconda del numero.

    Probabilmente troverete spiegazioni più approfondite su questa parte in un tutorial per bs ad eventi che, direi,

    non è questo qui.

     

    .Conclusione

    Non avevo intenzione di creare un testo così lungo e, vedendolo mentre lo scrivevo, ho pensato di togliere la parte

    sul resto. Però visto che non è troppo lunga e aggiungendola non cambia di molto il risultato finale l'ho lasciata.

    Spero questo tutorial vi sia utile, che si faccia capire e che sia di vostro gradimento.

     

    .Allegati

    Ho incluso uno script dimostrativo che funziona su XP, VX e Ace. All'interno c'è scritto come farlo partire.

     

    #chiamate $scene = Scene_TutSinCosMod.new per far partire il tutto (XP, VX)
    #chiamate SceneManager.call(Scene_TutSinCosMod) per VX Ace
    #per il VX Ace DOVETE usare un Inizio automatico
    #per l'XP DOVETE usare un processo parallelo
    class Scene_TutSinCosMod
     #codice inizializzazione, messo per compatibilità
     def main
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
    end
    Graphics.freeze
    dispose
     end
     #inizio parte che vi interessa guardare :*
     def initialize
    #codice dal tutorial
    @var = 0
    @sprite = Sprite.new
    @sprite.bitmap = Bitmap.new(30,30)
    @sprite.bitmap.fill_rect(0,0,30,30,Color.new(255,255,255))
    @sprite.ox = @sprite.oy = 30/2
    #pannello informativo
    @info = Sprite.new
    @info.bitmap = Bitmap.new(200, 105)
    @info.y = Graphics.height - 108
    @info.x = 3
    #i tre quadrati numerati
    @sp = Sprite.new
    @sp.x = Graphics.width/2 + Math::sin(@var)*30
    @sp.bitmap = Bitmap.new(30,30)
    @sp.bitmap.fill_rect(0,0,30,30,Color.new(255,255,255))
    @sp.bitmap.draw_outlined_text(0,0,30,30,"1",1)
    @sp.ox = 15
    @sp2 = Sprite.new
    @sp2.x = Graphics.width/2 + Math::cos(@var)*30
    @sp2.y = Graphics.height/2 - 15
    @sp2.bitmap = Bitmap.new(30,30)
    @sp2.bitmap.fill_rect(0,0,30,30,Color.new(255,255,255))
    @sp2.bitmap.draw_outlined_text(0,0,30,30,"2",1)
    @sp2.ox = 15
    @sp3 = Sprite.new
    @sp3.x = Graphics.width/2 + @var%30
    @sp3.y = Graphics.height - 30
    @sp3.bitmap = Bitmap.new(30,30)
    @sp3.bitmap.fill_rect(0,0,30,30,Color.new(255,255,255))
    @sp3.bitmap.draw_outlined_text(0,0,30,30,"3",1)
    @sp3.ox = 15
    #linea centrale
    @lp = Sprite.new
    @lp.x = Graphics.width/2
    @lp.bitmap = Bitmap.new(1,Graphics.height)
    @lp.bitmap.fill_rect(0,0,1,Graphics.height,Color.new(255,255,255))
    @lp.z = @sp.z - 1
     end
     def update
    #aggiornamenti vari
    @sp.update
    @sp2.update
    @sp3.update
    @lp.update
    @info.update
    #codice dal tutorial
    @var += 0.1
    @sprite.update
    @sprite.y = 416/2 + Math::sin(@var)*50
    @sprite.x = 544/2 + Math::cos(@var)*50
    @sprite.angle = -@var*360/(2*Math::PI)
    #posizionamento quadrati numerati
    @sp.x = Graphics.width/2 + Math::sin(@var)*30
    @sp2.x = Graphics.width/2 + Math::cos(@var)*30
    @sp3.x = Graphics.width/2 + @var%30
    #scrittura valori nel pannello
    @info.bitmap.clear
    @info.bitmap.draw_text(0,0,200,24,"@var = "+@var.to_s)
    @info.bitmap.draw_text(0,27,200,24,"1 = "+@sp.x.to_s)
    @info.bitmap.draw_text(0,54,200,24,"2 = "+@sp2.x.to_s)
    @info.bitmap.draw_text(0,81,200,24,"3 = "+@sp3.x.to_s)
     end
     def dispose
    #codice dal tutorial
    @sprite.bitmap.dispose
    @sprite.dispose
    #distruzione altri oggetti
    @sp.bitmap.dispose
    @sp.dispose
    @sp2.bitmap.dispose
    @sp2.dispose
    @sp3.bitmap.dispose
    @sp3.dispose
    @lp.bitmap.dispose
    @lp.dispose
     end
     #fine parte che vi interessa guardare
    end
    #compatibilità XP
    if !defined?(Graphics.width)
     module Graphics
    def self.width
      return 640
    end
    def self.height
      return 480
    end
     end
    end
    #codice per disegnare i contorni neri nel testo
    class Bitmap
     def draw_outlined_text(*args)
    align = 0; color = self.font.color.clone
    if Graphics.width == 544
      sh = self.font.shadow; self.font.shadow = false
    end
    if [2,3].include?(args.size)
      x = args[0].x; y = args[0].y
      w = args[0].width; h = args[0].height
      string = args[1]
      align = args[2] if args.size > 2
    elsif [5,6].include?(args.size)
      x = args[0]; y = args[1]
      w = args[2]; h = args[3]
      string = args[4]
      align = args[5] if args.size > 5
    else
      raise("Numero di argomenti non valido: " + args.size.to_s + "\n" +
    		"Valori consentiti: 2,3,5,6")
    end
    self.font.color = Color.new(38,31,23,255)
    draw_text(x, y + 1, w, h, string, align)
    draw_text(x , y - 1, w, h, string, align)
    draw_text(x + 1, y + 1, w, h, string, align)
    draw_text(x + 1 , y - 1, w, h, string, align)
    draw_text(x - 1, y + 1, w, h, string, align)
    draw_text(x - 1 , y - 1, w, h, string, align)
    draw_text(x + 1, y, w, h, string, align)
    draw_text(x - 1, y, w, h, string, align)
    self.font.color = color
    draw_text(x, y, w, h, string, align)
    self.font.shadow = sh if Graphics.width == 544
     end
    end

  12. Benvenuto!

     

    Nel tuo caso forse prima di iniziare con gli script è bene fare prima un po' di esperimenti con gli eventi ed esplorare il tool.

    Ottimo il non voler fare copia incolla, ma se trovi script simili a quelli che vuoi creare e non sono troppo complessi da modificare, un po' di copia incolla anziché partire da zero non è male ^^

     

    Belle le citazioni sul making! Fatene ancora xD

  13. Non mi piace perchè essendo il primo telefono touch che ha preso mio padre un nokia 5800 [...]

    Capito. Io ho tuttora un cellulare con Symbian 2nd che all'epoca era all'avanguardissima e che, nonostante ci siano soltanto un due/tre modelli di cellulare con questo sistema, c'è ancora chi ci sviluppa applicazioni o che rilascia aggiornamenti di queste.

    C'è da considerare che, all'uscita del 5800, probabilmente Android era anche a una versione base. Se lo confronti con la versione 4 è ovvio che il vecchio Symbian non regge.

     

    ho letto che il prezzo del Nokia in Italia sarà di 549€

    Ecco, infatti 450€ mi sembrava non esagerato xD

     

    Come ho scritto anche nel primo post, non arriva alla qualità di una Reflex, questo è scontato: ma non puoi portare una reflex sempre in tasca. E non si parla di fotografia professionale, ma di chi vuole un valido sostituto alle fotocamere compatte e mirrorless.

     

    Ma anche a un professionista può essere utile, non è che ci si può sempre preparare una fotocamera da portarsi dietro e le occasioni da fotografare possono capitare quando meno te l'aspetti ^^

    Poi non posso vedere le foto interamente perché ho la connessione lenta e sono enormi, però vedo nella seconda una funzione macro, con tanto di sfondo sfocato.

    La prima non me la vuole caricare proprio :(

    Ma, nelle fotocamere degli smartphone di nuova generazione si possono regolare le impostazioni? Tipo sensibilità ISO, diaframma, messa a fuoco...

  14. Attualmente ho una connessione lentissima e il video non posso vederlo :(

     

    Una cosa non ho capito: vuoi un ABS, tipo lo XAS menzionato da giver, oppure tutte le azioni sono gestite dal menu degli attacchi?

     

    Quindi, ci sarà un tasto da premere per fare apparire questo menu. E lo puoi fare sia da script che da eventi, a seconda di come conviene.

    Poi apparirà il menu. Gli attacchi cosa sono? Voci definite o se ne vanno aggiungendo man mano che il personaggio fa esperienza (skill, insomma)?

    Il menu credo sia più comodo farlo a script.

    La scelta del nemico da attaccare da cosa dipende? Deve essere entro un certo raggio o basta che sia nella stessa mappa?

    Comunque anche questa parte qui conviene farla a script.

    Il quick time non dovrebbe essere un problema.

     

    Poi potresti usare il sistema a eventi per i valori del nemico, tramite variabili. Però se usi lo XAS, gli eventi dei nemici saranno nemici veri e propri, quindi in quel caso lo script sarà una aggiunta a quel BS ed è probabile che una cosa del genere esista già o sia molto simile.

  15. Magari per le altre pose vedo in seguito, intanto mi limito a quelle standard così posso andare avanti su altri aspetti.

    {tuono minaccioso} Mapping...

     

    Ho soltanto sistemato la coda:

    http://img441.imageshack.us/img441/3121/abredfinal.png

    Com'è così?

     

    Ne ho fatto anche altri:

    http://img215.imageshack.us/img215/579/abbluefinal.png http://img855.imageshack.us/img855/931/abyellowfinal.png

    Non sono carini? *.*

  16. Benvenuto ^^

    Anche io come te sono solito abbandonare e poi riprendere xD

    ma non mi limito ai soli forum, eh eh

     

    Per quanto riguarda gli script - RGSS2 nel caso del VX - non ci sono vere e proprie guide.

    Puoi imparare il linguaggio Ruby, che ti verrà facile visto che ne conosci di altri.

    Per iniziare a scriptare ti bastano le cose semplici: variabili, condizioni, cicli, oggetti, proprietà, funzioni.

    Tanto tanto tempo fa anche io ho scritto una simil-guida su queste cose e la porto in firma, ma puoi seguire le guide postate da Dilos, che magari son più professionali :3

    Inoltre sul Ruby in sé si dovrebbe trovare molto in rete. Magari trovi anche qualche eserciziario, visto che con le guide non ti trovi molto.

     

    Una vola che coi concetti di Ruby di senti abbastanza pratico, vai a leggerti gli script base direttamente e cerca di capire come funzionano. Fai piccole modifiche, vedi cosa succede e poi passa a leggerne un altro.

    Quindi, quando hai qualcosa di preciso in mente, prova a realizzarlo. Magari se non riesci poi lo posti e ti aiutano/aiutiamo sul forum.

     

    Puoi anche seguire dei tutorial, che non ti spiegheranno tutto tutto, ma sono buoni per capire un determinato argomento. Ci sono ad esempio quelli di Sleeping Leonheart, tipo questo. Volevo mettere anche il link agli altri ma non li ho trovati. Dovrebbero essere comunque nella sezione Tutorial linkata da Dilos.

    Io non sono bravo a cercare, perdo la pazienza alla seconda pagina xD

     

    Una volta che sei diventato capace, per proseguire il miglioramento, fai riferimento alla guida inclusa in rpg maker, che ti dà tutti i metodi e proprietà degli oggetti standard tipo Bitmap, Sprite, Font, ecc. Così come istruzioni sulle espressioni regolari e roba di questo tipo.

     

    Visto che ho scritto assai faccio un piccolo riassunto:

    1) impara come si applicano le nozioni che già hai di programmazione al Ruby (per forza con guide);

    2) mettiti a giochicchiare con gli script direttamente;

    3) prova a realizzare qualcosa, segui qualche tutorial;

    4) usa la guida per migliorarti.

     

    Se non fuggirai impaurito a questo messaggio, hai buone probabilità di imparare xD

  17. quindi niente deformazione D:

    :(

     

    E vabè.

     

    Allora sistemo la coda e poi passo ad altro, così posso postare qualcosa di concreto ^^

     

    Comunque la fusione non è dei tre gameplay diversi perché verrebbe un casino xD

    Più che altro sto prendendo i personaggi e giusto qualche dinamica :)

×
×
  • Create New...