Saltare su ombra

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
mirkuto
Membro
Messaggi: 176
Iscritto il: 16/10/2009, 14:29
Specialità: Alla buona
Uso: GameMaker 8
Località: Venere
Contatta:

Saltare su ombra

Messaggio da mirkuto »

Salve a tutti sto provando in vari modi di far saltare il mio player e farlo ricadere sulla sua stessa ombra che in pratica deve essere il suo stesso pavimento.

SPIEGAZIONE:
il player può muoversi sopra, sotto a destra e a sinistra... il gioco evolve solo in orizzontale, non è un platform in quanto si da al player la possibilità di muoversi più liberamente su una superfice disegnata in assonometria dando l'idea di profondità (es. giochi stile golden axe)

PROBLEMA:
Ho tentato diverse volte, ma non riesco dopo il salto a far rimanere fermo il player sulla sua ombra. per effetto della collisione setto la gravità a 0, ma non ottengo risultati. Forse l'ho definita su un punto troppo specifico, però ho necessità che il player si blocchi in un punto specifico per ripristinare le condizioni di partenza, altrimenti l'ombra potrebbe spostarsi dalla posizione originaria fissata. Ciò che ottengo è un player che cade rallentando un attimo sull'ombra per poi cadere inesorabilmente nell'oblio e nel vuoto della schermata.

DOMANDA:
Potete aiutarmi a definire un codice o un sistema che mi consenta di far saltare il Player sulla sua stessa ombra???
Oltre questo potreste, lo chiedo con grande cortesia, illustrarmi un codice per il movimento fluido del player che consenta premendo due tasti contemporanei la direzione diagonale???

Vi ringrazio anticipatamente

NOTE: Uso la versione game maker 8.0 lite
Perchè la ragione... perchè con la ragione si sopravvive a tutto... si distrugge il distrutto ricostruendo a intarsi la copia fedele dell'innamorarsi...

Immagine Immagine

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: Saltare su ombra

Messaggio da guidox »

Gestire un gioco così è più difficile di un platform... se pensi davvero che devi usare la gravità integrata di gm ti sbagli di grosso, devi crearti tu in sistema di gravità... Poi saprai come gestire i nemici? non buttarti in progetti troppo difficili ;)
Immagine

Immagine

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

Re: Saltare su ombra

Messaggio da Jak »

Non riesco proprio a capire cosa intendi per "ombra". :fapensare: Mi sfugge proprio la fonte del problema, qualche screen magari potrebbe essere utile.
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
Folkwine
Membro
Messaggi: 212
Iscritto il: 26/07/2011, 13:45
Specialità: Interfacce Grafiche
Contatta:

Re: Saltare su ombra

Messaggio da Folkwine »

Se intendi fare un gioco a scorrimento stile Golden Axe, Cadillac & Dinosauri ecc...
In quel caso, non essendo, come tu stesso hai scritto, un platform, proprio non ti serve assolutamente nessun sistema del genere per il salto, stai sbagliando completamente approccio.

Cerco di spiegarmi...
Nella realtà il tutto si gioca su linee di pixel, con un range che decidi tu, ma per capirci uso questo esempio.
Per semplificare il concetto quindi ammettiamo che il gioco abbia queste "linee di posizione/collisione":

0--------------------------
A--------------------------
B--------------------------
C--------------------------
D--------------------------
E--------------------------

Se due o più oggetti si trovano con la BASE nella stessa "linea", allora c'è interazione, altrimenti no.
Per esempio in questo caso l'omino è sulla linea C:

0---------------------------
A-----------O--------------
B----------/|\-------------
C----------| |------------
D--------------------------
E--------------------------

Ammettendo che l'omino non si spostgi cambi di linea, quando esegue solo il salto, lui si trova sempre sulla linea C e la sua ombra rimane appunto su C, che è il suo livello di terreno reale con il quale può interagire con gli altri oggetti di quel livello.

0-----------O--------------
A----------/|\-------------
B----------| |------------
C---------____-------------
D--------------------------

Di fatto tu non devi gestire il "salto" come spostamento dell'oggetto, ma con un semplice cambio di sprite. Capito?

Avatar utente
mirkuto
Membro
Messaggi: 176
Iscritto il: 16/10/2009, 14:29
Specialità: Alla buona
Uso: GameMaker 8
Località: Venere
Contatta:

Re: Saltare su ombra

Messaggio da mirkuto »

guidox ha scritto:Gestire un gioco così è più difficile di un platform... se pensi davvero che devi usare la gravità integrata di gm ti sbagli di grosso, devi crearti tu in sistema di gravità... Poi saprai come gestire i nemici? non buttarti in progetti troppo difficili ;)
Altre volte mi è stato detto questo, ma io non ho interesse a fare un gioco per vederne solo la riuscita e dire "ho fatto un gioco", non mi stimola fare qualcosa che non mi piace e che non posso sviluppare in modo notevole...
Non posso sempre evitare il problema altrimenti non lo risolverò mai!!!

