Rimbalzo (alternativa icona)

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Rispondi
Avatar utente
Lego
Membro d'elite
Messaggi: 1327
Iscritto il: 26/05/2010, 13:31
Specialità: Creare concept
Località: In un file .gmk
Contatta:

Rimbalzo (alternativa icona)

Messaggio da Lego »

:cappa:

Come sapete nella compe 2011 certi giudici hanno penalizzato il mio gioco perché avevo utilizzato i rimbalzi integrati. :(
Allora mi sono detto: "creo da me stesso i rimbalzi!"
Molto facile dirlo, farlo é stato un p'ò meno.
Il mio problema é che non mi funziona questo codice, avrò sbagliato qualcosa?
Spoiler

Codice: Seleziona tutto

//Caso 1
if(direction>45)&&(direction<135)
{
 if(direction>45)&&(direction<90)
 {
 direction=direction-((360-(360-direction))*2)
 }
 else
 {
 direction=direction+((360-(360-direction))*2)
 }
}
//Caso 2
if(direction>135)&&(direction<225)
{
 if(direction>135)&&(direction<180)
 {
 direction=direction-(((360-(360-direction))-90)*2)
 }
 else
 {
 direction=direction+(((360-(360-direction))-135)*2)
 }
}
//Caso 3
if(direction>225)&&(direction<315)
{
 if(direction>180)&&(direction<225)
 {
 direction=direction-(((360-(360-direction))-180)*2)
 }
 else
 {
 direction=direction+(((360-(360-direction))-225)*2)
 }
}
//Caso 4
if(direction>315)&&(direction<45)
{
 if(direction>270)&&(direction<315)
 {
 direction=direction-((360-(360-direction))*2)
 }
 else
 {
 direction=direction+((360-(360-direction))*2)
 }
}
Mi sono immaginato la cosa in questo modo:
Ho 4 possibili lati in cui rimbalzare: 1 2 3 e 4.
Ogni numero ha un if che ne contiene un altro:
per 1: a b
per 2: c d
...
Solo che per calcolare l'angolo di "uscita" dopo i 180 gradi dovevo sotrrarre i gradi di troppo, ecco spiegato perché nel caso 3 e 2 ci sono dei "-" aggiunti. ;)
Spoiler
Immagine
Forse mi sono spiegato malissimo, chiedete se non capite, ma sopratutto: aiutatemi please! :confuso:
Statene certi, ci rivedremo molto presto.
---------------------------------------------------------
Vuoi info sul forum e Game Maker: Studio? Clicca il link sotto!
http://gmitalia.altervista.org/gmi_foru ... f=1&t=8522

Avatar utente
enick
GMI VIP
Messaggi: 3749
Iscritto il: 26/06/2011, 19:34
Specialità: 39dll e 3D
Località: Sardegna
Contatta:

Re: Rimbalzo (alternativa icona)

Messaggio da enick »

definisci magari con il costrutto mod :manual: 360 per non avere valori negativi o maggiori di 360..
Nicola porcu(Sardegna)
ImmagineImmagine
Immagine
Are you sleeping?
[email protected]

Avatar utente
Stavros
GMI Advanced
Messaggi: 1914
Iscritto il: 24/02/2010, 20:03
Specialità: PixelArt - Grafica
Uso: GM:Studio 2
Località: QDMA12
Contatta:

Re: Rimbalzo (alternativa icona)

Messaggio da Stavros »

In collisione con il "block" fai

Codice: Seleziona tutto

vspeed = -vspeed/2

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

Re: Rimbalzo (alternativa icona)

Messaggio da Jak »

enick ha scritto:definisci magari con il costrutto mod :manual: 360 per non avere valori negativi o maggiori di 360..
:NO:
x mod 360 farà si che x starà tra -360 e 360 o per essere più precisi:
-se x è positivo il valore sta tra 0 e 360
-se x è negativo il valore sta tra -360 e 0

Se volete un mod che trovi il giusto valore tra 0 e 360 bisogna fare

Codice: Seleziona tutto

y = ((x mod 360) + 360) mod 360
:baron:
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
Lego
Membro d'elite
Messaggi: 1327
Iscritto il: 26/05/2010, 13:31
Specialità: Creare concept
Località: In un file .gmk
Contatta:

Re: Rimbalzo (alternativa icona)

Messaggio da Lego »

Jak ha scritto:
enick ha scritto:definisci magari con il costrutto mod :manual: 360 per non avere valori negativi o maggiori di 360..
:NO:
x mod 360 farà si che x starà tra -360 e 360 o per essere più precisi:
-se x è positivo il valore sta tra 0 e 360
-se x è negativo il valore sta tra -360 e 0

Se volete un mod che trovi il giusto valore tra 0 e 360 bisogna fare

Codice: Seleziona tutto

y = ((x mod 360) + 360) mod 360
:baron:
Hemmmm...che é un mod? (non riesco a trovarlo sul manuale) :?:
Statene certi, ci rivedremo molto presto.
---------------------------------------------------------
Vuoi info sul forum e Game Maker: Studio? Clicca il link sotto!
http://gmitalia.altervista.org/gmi_foru ... f=1&t=8522

Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio 1.4 Android
Località: Marche
Contatta:

Re: Rimbalzo (alternativa icona)

Messaggio da guidox »

Ti ricordi quando da piccolo facevi le divisioni con il resto?
Ecco mod da il resto della divisione:
100 : 30 = 3 resto 10
quindi
100 mod 30 = 10
Per avere 3, si usa la funzione div.
100 div 30 = 3
Immagine

Immagine

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

Re: Rimbalzo (alternativa icona)

Messaggio da BaronVsCorsar »

mod è una operatore, come +, -, ...

in algebra esiste un operatore che si chiama modulo.
Anzi, ne esistono due, uno unario (che si applica su un solo operando) che corrisponde al valore assoluto, ed uno binario (con due operandi) che corrisponde a "resto della divisione".
http://it.wikipedia.org/wiki/Aritmetica_modulare
:baron:
Post di pignoleria perchè mi pare fosse un po' di tempo che non ne facevo :fapensare:
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
Lego
Membro d'elite
Messaggi: 1327
Iscritto il: 26/05/2010, 13:31
Specialità: Creare concept
Località: In un file .gmk
Contatta:

Re: Rimbalzo (alternativa icona)

Messaggio da Lego »

guidox ha scritto:Ti ricordi quando da piccolo facevi le divisioni con il resto?
Ecco mod da il resto della divisione:
100 : 30 = 3 resto 10
quindi
100 mod 30 = 10
Per avere 3, si usa la funzione div.
100 div 30 = 3
Tutto chiaro ora! :D
Statene certi, ci rivedremo molto presto.
---------------------------------------------------------
Vuoi info sul forum e Game Maker: Studio? Clicca il link sotto!
http://gmitalia.altervista.org/gmi_foru ... f=1&t=8522

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti