Non trovo nessun topic a riguardo

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
Muttley
Newbie
Messaggi: 44
Iscritto il: 07/01/2011, 1:30
Specialità: Grafico e Dj
Uso: GM:Studio 2
Contatta:

Non trovo nessun topic a riguardo

Messaggio da Muttley »

ciao a tutti: ho un problema ho disegnato un sprite girato in entrambi le direzioni e voglio fare in modo che quando clicco destra si gira a destra e cliccando a sinistra si gira a sinistra. Ho provato ma continua a darmi errore come posso fare nel modo + semplice?
grazie a chi mi risponde

P.S.
uso la lite edition

Avatar utente
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: Non trovo nessun topic a riguardo

Messaggio da BaronVsCorsar »

1) scrivi titioli di topic che facciano capire l'argomento, non i tuoi problemi
2) sfoglia il manuale fino al capitolo (escluso) del GML, altrimenti non capirai il 90% dei suggerimenti che ti vengono dati

Per la tua difficolta:

confronta la coordinata x del mouse quando cliccki rispetto la coordinata x dell'oggetto.
Se x mouse < x oggetto
Se x mouse > x oggetto hai clicckato a destra.

In funzione di dove hai cliccato devi modificare sprite (o image_index, dipende se hai fatto due subimage oppure due sprite differenti).
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

Avatar utente
Muttley
Newbie
Messaggi: 44
Iscritto il: 07/01/2011, 1:30
Specialità: Grafico e Dj
Uso: GM:Studio 2
Contatta:

Re: Non trovo nessun topic a riguardo

Messaggio da Muttley »

:spat: scusa, ho sbagliato a formulare la domanda:volevo dire se premo tasto destro va a destra (lo sprite ha + immagini) e con tasto sinistro a sinistra....intendevo le frecce della tastiera

Avatar utente
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: Non trovo nessun topic a riguardo

Messaggio da BaronVsCorsar »

sostituisci
Se x mouse < x oggetto
Se x mouse > x oggetto

con

se premuto tasto freccia sinistra
se premuto tasto freccia destra

sfoglia il manuale prima di tornare a chiedere maggiori dettagli, se non sbaglio questo esempio
basilare (come tanti altri) lo trovi spiegato e con diversi esempi ;)

Se hai problemi con l'inglese nel sito di GMI trovi la traduzione del manuale (versione 6.1, ma al 95%
ancora valida - sicuramente per queste cose di base - anche per le versioni più recenti).
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

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

Re: Non trovo nessun topic a riguardo

Messaggio da Tizzio »

Non ho capito come gestisci gli sprites

Fai così (il metodo più intuitivo):

1) crea 4 sprite (Player_fermo_d, Player_movimento_d,Player_fermo_s, Player_movimento_s);
2) inserisci questo codice
[codescript=STEP EVENT]if ( keyboard_check(vk_right)) {
sprite_index=Player_movimento_d;}

if keyboard_check_released(vk_right){
sprite_index=Player_fermo_d;}

if ( keyboard_check(vk_left)) {
sprite_index=Player_movimento_s;}

if keyboard_check_released(vk_left){
sprite_index=Player_fermo_s;}[/codescript]

Avatar utente
Muttley
Newbie
Messaggi: 44
Iscritto il: 07/01/2011, 1:30
Specialità: Grafico e Dj
Uso: GM:Studio 2
Contatta:

Re: Non trovo nessun topic a riguardo

Messaggio da Muttley »

