Pagina 1 di 1

Saltare su ombra

Inviato: 30/08/2013, 8:59
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

Re: Saltare su ombra

Inviato: 30/08/2013, 12:33
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 ;)

Re: Saltare su ombra

Inviato: 30/08/2013, 12:33
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.

Re: Saltare su ombra

Inviato: 30/08/2013, 13:01
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?

Re: Saltare su ombra

Inviato: 30/08/2013, 14:05
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.

Re: Saltare su ombra

Inviato: 30/08/2013, 14:22
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)

Re: Saltare su ombra

Inviato: 30/08/2013, 15:31
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.

Re: Saltare su ombra

Inviato: 30/08/2013, 15:55
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 ;)