Ho un problema con delle scale
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Ho un problema con delle scale
Salve,sto creando un platform in stile Super Mario e vorrei creare delle scale (non a pioli ma a gradini) ma non so come fare.
Potreste aiutarmi?
Potreste aiutarmi?
Houston we have a problem:There is a noob!
- Simsure
- Membro
- Messaggi: 223
- Iscritto il: 13/09/2013, 21:54
- Specialità: Programmazione
- Uso: GM:Studio 2
- Località: dietro di te...
- Contatta:
Re: Ho un problema con delle scale
Dipende un pò da come stai gestendo il movimento del personaggio,io per esempio spesso uso una cosa del genere.
Cioè se il primo pixel a destra è libero,sposta l'omino li.
Ora se per esempio le tue scale sono disegnate 32x32 e ogni gradino è alto e largo 2x2 (ovviamente la collisione della scala nello sprite dovrà essere impostata a "precise" in modo da identificare ogni singolo gradino),l'omino dovrà controllare di spostarsi non piu di un pixel a destra,ma di 2 verso destra e due verso l'alto,per salire effettivamente un gradino.
Quindi una cosa del genere
Questo è semplificato al massimo,e ovviamente andrebbe rivisto in base a come fai muovere il personaggio,però dovrebbe funzionare.
infine molto grezzamente se vuoi farlo muovere piu velocemente,basta un "repeat" prima del comando e lui lo eseguirà al doppio della velcità.
Ciaù
Codice: Seleziona tutto
if keyboard_check(vk_right) && place_free(x+1,y)
{x+=1}
Ora se per esempio le tue scale sono disegnate 32x32 e ogni gradino è alto e largo 2x2 (ovviamente la collisione della scala nello sprite dovrà essere impostata a "precise" in modo da identificare ogni singolo gradino),l'omino dovrà controllare di spostarsi non piu di un pixel a destra,ma di 2 verso destra e due verso l'alto,per salire effettivamente un gradino.
Quindi una cosa del genere
Codice: Seleziona tutto
if keyboard_check(vk_right) && place_free(x+2,y-2)
{x+=2 y-=2}}
infine molto grezzamente se vuoi farlo muovere piu velocemente,basta un "repeat" prima del comando e lui lo eseguirà al doppio della velcità.
Codice: Seleziona tutto
repeat(2)
{
if keyboard_check(vk_right) && place_free(x+2,y-2)
{x+=2 y-=2}}
}
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Re: Ho un problema con delle scale
Le mie scale sarebbero dei triangoli 32x32 semplicemente un blocco pieno tagliato a metà sull' asse diagonale:quindi dovrei fare...
repeat(2)
{
if keyboard_check(vk_right) && place_free(x+1,1)
{x+=1 y-=1}}
}
Cioè al posto del 2 ho messo 1 ok ogni gradini e un pixel giusto?
repeat(2)
{
if keyboard_check(vk_right) && place_free(x+1,1)
{x+=1 y-=1}}
}
Cioè al posto del 2 ho messo 1 ok ogni gradini e un pixel giusto?
Houston we have a problem:There is a noob!
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Ho un problema con delle scale
Potresti fare:
Codice: Seleziona tutto
if keyboard_check(vk_right) && place_free(x+1,y-8)
{
x+=1
move_outside_solid(90)
}
Ultima modifica di Alv il 25/12/2020, 15:12, modificato 2 volte in totale.
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Re: Ho un problema con delle scale
Mi dice:ERROR at line 6 pos 26 Wrong number of arguments to funcion or script.Alv ha scritto:potresti fare:
Codice: Seleziona tutto
if keyboard_check(vk_right) && place_free(x+1,y-8) { x+=1 move_outside_solid(90) }
Non ne ho capito molto ma credo che sia il "90" che hai scritto a dare l'errore.
Ripeto:non ne capisco molto
Houston we have a problem:There is a noob!
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Ho un problema con delle scale
Sì, l'ho scritto di fretta. L'idea è di spostare l'oggetto (x+=1, finisce dentro il blocco scala), quindi usare move_outside_solid per farlo uscire (correggere la coordinata y). Novanta gradi significa verso l'alto.Emanuele ha scritto:Mi dice:ERROR at line 6 pos 26 Wrong number of arguments to funcion or script.Alv ha scritto:potresti fare:
Codice: Seleziona tutto
if keyboard_check(vk_right) && place_free(x+1,y-8) { x+=1 move_outside_solid(90) }
Non ne ho capito molto ma credo che sia il "90" che hai scritto a dare l'errore.
Ripeto:non ne capisco molto
Questo è il comando corretto:
Codice: Seleziona tutto
move_outside_solid(90,-1)
Ultima modifica di Alv il 21/12/2020, 21:27, modificato 3 volte in totale.
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Re: Ho un problema con delle scale
Ah,non lo sapevo.
Dato che non ho neanche iniziato a fare programmazione a scuola non ne capisco molto ma grazie alle vostre spiegazioni sto facendo molto progressi quindi grazie mille .
Dato che non ho neanche iniziato a fare programmazione a scuola non ne capisco molto ma grazie alle vostre spiegazioni sto facendo molto progressi quindi grazie mille .
Houston we have a problem:There is a noob!
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Ho un problema con delle scale
Di nulla.
Ultima modifica di Alv il 30/11/2020, 0:00, modificato 1 volta in totale.
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Re: Ho un problema con delle scale
Avrei un'altra domanda ma non vorrei aprire un altro post:Come posso creare uno score simile a quello predefinito ma con i codici(perché ne ho già messo uno e quindi si bugga quando ne creo un altro)
Praticamente voglio fare che quando la xp (global.xp)
raggiunge il massimo
(global.xpmax)
aggiunge un livello ad un tabellone (una cosa semplice come in alto al centro una scritta"livello"ed il numero del livello.
In più vorrei che ogni volta che avanzo di livello il limite massimo di xp (global.xpmax) aumenta di 50.
Spero di essermi spiegato bene.
Praticamente voglio fare che quando la xp (global.xp)
raggiunge il massimo
(global.xpmax)
aggiunge un livello ad un tabellone (una cosa semplice come in alto al centro una scritta"livello"ed il numero del livello.
In più vorrei che ogni volta che avanzo di livello il limite massimo di xp (global.xpmax) aumenta di 50.
Spero di essermi spiegato bene.
Houston we have a problem:There is a noob!
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Re: Ho un problema con delle scale
Qualcuno potrebbe rispondermi per favore
Houston we have a problem:There is a noob!
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Ho un problema con delle scale
Ti serve un'altra variabile globale per il livello.
Io ti consiglio di creare uno script per l'avanzamento di livello (sarebbe un pezzo di codice che viene eseguito su richiesta). Quindi, quando il giocatore acquisisce esperienza:
Lo script check_xp:
mostra_scritta potrebbe essere un altro script che crea un oggetto scritta. L'oggetto scritta disegna il testo specificato. Per fare un oggetto che stampa del testo, nell'evento Draw dell'oggetto devi mettere:
Io ti consiglio di creare uno script per l'avanzamento di livello (sarebbe un pezzo di codice che viene eseguito su richiesta). Quindi, quando il giocatore acquisisce esperienza:
Codice: Seleziona tutto
global.xp+=5;
check_xp();
Codice: Seleziona tutto
if (global.xp>=global.xpmax) {
global.xp-=global.xpmax;
global.xpmax+=50;
global.level+=1;
mostra_scritta("il tuo livello è "+global.level);
}
Codice: Seleziona tutto
draw_text(x,y,testo_da_stampare);
Ultima modifica di Alv il 09/01/2021, 21:38, modificato 6 volte in totale.
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Re: Ho un problema con delle scale
Grazie , ma vorrei un piccolo chiarimento :
Devo creare uno script che si chiama mostra_scritta (o come lo voglio chiamare io)e devo metterlo in un oggetto nell' evento draw?
Ho capito bene?
E a proposito:
Devo prenderlo alla lettera questa volta perché ho appena provato e mi da un errore (la scritta c è ma appena raggiungo il massimo di xp crasha)
EDIT:ho risolto il problema ho aggiunto string per fare in modo che global.level facesse vedere il numero vicino alla frase
Devo creare uno script che si chiama mostra_scritta (o come lo voglio chiamare io)e devo metterlo in un oggetto nell' evento draw?
Ho capito bene?
E a proposito:
Devo prenderlo alla lettera questa volta perché ho appena provato e mi da un errore (la scritta c è ma appena raggiungo il massimo di xp crasha)
EDIT:ho risolto il problema ho aggiunto string per fare in modo che global.level facesse vedere il numero vicino alla frase
Houston we have a problem:There is a noob!
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Ho un problema con delle scale
Allora, mostra_scritta potrebbe essere uno script che, come dice il nome, fa comparire una scritta nello schermo (magari per un tempo limitato, puoi farla scomparire impostando un timer).Emanuele ha scritto:EDIT:ho risolto il problema ho aggiunto string per fare in modo che global.level facesse vedere il numero vicino alla frase
Quindi mostra_scritta lo devi chiamare quando effettivamente vuoi fare comparire la scritta in schermo. In alternativa, al posto di mostra_scritta, puoi mettere del codice che si occupa direttamente di creare un oggetto scritta. Ti consiglio questa soluzione, per te che sei alle prime armi.
Quindi metti:
Codice: Seleziona tutto
instance_create(20,20,ob_scritta_levelup);
Codice: Seleziona tutto
draw_text(x,y,"Ottenuto livello "+string(global.level));
Ultima modifica di Alv il 03/01/2021, 20:33, modificato 8 volte in totale.
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Re: Ho un problema con delle scale
Grazie per la dritta ma....
Forse è una cosa un po' difficile da fare però ci provo.
Si può fare in modo che quando appare la scritta appare personalizzata cioè come la disegno io tipo su paint o altri programmi?
E a proposito come si crea un timer
Forse è una cosa un po' difficile da fare però ci provo.
Si può fare in modo che quando appare la scritta appare personalizzata cioè come la disegno io tipo su paint o altri programmi?
E a proposito come si crea un timer
Houston we have a problem:There is a noob!
- Alv
- Membro
- Messaggi: 133
- Iscritto il: 14/11/2014, 22:33
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Località: Sicilia
- Contatta:
Re: Ho un problema con delle scale
Potresti settare la font. Ti consiglio comunque di seguire qualche tutorial su Game Maker.Emanuele ha scritto:Grazie per la dritta ma....
Forse è una cosa un po' difficile da fare però ci provo.
Si può fare in modo che quando appare la scritta appare personalizzata cioè come la disegno io tipo su paint o altri programmi?
E a proposito come si crea un timer
Ultima modifica di Alv il 30/11/2020, 0:02, modificato 1 volta in totale.
-
- Newbie
- Messaggi: 22
- Iscritto il: 06/07/2017, 21:57
- Specialità: Studente
- Uso: GM:Studio 1.4 Standard
- Località: Torre Del Greco(NA)
- Contatta:
Re: Ho un problema con delle scale
Ciao ancora ragazzi, potreste cortesemente spiegarmi come si crea una animazione.
Il fatto è che non mi sono chiare le funzioni come image_index ecc.
Si Di conseguenza non saprei come fare.
Grazie in anticipo
Il fatto è che non mi sono chiare le funzioni come image_index ecc.
Si Di conseguenza non saprei come fare.
Grazie in anticipo
Houston we have a problem:There is a noob!
Chi c’è in linea
Visitano il forum: Nessuno e 145 ospiti