.dsy:it. Pages (9): « First ... « 2 3 4 5 [6] 7 8 9 »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- [Progetto] Pac-Man (http://www.dsy.it/forum/showthread.php?threadid=35130)


Posted by black.jack on 18-06-2008 13:40:

Originally posted by nasty121
avevo postato questa domanda-

la direzione e di quanto viene dettato dai metodi getHorizontalOffset e getVerticalOffset (o SBAGLIO?)
MA COME E DOVE SI FA IL CONTROLLO DELLA CASELLA IN CUI SI DEVE SPOSTARSI L'ELEMENTO MOBILE?


io sn messo abbastanza male, nn credo consegnerò, ma a logica l'ho capito...
nelle varie classi non devi fare altro che scrivere la direzione orizzontale e verticale degli oggetti mobili, e ci metti anche un metodo per il cambio di direzione, ovvero inverte la direzione orizz e verticale....ogni elementi mobile ha, come dice il testo, direzioni diverse..

poi TUTTO quel che riguarda lo spostamento del gioco, sta tutto nel metodo move() di MAZE.

se ci pensi bene,. alla fine il gioco altro non è, come dice Pupino, di una serie di if in cui si calcolano le collisioni di tutti gli elementi in gioco.

es. se la coordinata di pacman è uguale al pallino aumenta i pinti, , se è uguale alla pillola energy, fai scattare un contatore che per 5 turni rende pacman invincibile, se è uguale a quella di un fantasmino, pacman muore, se è uguale a un muro, inverti il senso di marcia ecc

stessa indentica cosa per i ghost..

però un conto è aver capito..un'altro è riportare todo in java :sad:


Posted by Pupino on 18-06-2008 13:52:

Siamo sulla stessa barca, black jack....

Io ho capito tutto, ma spiegare a java come farlo funzionare è un altro discorso...

__________________

PUPINO'S VIDEO
:asd:
FRANK JAY
:!:

UN BLOG :look:


Posted by nasty121 on 18-06-2008 13:55:

Originally posted by Pupino
Io farei una serie di if per capire cosa c'è dopo e in base a quello che c'è sposti nella matrice l' elemento come viene stabilito nelle specifiche...

:D



anche noi avevamo pensato il movimento di Pacman in questo modo (con una serie di if-else annidati) :-D

ma:
- in che metodo lo mettiamo? getNewX/Y() o getHoriz/VertOffset()?
- cerchiamo nella matrice dell'oggetto Maze (statica, come la pensiamo noi...) e calcoliamo le collisioni varie: questo è compito di move() di Maze o di altro?


risp raga!,
jhonny dove seiiiiiii?!!!!!!!!!!!!!!


Posted by nasty121 on 18-06-2008 14:03:

Originally posted by Pupino
Siamo sulla stessa barca, black jack....

Io ho capito tutto, ma spiegare a java come farlo funzionare è un altro discorso...


Io con Java me la cavo abb bene, ma è che non ho capito come avviene l'interazione! :D ossia non capisco il compito di alcuni metodi


Posted by nasty121 on 18-06-2008 14:31:

Originally posted by Pupino
Siamo sulla stessa barca, black jack....

Io ho capito tutto, ma spiegare a java come farlo funzionare è un altro discorso...


Io con Java me la cavo abb bene, ma è che non ho capito come avviene l'interazione! :D ossia non capisco il compito di alcuni metodi


Posted by black.jack on 18-06-2008 14:49:

alura..
getHoriz/VertOffset() di dicono, rispettivamente sull'asse X e Y in che direzione ti stai spostando

getNewX/Y() invece ti servono per calcolarti la nuova posizione in cui dovrà essere messo l'elemento che si deve spostare :)
in questi 2 ovviamente dovrai fare una somma, tra la cordinata della matrice dove si strova l'elemento, e la direzione dove sta andando l'elemento, così ti trovi la posizione nella matrice dove dovrà mettersi..

:)


Posted by Supernick on 18-06-2008 17:41:

Salve avrei una domanda da porvi, a me il campo da gioco viene così




Chiedo come fate a gestire quella porzione di bordo in cui non è presente il muro, ma in cui può entrarci una entità mobile.

Quando entra e tenta di andare verso destra il compilatore giustamente mi lancia a una ArrayOutOfBoundException!

