Jump to content
Rpg²S Forum

Keroro

Utenti
  • Posts

    646
  • Joined

  • Last visited

Posts posted by Keroro

  1. Immaginiamo che ogni direzione abbia 4 frame di animazione, la variabile "indice" determina quale rettangolo pescare da un array, utilizziamo un cast implicito per tagliare la componente decimale

     

    float accumulatore = 0.0;
    float incremento = 0.2;
    int indice = 0;

    nel ciclo principale

    accumulatore += incremento;
    if (accumulatore >= 5.0) accumulatore = 0.0;
    indice = (int)accumulatore;

     

    In questo modo rimarrà 5 cicli su ogni sotto-immagine, che con i fps bloccati a 30 significa un cambio di animazione ogni 0.16-0.17 secondi.

    Il problema di questo approccio è che, anche da bloccati, i fps possono oscillare per molte ragioni, conviene da una parte innalzare il limite di blocco sui 50-60 per diventare più resistenti alle oscillazioni, dall'altra rendere l'incremento proporzionale agli FPS medi nel ciclo principale, avendo fissato in precedenza una velocità per secondo

    #define ANIM_PER_SEC 5.0f
    //...
    incremento = ANIM_PER_SEC / getFPS();

  2. Ti crei una classe Timer a cui assegni un tick di partenza ed un intervallo fisso a cui deve scattare

    se tick attuale > intervallo fisso allora tick di partenza = tick attuale e incrementi indice dell'array di rettangoli (con la dovuta attenzione agli overflow ed al tipo di sequenza, per sequenze complicate si può anche implementare una macchina a stati finiti).

    L'alternativa in cui ti crei un accumulatore era usata anni fa in C ma è un approccio che sfrutta le peculiarità del linguaggio, in Java si perdono i benefici

  3. +2

    E' un banner simpatico, secondo me avrebbe reso di più mostrare interamente la creatura seduta

     

    Altre valutazioni:

    Il primo è carino ma non c'entra nulla con novembre

    Il terzo non mi convince per l'abuso di stelline e effetti photoshop

    Il quarto non mi sembra adatto come banner

  4. Ci sono due modi:

    1) Usare uno sprite sheet come quelli per rpgmaker e disegnare lo sprite da codice tramite la funzione draw_sprite_part(sprite,-1,left*anim_width,top*anim_height,anim_width,anim_height,x,y);

    con anim_width e anim_height rispettivamente altezza e larghezza dell'animazione impostate da te in create dell'oggetto che disegna, mentre in step determini come cambiare left e top (che sono degli indici interi che indicano la colonna e la riga dell'animazione sulla griglia)

    2) Usare il sistema di sprite nativo di gamemaker:

    Crea un nuovo sprite, cliccaci due volte su, seleziona dal menù Create From Strip per aggiungere il primo frame dell'animazione, continua con Add from Strip per i frame successivi fino a racchiudere tutta l'animazione nello sprite.

    Poi assegni ad un oggetto quello sprite e specifichi nell'evento on create image_speed = 0.1 (più è basso il valore, più lenta è l'animazione) e vedrai l'oggetto compiere l'animazione in continuazione

  5. I menù sono facilissimi da fare e anche la parte rpg è facile da programmare :)

    ci sono tanti modi per fare un database, puoi avere un oggetto per ogni personaggio oppure un unico oggetto che ha dentro tutto il database come array.

    Se il gioco è semplice puoi creare un oggetto che funga da scheletro e crei i personaggi con uno scriptino.

    es.

    obj_character

    on create

    stat_name= "";
    stat_level = 1;
    stat_strength = 1;
    stat_agility = 1;
    stat_wisdom = 1;
    //...

    poi ti crei uno scriptino per creare un personaggio come lo vuoi tu:

    Script: crea_personaggio

    //crea_personaggio(nome,livello,forza,agilità,saggezza)
    var p = instance_create(0,0, obj_character);
    with (p){
      stat_name = argument0;
      stat_level = argument1;
      stat_strength = argument2;
      stat_agility = argument3;
      stat_wisdom = argument4;
    }
    return p;

     

    obj_database

    on create:

    party[0] = crea_personaggio("Luke",5,2,3,4);
    party[1] = crea_personaggio("Sam",4,1,5,4);
    party[2] = crea_personaggio("Anne",1,3,2,2);

     

    Facendo discendere tutti i personaggi dall'obj_character è semplice gestire azioni come combattimenti visto che mantieni sempre la stessa sintassi

    Script: attacca

    //attacca(pg1,pg2)
    var p = argument0;
    var q = argument1;
    if (p.stat_strength>q.stat_strength) show_message("Vince "+p.stat_name);
    else show_message("Vince "+q.stat_name);

  6. Ho avuto un po' di tempo per leggere il topic, ho visto la presentazione, la grafica è troppo dettagliata per i miei gusti (per intenderci preferisco heroes of might and magic 6 a the witcher) e condivido le perplessità di flame, è dura anche per me commentare qualcosa visto che c'è solo lo scriptino per la telecamera in prima persona.

     

    Però gli artwork dei personaggi sono molto carini ed anche le vecchie mappe 2d

  7. Condivido che IGM sia una schifezza.

    In gamemaker (di cui avevo comprato la licenza) avevo iniziato anni fa a fare un progetto di tipo castlevania ma richiedeva troppa graficae ho mollato, se ti interessano degli snippet di codice dimmi di volta in volta che ti serve e ti scrivo la soluzione che avevo trovato.

    Allo stato attuale se dovessi imparare un tool ex novo impararei torque 2d, costa un po' ma ha tutto ciò che serve!

     

    EDIT: @Wrathrock: in realtà hanno prima creato dei final fantasy maker e poi hanno sviluppato i final fantasy :)

  8. il video sui dinosauri spacca tantissimo :)

    invece del vostro progetto ho visto solo gli screen della prima pagina e qui nell'ultima scrivete in udk invece che in xp, mi sono perso totalmente tutto il topic, potete aggiornare la prima pagina?

    Comunque l'ambientazione cyberpunk/ken il guerriero mi piace molto!

  9. Lo slideshow di immagini è carino, il problema è dopo.

    I font del titolo sono molto ingombranti e non ha molto senso mostrare il mouse se scorri le opzioni con le frecce.

    Un problema sono anche gli fps che oscillano tra 18 e 30, sono troppo bassi, se decidi di limitarli conviene imporre 60 come massimo (e dimezzare tutte le velocità), così quando carichi la cpu non scendi sotto i 30.

    Uno dei tipici errori nella programmazione di videogiochi tramite linguaggi è fermarsi alla creazione del framework e non creare alcun gioco.

    Con una buona mappa, il mouse nascosto con su un'icona particolare per ogni azione, e un briciolo di trama diventa tutto più presentabile.

    Credo che a nessun grafico interessi fare un gioco in c++ che sembri peggio di un gioco in rmxp.

    Sembrerò duro ma sono tutte cose che ho imparato a mie spese :)

  10. certo, ti lascio volentieri il campo (anche perché non ho avuto successo :_:) , appena inizi allegro torno, è una libreria interessante anche se di vecchio stampo, ma questo la rende perfetta per i giochi in pixel art!
  11. Il mio obiettivo era più creare uno spunto che una lezione dettagliata, anche perché è pieno di lezioni dettagliate sulle classi su altri siti, ma sono pochi che le applicano al game design ^^

    Mi sono incasiinato in un problemaaaaaaa sull'ereditarietà dei costruttori in c++ ma se qualcun altro solleva domande ci dedico più tempo u.u

  12. mmm non mi ricordavo come si muoveva e mi sono andato a cercare il codice, il dannato gatto mi suggeriva solo di cliccare su gioca ora.

    Il movimento tramite mouse è pratico ma non mi piace che effettua lo scrolling ogni volta, a mio parere se il tile è abbastanza vicino al centro dovrebbe evitarlo o farlo dopo aver effettuato il movimento.

    Invece al momento se clicco prima sposta la telecamera e poi inizia a muoversi ed è brutto :s.

    Cerca di passare a html5 al più presto, ho iniziato a lavorarci da poco e sono molto soddisfatto :3

×
×
  • Create New...