-Varie ed eventuali- thanks for support my game!

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Tizzio ha scritto:Impara a indentare il codice, specialmente ora che stai imparando
Ti aiuterà tantissimi a capire il flusso del programma che scrivi

Per sapere cos'e l'indentazione cerca su google e prova a vedere la differenza di leggibilità del tuo codice rispetto a quello di solid snake


P.S.
Usa le funzioni audio_* non sound_* che sono obsolete
Il fatto è che programmo su 8 e lì non c'è la funzione audio_.
Darò un'occhiata a sto fatto allora, sempre se per me sia comprensibile...

@Xeryan: sisi, già fatto! :D

ps: quando cammino da solo per quanto riguarda il codice mi da una soddisfazione enorme e il fatto di aver creato lo scrolling con un escamotage del genere mi rende fiero, pure se sono partito dal codice di xeryan queste aggiunte mi hanno tenuto incollato al pc un'intera giornata.

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Vallo92 »

Perchè utilizzo GM 8? Non puoi scaricarti ed utilizzare studio che è nettamente migliore e gratuito?
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Vallo92 ha scritto:Perchè utilizzo GM 8? Non puoi scaricarti ed utilizzare studio che è nettamente migliore e gratuito?
Di studio ho la versione banana che un anno fa non mi salvava i progressi nella programmazione quindi uso 8 per programmare e studio per importare e fare l'export android per testarlo.

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Giornata di scazzo totale, ho aperto game maker per provare a creare la pausa nel gioco ma non ci sono riuscito, quindi per il momento devo farne a meno.
Passiamo dunque a cose più serie, del tipo i salvataggi.
http://ftp.gmitalia.altervista.org/gmi_ ... io#p183523

Ho letto il topic di vallo a proposito e mi sono schiarito un po' le idee. Adesso io mi trovo con un array in cui ci sono le variabili globali di fine livello del tipo:

Codice: Seleziona tutto

global.level1[0]
global.level1[1]
global.level1[2]

global.level2[0]
global.level2[1]
global.level2[2]

//ecc.
Qual'è il modo più semplice per caricare e salvare queste variabili a inizio gioco e fine livello?
Il livello finisce con un obj_end_level che appunto legge le variabili locali e da quelle salva le globali 0-1-2 per ogni livello finito.

Faccio gestire tutto agli obj che ho già o mi conviene creare due obj, uno per il salvataggio e uno per il caricamento o ancora può fare tutto un solo obj?

ps:insomma dato che è un' array ci sarà un modo per abbreviare il codice o mi devo mettere a dichiarare ogni load e save di ogni variabile contenuta nell'array?

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Sto facendo una prova con solo una parte dell'array per vedere se il salvataggio funge ma non salva e non carica. Crea il file di testo ma riporta semplicemente il valore di default. Il codice:
load:

Codice: Seleziona tutto

ini_open("save.ini");
global.level1[1] = ini_read_real("save", "level1[1]", 0); 
global.level2[1] = ini_read_real("save", "level2[1]", 0); 
ini_close(); 
save:

Codice: Seleziona tutto

ini_open("save.ini");
ini_write_real("save", "level1[1]", global.level1[1]);
ini_write_real("save", "level2[1]", global.level2[1]);
ini_close();
Non carica né salva.
L'obj_load viene creato dall'obj_ctrl in game start mentre l'obj_load viene creato quando si distrugge l'obj_end_level che si trova a fine livello.


EDIT:

COME NON DETTO, FUNZIONA!
Ma adesso ditemi, devo mettermi a salvare ogni singolo valore dell'array? Ho notato che devo cambiare anche il nome tra le parentesi, quello a cui va assegnato un valore. Dunque procedo? Non c'è nessuna scorciatoia?
Ultima modifica di Willshir3 il 28/04/2015, 19:19, modificato 2 volte in totale.

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Solid Snake »

