Jump to content



Βοήθεια με την χρήση του Imgscalr, Listeners και ότι άλλο προκύψει


Recommended Posts

Ναι με css. Oh wait java app είναι άρα όχι αλλά μπορείς να επιλέξεις πολλαπλά controls και να βάλεις πχ γραμματοσειρά και κάποια κοινά appearance properties τα ίδια σε όλα.

 

 

Link to comment
Share on other sites

  • 4 weeks later...
πριν 1 ώρα, το μέλος nucleus έγραψε:

Screenshot δεν βλέπω. Τα πιόνια πως μετακινούνται?

Εε σε αυτό ζητάω να μου δώσετε μια ιδέα. 

 

Εκεί είναι το πρόβλημα, στο πως θα μετά κινούνται. 

PS: Δεν είμαι σπίτι. 

Link to comment
Share on other sites

Θα πρέπει να δείχνει animation? αν ναι δεν έχω ιδέα πως μπορείς να το κάνεις σε java. Αν όχι υπάρχει κάποιο "βήμα" για την μετακίνηση? πχ κινούνται πάντα ανα 1 ή κάποιο άλλο αριθμό τετραγώνων κάθε φορά? Επίσης μπορεί να μετακινηθούν διαγώνια ή όχι?

Link to comment
Share on other sites

πριν 58 λεπτά, το μέλος nucleus έγραψε:

Θα πρέπει να δείχνει animation? αν ναι δεν έχω ιδέα πως μπορείς να το κάνεις σε java. Αν όχι υπάρχει κάποιο "βήμα" για την μετακίνηση? πχ κινούνται πάντα ανα 1 ή κάποιο άλλο αριθμό τετραγώνων κάθε φορά? Επίσης μπορεί να μετακινηθούν διαγώνια ή όχι?

Όχι, δεν θα υπάρχει animation, νομίζω ότι δεν αξίζει τον κόπο και τον χρόνο στην προκειμένη περίπτωση.

 

Τα πιόνια θα μετακινούνται ανάλογα τι θα δείξει το ζάρι.

Διαγώνια όχι, αν και νομίζω αυτό αφορά του animation. Εφόσον δεν θα υπάρχει δεν μας απασχολεί ( ; ).

 

Κάτι απλό που σκέφτηκα είναι να προσθέτω και να κάνω remove ένα JLabel ή JPanel, ή μόνο μια εικόνα αλλά δεν λειτουργεί το remove.

Τα "κουτιά" του board μπορούν να είναι οτιδήποτε. JPanel, JLabel, JButtons etc. Απλά τα έχω βάλει κουμπιά γιατί απλά κάνω ένα .setText("") γιατί νομίζω ότι βολεύουν καλύτερα σε αυτά που κάνω.

Link to comment
Share on other sites

Πιο ζάρι ποιές είναι οι τιμές 1-6? Την κατεύθυνση την καθορίζει ο παίχτης? πρέπει απλώς να μετακινηθεί τόσες θέσεις όσες έφερε το ζάρι σε όποια κατεύθυνση θέλει?

Link to comment
Share on other sites

Υπάρχει ένα ζάρι και δίνει από 1 έως 6.

Οι παίχτες αρχίζουν από τη θέση 1 και πρέπει να φτάσουν ακριβώς στην 100 (δηλαδή αν είναι στην 97 θα πρέπει να φέρουν ακριβώς 3 αλλιώς ξαναπαίζουν την επόμενη γύρα).

 

Το board πάει έτσι.

Snakes_and_ladders.png

 

Βασικά αν δεν υπάρχει animation το μόνο που παίζει σημασία είναι πως θα εξαφανίζεται το πιόνι στον επόμενο γύρο, δηλαδή στην επόμενη κίνηση του παίχτη.

 

Link to comment
Share on other sites

Οπότε η κίνηση είναι "γραμμική" απο ότι κατάλαβα ωραία

class BoardPoint {
	bool IsEmpty {get;set;}
	int rowIndex {get;set;}
	int columnIndex {get;set;}
}

 

το board είναι ένα array απο 100 BoardPoints

 

Μετά έχεις το class Pawn ή Player

class Player
{
	BoardPoint currentPosition {get;set;}
}

Τα dummy classes είναι σε C#.

 

Για το πως θα αναπαραστήσεις το board στο UI εύκολο. JLabels.

 

https://docs.oracle.com/javase/7/docs/api/javax/swing/JLabel.html

 

Αν δεις εκεί στα Methods inherited from class javax.swing.JComponent έχει την https://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setBackground(java.awt.Color)   . Απλώς αποφασίζεις ποιο Color θα είναι το αντίστοιχο empty board point color και ποιο χρώμα αναπαριστά το κάθε πιόνι.

 

Αν θες μπορείς να προστέσεις τα JLabels καρφωτά και όταν αρχικοποιείς τα BoardPoints να βάλεις ένα επιπλέον property που είναι ποιο JLabel το αναπαριστά.

 

Link to comment
Share on other sites

Δηλαδή αν κατάλαβα καλά να το κάνω αλλάζοντας το χρώμα του JLabel, σωστά;

Αν ναι, πάνω στο JLabel μπορεί να υπάρχουν και άλλα objects, πχ μια φωτογραφία. Επίσης αν τύχει και οι δύο παίκτες είναι στο ίδιο σημείο ο δεύτερος θα κρύβει τον πρώτο.

 

PS: Προς το παρόν τα έχω αφήσει JButtons διότι έχω ένα style για τα JLabel που περνάει και στο board αν γίνουν JLabels και δεν το θέλω.

Οκ, μπορώ να το φτιάξω αλλά δεν μου έχει τύχει τίποτα παράξενο με τα κουμπιά προς το παρόν, γι αυτό τα είχα αφήσει.

Link to comment
Share on other sites

Μπορείς να βάλεις και εικόνες αν θες αντί για JLabels και ανάλογα να φορτώνεις την σωστή απο κάποιο path. 4 θέλει όλες και όλες. Μια για το άδειο board point. Μια για το ένα πιόνι,μια για το άλλο πιόνι και μια για το αν είναι και τα 2 πιόνια. Πόσο καλός είσαι με το Paint? :p

Έγινε επεξεργασία από nucleus
Link to comment
Share on other sites

Θέλω να προσθέσω έναν timer που απλά θα αυξάνετε ανά δευτερόλεπτα για να μου δείχνει πόση ώρα είναι ο παίχτης στην εφαρμογή.

Προς το παρόν ότι έχω δοκιμάσει δεν παίζει ή δεν κάνει αυτό που θέλω.

 

Έχει κάνεις κάτι αντίστοιχο;

Link to comment
Share on other sites

https://docs.oracle.com/javase/7/docs/api/java/awt/event/WindowListener.html

 

Πρέπει να γράψεις ένα δικό σου custom window listener. Βάλε ένα property στο βασικό παράθυρο της εφαρμογής σου που θα είναι ένα timestamp.

Όταν ανοίγει το παράθυρο θα παίρνεις το current timestamp εκείνη την στιγμή και θα το βάζεις στο property. Όταν κλείνει το παράθυρο θα διαβάζεις το property και θα βλέπεις πόσα λεπτά ή δευτερόλεπτα έχουν περάσει από τότε και θα το γράφεις σε ένα αρχείο. Η άλλη λύση είναι να δεις και να χρησιμοποιείς κάποιο logger.

 

Παράδειγμα για window listeners:

 

https://docs.oracle.com/javase/tutorial/uiswing/events/windowlistener.html

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.