funziona ma l'unico problema è quando lascio sinistra, continua a muoversi l'animazione, (non il personaggio, solo l'animazione)...
ECCO IL CODICE: (dov'è lo sbaglio?
[codescript=]//movimento personaggio
if (keyboard_check(vk_right)) {
sprite_index=mago_mov_D;}

if keyboard_check_released(vk_right) {
sprite_index=mago_fer_D;}

if (keyboard_check(vk_left)) {
sprite_index=mago_mov_S}

if keyboard_check_released(vk_left) {
image_index=mago_fer_S;}[/codescript]

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

Re: Non trovo nessun topic a riguardo

Messaggio da Tizzio »

Muttley ha scritto:funziona ma l'unico problema è quando lascio sinistra, continua a muoversi l'animazione, (non il personaggio, solo l'animazione)...
ECCO IL CODICE: (dov'è lo sbaglio?
[codescript=]//movimento personaggio
if (keyboard_check(vk_right)) {
sprite_index=mago_mov_D;}

if keyboard_check_released(vk_right) {
sprite_index=mago_fer_D;}

if (keyboard_check(vk_left)) {
sprite_index=mago_mov_S}

if keyboard_check_released(vk_left) {
image_index=mago_fer_S;}[/codescript]

ma mago_fer_S non deve avere animazioni :spat:
è fatto apposta.
fai 2 sprite per ogni direzione
una animata e una ferma

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Non trovo nessun topic a riguardo

Messaggio da Jak »

Mai visto uno spreco di if/risorse di tale bruttura in vita mia.
Per il fatto di avere 2 sprite ok visto che hai la lite però non sarebbe meglio fermare l'animazione e basta piuttosto che usare un'altro sprite?
Prima di tutto fai i due sprite e assicurati che un fotogramma sia identico al pg "fermo"(nel mio codice userà il fotogramma "0" cioè il primo.

Codice: Seleziona tutto

if (keyboard_check(vk_left))
{
     sprite_index=sprite_sinistra;
     image_speed=1;
}
else if (keyboard_check(vk_right))
{
     sprite_index=sprite_destra;
     image_speed=1;
}
else
{
     image_speed=0;
     image_index=0;
}
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

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

Re: Non trovo nessun topic a riguardo

Messaggio da Tizzio »

Jak ha scritto:Mai visto uno spreco di if/risorse di tale bruttura in vita mia.
Per il fatto di avere 2 sprite ok visto che hai la lite però non sarebbe meglio fermare l'animazione e basta piuttosto che usare un'altro sprite?
Prima di tutto fai i due sprite e assicurati che un fotogramma sia identico al pg "fermo"(nel mio codice userà il fotogramma "0" cioè il primo.

Codice: Seleziona tutto

if (keyboard_check(vk_left))
{
     sprite_index=sprite_sinistra;
     image_speed=1;
}
else if (keyboard_check(vk_right))
{
     sprite_index=sprite_destra;
     image_speed=1;
}
else
{
     image_speed=0;
     image_index=0;
}
lo sprite contiene anche la subimage "fermo" e ciò non va bene.
dovresti ampliare ancora il codice...
Per questo gli ho fatto usare 4 sprites
"Fai così (il metodo più intuitivo):"

Avatar utente
Muttley
Newbie
Messaggi: 44
Iscritto il: 07/01/2011, 1:30
Specialità: Grafico e Dj
Uso: GM:Studio 2
Contatta:

Re: Non trovo nessun topic a riguardo

Messaggio da Muttley »

grazie a tutti, risolto! :cappa:
@tizzio: solo le due immagini di movimento a destra e a sinistra avevano + immagini mentre quelle solo che indicavano dove era rivolto il personaggio non erano animazioni e contenevano una sola immagine...
non so se mi spiego=1 immagine sprite girato a destra, 1 immagine sprite girato a sinistra, uno sprite in movimento a destra (2 subimage), e uno sprite movimento a sinistra (anche questo 2 subimage). E non capisco dov' è l'errore... MAH!

VABBE COMUNQUE MO HO RISOLTO GRAZIE A TUTTI! :salut:

già che ci siamo (per non aprire un altro post) mi potete dare il link di un post riguardante i dialoghi? non sono riuscito a trovare niente:

:D grazie in anticipo!!!!

Rispondi

Chi c’è in linea

Visitano il forum: Bing [Bot] e 106 ospiti