Sto gia lavorando ad un genere platform di mio interesse, lo si può definire un capitolo nuovo di commander Ken 4
Sto lavorando anche ad un genere punta clicca sul rifacimento di Zak Mc Craken
Ed ora vorrei sviluppare un genere di questo tipo

gli altri due sono a buon punto con le basi, specie sulla programmazione, la questione è che bisogna impegnarsi veramente, ma veramente tanto per la grafica e realizzazione degli sfondi e dare una certa storia nel gioco...

questi sono giochi che mi entusiasma giocare e creare... e non voglio rinunciarci.
Perchè la ragione... perchè con la ragione si sopravvive a tutto... si distrugge il distrutto ricostruendo a intarsi la copia fedele dell'innamorarsi...

Immagine Immagine

Avatar utente
mirkuto
Membro
Messaggi: 176
Iscritto il: 16/10/2009, 14:29
Specialità: Alla buona
Uso: GameMaker 8
Località: Venere
Contatta:

Re: Saltare su ombra

Messaggio da mirkuto »

Folkwine ha scritto:Se intendi fare un gioco a scorrimento stile Golden Axe, Cadillac & Dinosauri ecc...
In quel caso, non essendo, come tu stesso hai scritto, un platform, proprio non ti serve assolutamente nessun sistema del genere per il salto, stai sbagliando completamente approccio.

Di fatto tu non devi gestire il "salto" come spostamento dell'oggetto, ma con un semplice cambio di sprite. Capito?

Questo approccio lo avevo immaginato inizialmente, ma poi mi è venuto il dubbio che è tramite l'ombra che posso definire alcune condizioni particolari

un esempio è quello di far saltare il player su un terreno a gradoni, o una piattaforma o un oggetto solido sul quale possa muovermi sempre con i 5 gradi di libertà,l'idea che avevo in mentre era che:

mentre il player salta su un parallelepipedo
l'ombra collidendo con esso si alza della quota y (confusa con la quota z) del parallelepipedo
il player automaticamente potrebbe bloccarsi a quell'altezza, dando appunto l'idea, l'illusione di essere salito

Persa la collisione dell'ombra con il parallelepipedo si riabbassa la quota della stessa e di conseguenza il player dovrebbe ricadere per effetto gravità sull'obmbra "pavimento"

in pratica ho bisogno di un pavimento (usare l'ombra mi sembrava un compromesso) che cammina insieme al player lungo la coordinata x
mentre salto (prob si setta una variabile che lo verifichi ) il pavimento deve rimanere dov'è
per consentire al player di poggiarsi dopo aver effettuato il salto ( risettando poi la variabile)
Perchè la ragione... perchè con la ragione si sopravvive a tutto... si distrugge il distrutto ricostruendo a intarsi la copia fedele dell'innamorarsi...

Immagine Immagine

Avatar utente
Folkwine
Membro
Messaggi: 212
Iscritto il: 26/07/2011, 13:45
Specialità: Interfacce Grafiche
Contatta:

Re: Saltare su ombra

Messaggio da Folkwine »

La cosa si complica un po' se vuoi sfruttare questa feature, ma l'approccio per me rimane lo stesso.
Puoi dividere i due oggetti ombra e pg, mantenendo la x di ombra uguale a quella di pg e la y proporzionale a quella di pg ad una distanza fissa.

ombra

Codice: Seleziona tutto

y=pg.y+distanzachevuoi
x=pg.x
Se per esempio poi hai un oggetto chiamato "colonna", puoi impostare che se pg sta sullo stesso livello di colonna e la sua x è nel range di larghezza della colonna stessa, allora la y di ombra cambia di tot (che poi è il valore dell'altezza della colonna), per poi fare il contrario appena il pg "scende".

ombra

Codice: Seleziona tutto

if (x > colonna.x+colonna.range1 && x < colonna.x+colonna.range2) then y = pg.y+distanzachevuoi+altezzasalto-colonna.altezza
Non so se son riuscito a spiegarmi, il codice l'ho pensato così al volo e probabilmente non è nemmeno corretto ma era per chiarire il concetto, ripeto, secondo me non ti serve nessun pavimento.

P.S.: ovviamente poi devi gestire tutte le "depth" in modo corretto.

Avatar utente
mirkuto
Membro
Messaggi: 176
Iscritto il: 16/10/2009, 14:29
Specialità: Alla buona
Uso: GameMaker 8
Località: Venere
Contatta:

Re: Saltare su ombra

Messaggio da mirkuto »

Hai ragione!!!
Non ho riflettuto bene sul fatto che se voglio degli oggetti in depth e cioè volessi passare dietro l'oggetto e salirci sopra il mio ragionamento non funzionerebbe perchè l'ombra colliderebbe in ogni punto di quell'oggetto

ora provo a ragionare sulla tua dritta ;)
Perchè la ragione... perchè con la ragione si sopravvive a tutto... si distrugge il distrutto ricostruendo a intarsi la copia fedele dell'innamorarsi...

Immagine Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 41 ospiti