Nel codice non vedo problemi quindi io intanto proverei a cambiare le chiavi da "level1[1]" a "level1_1".
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Solid Snake ha scritto:Nel codice non vedo problemi quindi io intanto proverei a cambiare le chiavi da "level1[1]" a "level1_1".
Risolto, questa cosa mi ha fatto notare un errore di battitura che mi ha fatto cambiare tutte le variabili globali e lì dove venivano cambiate, in pratica anziché global.level1 avevo scritto global.leve1 senza la 'l'.
Mi rispondi a ciò che ho scritto su nell'edit?

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da doom13 »

Puoi usare un for.
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Immagine

Mi spiegate perché quella freccia a dx appare così brutta e distorta? Devo settare bene la view? Se si datemi qualche dritta please.

ps:risolto!

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Sapete dirmi perché se ho due object con draw event e in entrambi drawo testo e in uno di questi faccio draw_set_halign l'altro draw event dell'altro obj si sballa? Why? Devo forse usare draw_set_halign anche in quell'altro? Non capisco come i due interagiscano tra di loro.

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Tizzio »

Le funzioni draw_set impostano una variabile interna globale
Quindi dopo il draw devi subito usarla di nuovo per reimpostare l'align
Oppure impostarlo prima di ogni draw
Ti consiglio di leggere il manuale per delle spiegazioni più chiare e approfondite

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da gameplay_extreme »

il draw_set_halign ti permette di impostare l'alineamento orizontale delle scritte, ma NON è una cosa "privata" di ogni istanza, ma un'impostazione generica, quindi, in pratica,
1) o usi in tutti gli object lo stesso allienamento
2) o, se vuoi usare alineamenti diversi, devi specificarne per OGNI oggetto

lo steso dicasi per l'impostazione del colore id una scritta e l'alienamento verticale.

Invece il livello di alpha dell' istanza (ovvero image_alpha) e si privata di ogni istanza , MA il valore di alpha che imposti con draw_set_alpha NO.
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Riuppo che ho ripreso un po'. Ho un problemino:

Ho questo personaggio gestito interamente da "hspeed" e "vspeed", creato tutto home made, anche per la gravità mi sono affidato semplicemente alla "vspeed", senza scomodare "gravity", in modo da scovare l'inghippo qualora si presentasse.

Va tutto liscio, ma ho un problema con un'azione che difatto chiama in causa un' altra variabile, ovvero 'speed'. L'unico elemento di rottura con la dinamica di gioco è un salto che può essere direzionato a piacimento e viene gestito tramite "direction" e "speed". Adesso quando ciò avviene ho problemi nella gestione di questa variabile che mi crea un piccolo bug nella friction(sempre home made). Questo perché la friction gestisce semplicemente hspeed:

Codice: Seleziona tutto

 //friction home made       
if !k_right{if !k_left{if hspeed>0 hspeed-=0.5}}
if !k_left{if !k_right{if hspeed<0 hspeed+=0.5}}
mentre il salto viene gestito in questo modo:

Codice: Seleziona tutto

if instance_exists(obj_arrow){if k_rdash||k_ldash{hspeed=0 direction=obj_stick.dir speed=+20 }}
Non vi serviranno queste info ma le inserisco:

la freccia che indica la direzione del salto

Codice: Seleziona tutto

obj_arrow


il rilascio dei pulsanti adibiti al 'dash'

Codice: Seleziona tutto

k_rdash && k_ldash
La direzione che avevo intrapreso era di convertire 'speed' in hspeed e vspeed e mi sono imbarcato in 'lengthdir_x e lenghtdir_y' ma non ci ho capito molto.

Quello che vi chiedo dunque è un metodo per risolvere questo inghippo e magari avere anche una spiegazione pratica di queste nuove funzioni.

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da gameplay_extreme »

una spiegazione di base su lengthdir_x e lenghtdir_y la puoi trovare qui:
http://giochi3.altervista.org/glossario.htm#LDX
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Grazie Gameplay, Ho risolto proprio con "lengthdir".

Adesso un' altra cosa: come facio tramite codice a creare effetti del tipo: nuvolette sotto i piedi quado il pg cammina o quando fa il salto a parete? Come posso creare sprite che poi si deletano a fine animazione o dopo tot tempo?

