Προς το περιεχόμενο

Java: Timers και animation?


alkisg

Προτεινόμενες αναρτήσεις

Δημοσ.

Θέλω να κάνω ένα απλό animation σε Java, π.χ. μια μπαλίτσα που να κινείται στο εσωτερικό ενός jPanel και να αναπηδά στα άκρα του.

 

Για να ζωγραφίσω τη μπάλα ξεκινάω με Graphics g = jPanel1.getGraphics και μετά κάνω g.drawOval(x, y, ...).

 

Ερωτησούλες (απλά hints δώστε μου, π.χ. τα αντίστοιχα objects, δεν χρειάζεται κώδικας):

1) Πώς βάζω έναν timer, ώστε να κινώ τη μπάλα ένα pixel ανά δευτερόλεπτο;

2) Με τη μέθοδο που έγραψα παραπάνω η μπάλα σβήνεται όταν ξανασχεδιάζεται (repaint) το παράθυρο. Καμιά μέθοδος για πιο "μόνιμη" ζωγραφική; Π.χ. υποστηρίζει η Java memory images ή κάτι σχετικό;

3) Υπάρχει καμιά εύκολη μέθοδος για να μην σβήνεται το background όταν κινείται η μπάλα; Π.χ. αν ήθελα να ζωγραφίσω πρώτα κάτι (ας πούμε δυο ορθογώνια) κάπου στο panel και μετά η μπάλα να φέρνει βόλτες κι αυτή στο panel αλλά να μην τα "σβήνει" όταν περνά από πάνω τους;

4) Ο νορμάλ τρόπος για να βάλουμε image components ποιος είναι; Βάζουμε μια label με icon και χωρίς κείμενο;

 

Δουλεύω με NetBeans 4.1. Κατά προτίμηση θα ήθελα να μου προτείνετε κάτι σε απλή Java, χωρίς εξωτερικές βιβλιοθήκες/toolboxes κτλ.

 

Ευχαριστώ,

Άλκης

Δημοσ.

Χεχε!!! :-?

Θα συνεχίσω λοιπόν να απαντάω στις ερωτήσεις των άλλων και στις δικές μου δεν θα απαντάει κανένας... sniff!!! :neutral:

Δημοσ.

Loipon elpizw na se boh8hsw k na mh se mperdepsw :-)

1)Mporeis na pai3eis me ta threads ths java. Sygkekrimena, kaneis implement to Runnable interface sth klash pou 8eleis (p.x. ths main calss sou) kai yparxei leitourgia sleep(msec). Mporei na leitourghsei ws timer.

2)Yparxei h class ImageIcon pou pistevw einai ayto pou 8eleis. Exei kai to function paintIcon poy einai pio bolikh.

3)Den katalabainw ti ennoeis na mhn sbhnei ta or8ogwnia. Dhladh psaxneis gia transparency? (meta mpaineis se alla xwrafia)

4)Den katalabainw mallon edw thn erwthsh sou....Mhpws h ImageIcon sou dinei kai edw thn apanthsh?

 

Eixa ylopoihsei ena paromoio project (prosomoiosh enos oikosysthmatos) me grafika klp gramenno olo me to xeri kai mia stoiba apo biblia dipla!!! (Hmoun neos k ma8a bebaia). Meta apo ayto omws, ta NetBeans ta epaiza kate8eian sta daktyla, se shmeio pou na mh mou fainontai ka8olou eparkh.

Δημοσ.

Thank you boutsak,

 

3) Φαντάσου μια κάτοψη γηπέδου μπάσκετ. Με έναν κύκλο ας πούμε ζωγραφίζουμε το καλάθι, και με μια σφαίρα τη μπάλα. Έστω ότι η μπάλα περνάει πάνω από το καλάθι. Αφού λοιπόν απομακρυνθεί η σφαίρα, θα πρέπει να ξαναζωγραφιστεί ο κύκλος (το καλάθι).

Αν ήταν σε Photoshop αυτό θα γινόταν με layers.

Σε Java πώς γίνεται; Πρέπει να τα ξαναζωγραφίζω όλα σε κάθε repaint, ή υπάρχει κάποιος τρόπος να τα δηλώνω σε κάποια λίστα και να τα ζωγραφίζει μόνη της όταν χρειάζεται;

 

4) Στην παλέττα του NetBeans δεν είδα ImageIcon (δηλαδή να το τραβήξω από την παλέττα χωρίς κώδικα). Είδα όμως ότι μπορώ να βάλω ένα icon σε ένα jLabel και να μην έχω καθόλου text σ' αυτό. Είναι νορμάλ τρόπος αυτός ή υπάρχει στην παλέττα το ImageIcon και για κάποιον λόγο δεν το βλέπω;

Δημοσ.

Thank you guys,

 

για όποιον ενδιαφέρεται, τελικά

α) ναι, είναι νορμάλ να βάζεις εικονίδιο σε ετικέτα, και

β) γίνεται να κινείς τα εικονίδια με setLocation και δεν χρειάζεται ούτε redraw ούτε τίποτα...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...