Come gestire questa eccezione? Secondo voi basta creare una entità muro in ogni caso che le cordinate della entità superano la X o la Y della griglia??

Un'altra cosa che volevo chiedervi invece è per le collisioni

quando si scontrano due fantasmi....ad esempio Blinky va a destra e Pinky va a sinistra, si scontrano, a quel punto si respingono entrambi o uno solo respinge l'altro? (Credo sia giusta la prima, ma a me purtroppo fa la seconda :D)


Posted by nasty121 on 18-06-2008 21:30:

Originally posted by black.jack
alura..
getHoriz/VertOffset() di dicono, rispettivamente sull'asse X e Y in che direzione ti stai spostando

getNewX/Y() invece ti servono per calcolarti la nuova posizione in cui dovrà essere messo l'elemento che si deve spostare :)
in questi 2 ovviamente dovrai fare una somma, tra la cordinata della matrice dove si strova l'elemento, e la direzione dove sta andando l'elemento, così ti trovi la posizione nella matrice dove dovrà mettersi..

:)



quindi è in getHoriz/VertOffset() che vedo se nella prossima cella c'è un muro!!!
o no? :?


Posted by black.jack on 19-06-2008 00:08:

Originally posted by nasty121
quindi è in getHoriz/VertOffset() che vedo se nella prossima cella c'è un muro!!!
o no? :?


mm no

quella cosa del vedere cosa c'è nella prox casella non lo fai nelle classi degli elementi, lo fai tutto nel metodo maze().

ogni elemento mobile ha un getHorintal Vertical, che appunto chiamandosi GET vuol dire che richiamano dei valori presi da qualche parte...in questo caso valori che vengono richiamati con l'istanza bev, che sarebbe altrimenti inutile no!?

quindi in ogni behavior devi avere delle variabili horizzontaloffset e verticaloffset, che contengono la direzione sull'asse x e y dell'oggetto mobile

NB. a questo punto nn c'è da fare altro che tradurre da testo a java quello che dice dei movimenti nelle sottoclassi di behavior..


Posted by black.jack on 19-06-2008 00:16:

Originally posted by Supernick
Salve avrei una domanda da porvi, a me il campo da gioco viene così




Chiedo come fate a gestire quella porzione di bordo in cui non è presente il muro, ma in cui può entrarci una entità mobile.



nella classe Maze ci sono appunto 2 variabili, rown e columns che rapprensentano la grandezza del campo di gioco.

io direi che, prima di far spostare gli elementi del gioco, fai un controllo con un if del tipo

if (la posizione dove sta per spostarsi l'elemento è minore del numero di colonne, Or è maggiore del numero di colonne, OR è minore del numero di righe, OR è maggiore del numero di righe) cambia direzione dell'elemento

esegui tutto il resto


Posted by nasty121 on 19-06-2008 13:38:

Qualcuno può suggerire come fare il comportamento di PacMan? PacManBehavior....


Posted by Lorux on 19-06-2008 14:12:

ma solo io sto avendo problemi quando invio il progetto?
mi vengono fduori unsacco di errori" così
/users/malchiod/public_html/LP/sottoposizione/sottoposizioni/phpzR2tcS/Main.java:4: cannot find symbol
symbol : class Behavior
location: class Main
Behavior inky = new InkyBehavior();
^


Posted by black.jack on 19-06-2008 14:29:

credo che non avrai risposte fino a domenica sera :D


Posted by Lorux on 19-06-2008 14:45:

Originally posted by black.jack
credo che non avrai risposte fino a domenica sera :D


ma che cazzo,già ho dovuto stravolgere il mio progetto xkè il cazzola non ha specificato come devono essere i costruttori dei behavior e dei vari mobileElements x poi non accettare costruttori con parametri o con + di 2 parametri..


Posted by black.jack on 19-06-2008 15:04:

Originally posted by Lorux
ma che cazzo,già ho dovuto stravolgere il mio progetto xkè il cazzola non ha specificato come devono essere i costruttori dei behavior e dei vari mobileElements x poi non accettare costruttori con parametri o con + di 2 parametri..


cioè? spiegati meglio..cosa intendi con + di 2 parametri? a chi hai dato + di 2 parametri?

se ce lo dici ci fai un grande favore, così evitiamo anche noi :)


All times are GMT. The time now is 08:02. Pages (9): « First ... « 2 3 4 5 [6] 7 8 9 »
Show all 133 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.