Avatar utente
Simsure
Membro
Messaggi: 223
Iscritto il: 13/09/2013, 21:54
Specialità: Programmazione
Uso: GM:Studio 2
Località: dietro di te...
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Simsure »

Willshir3 ha scritto:Grazie Gameplay, Ho risolto proprio con "lengthdir".

Adesso un' altra cosa: come facio tramite codice a creare effetti del tipo: nuvolette sotto i piedi quado il pg cammina o quando fa il salto a parete? Come posso creare sprite che poi si deletano a fine animazione o dopo tot tempo?

Ciau Willshir3 :cappa:

Potresti usare i particellari che sono molto potenti,utili e belli,ma se serve solo avere una nuvoletta di polvere quando il personaggio atterra o salta contro i muri ti basta un oggetto a cui dai lo sprite di una nuvoletta di polvere,nel "create" dai un po di valori casuali in modo da rendere ogni nuvoletta diversa.
Con vspeed e hspeed dai una leggera spinta in una direzione casuale alle nuvolette e puoi infine settare un alarm per attivarsi dopo pochi secondi e distruggere l'oggetto.

Codice: Seleziona tutto

image_xscale = random_range(0.5,1)  //streccia lo sprite in lunghezza
image_yscale = random_range(0.5,1)  //streccia lo sprite in altezza
image_alpha =  random_range(0.5,1)  //la trasparenza
image_angle = random(360)  //ruota lo sprite casualmente

hspeed = random_range(-1,1)
vspeed = random_range(-1,1)

alarm[0] = random_range(10,15)
Oppure se hai un'animazione esiste un evento in "other events" chiamato "animation end" che si attiva quando l'animazione di uno sprite finisce,ti basta mettere l'eliminazione dell'oggetto li.

Quando l'omino collide con il terreno puoi fargli generare un gruppetto di questi oggetti nuvoletta ai suoi piedi e loro faranno il loro dovere.
Immagine
Spoiler
Immagine

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: -Varie ed eventuali- thanks for support my game!

Messaggio da Willshir3 »

Simsure ha scritto:
Willshir3 ha scritto:Grazie Gameplay, Ho risolto proprio con "lengthdir".

Adesso un' altra cosa: come facio tramite codice a creare effetti del tipo: nuvolette sotto i piedi quado il pg cammina o quando fa il salto a parete? Come posso creare sprite che poi si deletano a fine animazione o dopo tot tempo?

Ciau Willshir3 :cappa:

Potresti usare i particellari che sono molto potenti,utili e belli,ma se serve solo avere una nuvoletta di polvere quando il personaggio atterra o salta contro i muri ti basta un oggetto a cui dai lo sprite di una nuvoletta di polvere,nel "create" dai un po di valori casuali in modo da rendere ogni nuvoletta diversa.
Con vspeed e hspeed dai una leggera spinta in una direzione casuale alle nuvolette e puoi infine settare un alarm per attivarsi dopo pochi secondi e distruggere l'oggetto.

Codice: Seleziona tutto

image_xscale = random_range(0.5,1)  //streccia lo sprite in lunghezza
image_yscale = random_range(0.5,1)  //streccia lo sprite in altezza
image_alpha =  random_range(0.5,1)  //la trasparenza
image_angle = random(360)  //ruota lo sprite casualmente

hspeed = random_range(-1,1)
vspeed = random_range(-1,1)

alarm[0] = random_range(10,15)
Oppure se hai un'animazione esiste un evento in "other events" chiamato "animation end" che si attiva quando l'animazione di uno sprite finisce,ti basta mettere l'eliminazione dell'oggetto li.

Quando l'omino collide con il terreno puoi fargli generare un gruppetto di questi oggetti nuvoletta ai suoi piedi e loro faranno il loro dovere.
Grazie, è che mi interessava andarci leggero con gli object, anche per imparare qualcosa di nuovo, cmq credo di avere risolto chiamando in causa delle variabili e assegnandovi la funzione di Draw_sprite nell'apposito evento.

Grazie cmq perché i valori randomici mi torneranno utili.

ps: non sono pratico coi particellari:P

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 166 ospiti