Εμφάνιση 1-14 από 14
  1. #1
    Εγγραφή
    04-11-2011
    Ηλικία
    33
    Μηνύματα
    8
    Downloads
    1
    Uploads
    0
    ISP
    Conn-x OTE
    Γεια

    Ειμαι αρχαριος σχετικα στη java με βασικα πραματα ασχολουμαι ακομα δηλαδη, εχω αρχισει λιγο να παιζω με το swing και φτιαχνω ενα παιχνιδακι θελω να να κανω το εξης μεχρι τωρα εχω εναν κυβο που τον μετακινω ειτε με buttons ειτε με το ποντικι κλασσικα listerners repaint κλπ καλα μεχρι εδω) θελω ομως ο κυβος αυτος να κινειται και μονος του σε μια προδιαγεγραμενη πορεια(τροχεια) και απο οπου περναει να αφηνει μια γραμμη.
    Καθε βοηθεια ευπροσδεκτη δεν θελω αποκλειστικα κωδικα και λιγο στη λογικη να με βοθησει καποιος αν μπορει
    Τελευταία επεξεργασία από το μέλος ibid : 22-03-12 στις 01:47.

  2. #2
    Εγγραφή
    19-03-2009
    Περιοχή
    ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
    Ηλικία
    48
    Μηνύματα
    288
    Downloads
    0
    Uploads
    0
    στείλε τον κώδικα σου μέχρι τώρα

  3. #3
    Εγγραφή
    04-11-2011
    Ηλικία
    33
    Μηνύματα
    8
    Downloads
    1
    Uploads
    0
    ISP
    Conn-x OTE
    αρχαριος ειμαι μη γελασετε:P ψαχνωτας απο εδω απο εκει τον εφταιξα και μεχρι αυτο το απλο σταδιο..
    αυτα που θελω να κανω ειναι να κινω το αντικειμενο σε μια σταθερη τροχια βαση χρονου ( μια while με επαναλ. αλλαγη τον χ και ψ ..? αλλα με το θεμα του χρονου τι παιζει..)
    Spoiler:

    Κώδικας:
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    public class kinisi extends Applet implements ActionListener {
       Button up,right,left,down; 
       int x, y;   
       public void init() {
    	   up = new Button("up");
    	   add(up);
    	   up.addActionListener(this);
    	   right = new Button("right");
    	   add(right);
    	   right.addActionListener(this);
    	   left = new Button("left");
    	   add(left);
    	   left.addActionListener(this);
    	   down = new Button("down");
    	   add(down);
    	   down.addActionListener(this);
          setBackground( Color.black );  
       }
       public void actionPerformed(ActionEvent e)
    	{
    		if(e.getSource() == up)
    			{
    				y=y-40;
    				repaint();
    			}
    		if(e.getSource() == down)
    		{
    			y=y+40;
    			repaint();
    		}	
    		if(e.getSource() == left)
    		{
    			x=x-40;
    			repaint();
    		}
    		if(e.getSource() == right)
    		{
    			x=x+40;
    			repaint();
    		}
    	}
       public void paint( Graphics g ) {
    	   g.setColor( Color.blue );
          g.fillOval( x, y, 40, 40 );
          g.setColor( Color.red );
    		g.fillOval(x+90,y+90,40,40);
       }
    }

  4. #4
    Εγγραφή
    26-08-2008
    Περιοχή
    Πολύ Βόρεια
    Ηλικία
    35
    Μηνύματα
    295
    Downloads
    1
    Uploads
    0
    Τύπος
    ADSL2+ Forthnet Full
    Ταχύτητα
    20480/1024
    ISP
    Forthnet
    DSLAM
    Forthnet - ΚΟΖΑΝΗ
    Router
    thomson-585v7
    Το πως θα κάνεις τον κύβο να κινείται από μόνος του είναι εύκολο. Θα χρησιμοποιήσεις μια συνάρτηση την οποία θα εκτελείς συνεχώς και θα σου δίνει σημεία. Π.χ αν θες να πάς από κάτω αριστερά πάνω δεξιά μια συνάρτηση είναι η y = x.

    Τώρα για την γραμμή μια ιδέα είναι να χρησιμοποιήσεις μια λίστα η στοίβα από Point2D στην οποία θα αποθηκέυεις σημεία σε κάθε screen update. Μετά στο κάθε επόμενο update θα ανατρέχεις την δομή σου και θα τυπώνεις ένα pixel ή ότι άλλο θέλεις σε κάθε σημείο που έχεις αποθηκευμένο.

  5. #5
    Εγγραφή
    19-03-2009
    Περιοχή
    ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
    Ηλικία
    48
    Μηνύματα
    288
    Downloads
    0
    Uploads
    0
    για να κάνεις αυτό που θες πρέπει να κάνεις χρήση threads

    δες τις αλλαγές στον κώδικα σου

    Κώδικας:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    /**
     *
     * @author ΞΕΝΟΦΩΝ
     */
    
    
    
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.ArrayList;
    public class kinisi extends Applet implements ActionListener,Runnable {
        class Point{
            private int X;
            private int Y;
            Point(int x,int y){
                this.X=x;
                this.Y=y;
            }
        }
       Button up,right,left,down,stop;
       int x=20, y=20;
       private boolean running=true;
       private Thread runner;
       private ArrayList<Point> kinisiGrammi;
       public void init() {
    	   up = new Button("up");
    	   add(up);
    	   up.addActionListener(this);
    	   right = new Button("right");
    	   add(right);
    	   right.addActionListener(this);
    	   left = new Button("left");
    	   add(left);
    	   left.addActionListener(this);
    	   down = new Button("down");
    	   add(down);
    	   down.addActionListener(this);
               stop=new Button("Stop");
               stop.addActionListener(this);
               add(stop);
               setBackground( Color.black );
               kinisiGrammi=new ArrayList<Point>();
               runner=new Thread(this);
               runner.start();//τρέχει την συνάρτηση run()
       }
    
       public void run(){
           while (running){//οσο running==true
              repaint();
              try{
                  runner.sleep(1000);//αναμονή 1 sec
              }catch (InterruptedException e){
              }
           }
       }
      public void destroy(){//όταν τελειώσεις το καταστρέφεις
         running = false;
         runner = null;
      }
       public void actionPerformed(ActionEvent e){
    		if(e.getSource() == up){
    		   y=y-40;
    		   repaint();
    		}
    		if(e.getSource() == down){
    		   y=y+40;
    		   repaint();
    		}
    		if(e.getSource() == left){
    		   x=x-40;
    		   repaint();
    		}
    		if(e.getSource() == right){
    		   x=x+40;
    		   repaint();
    		}
    		if(e.getSource() == stop){
    		  destroy();
    		}
    	}
       public void paint( Graphics g ) {
          g.setColor( Color.blue );
          g.fillOval( x, y, 40, 40 );
          g.setColor( Color.red );
          g.fillOval(x+90,y+90,40,40);
          g.setColor( Color.green );
          for (int i=0;i<kinisiGrammi.size()-2;i++)//σχεδιάζει σαν γραμμή μια σειρά σημείων
              g.drawLine(kinisiGrammi.get(i).X, kinisiGrammi.get(i).Y, kinisiGrammi.get(i+1).X, kinisiGrammi.get(i+1).Y);
          x=x+1;//σε κάθε κλήση της repaint() το χ αυξάνεται κατά 1
          y=y+1;//ομοίως για το y
          if (x>50)
              x=0;
          if (y>50)
              y=0;
          Point pt=new Point(x,y);//δημιουργεί νέο σημείο
          kinisiGrammi.add(pt);//το προσθέτει στην λίστα που περιγράφει την πορεία
    
       }
    }

  6. #6
    Εγγραφή
    04-11-2011
    Ηλικία
    33
    Μηνύματα
    8
    Downloads
    1
    Uploads
    0
    ISP
    Conn-x OTE
    οταν βαζω τον κωδικα στο eclipse δεν το δεχεται.. Syntax error, parameterized types are only available if source level is 5.0 μου βγαζει στα υπογραμμισμενα.. Εχω λαθος εκδοση ; 1.6 τρεχω java και eclipse 3.2

    λιγη βοηθεια με αυτο..
    κατα τα αλλα εχεις βαλει αναλυτικα σχολια αν το τρεξω πιστευω θα το καταλαβω.

  7. #7
    Εγγραφή
    17-09-2007
    Ηλικία
    47
    Μηνύματα
    865
    Downloads
    1
    Uploads
    0
    Καλησπέρα,

    Από Window->Preferences->Java->Compiler και δεξιά JDK Compliance τί λέει;

    Αντίστοιχα με δεξί κλίκ στο project->Properties->Java Compiler;

    Επίσης το Eclipse 3.2 είναι λίγο αρχαίο... Υποστηρίζει Java 5; (Θα το δείς στις επιλογές που αναφέρω)

    Καλή επιτυχία

  8. #8
    Εγγραφή
    04-11-2011
    Ηλικία
    33
    Μηνύματα
    8
    Downloads
    1
    Uploads
    0
    ISP
    Conn-x OTE
    Πηγα στο preference και επελεξα source 5.0 και ετρεξε :P ευχαριστω.

    Χμμ λιγο διαφορετικο το ειχα φανταστει(edit:οχι και πολυ τωρα που το ειδα καλυτερα , αυτο ηθελα να κανει ) αλλα θα πειραματιστω να το διαμορφωσω πανω στον κωδικα μου εδωσε ο φιλος πιο πανω .Το θεμα ειναι να καταλαβω πληρως τον κωδικα, παντως μου ειναι μεγαλη βοηθεια thanks.
    Τελευταία επεξεργασία από το μέλος ibid : 23-03-12 στις 23:08.

  9. #9
    Εγγραφή
    04-11-2011
    Ηλικία
    33
    Μηνύματα
    8
    Downloads
    1
    Uploads
    0
    ISP
    Conn-x OTE
    Ενα αλλο θεμα ειναι το τρμοπαιγμα που κανουν τα σχηματα , διαβασα στο internet 2 τεχνικες(Double Buffering και overide update νομιζω) για μην γινεται αυτο το πραγμα.. Αλλα δεν καταφερα να τις εφαρμοσω στον εν λογω κωδικα.. :S μπορει καποιος να μου εξηγησει-βοηθησει λιγο;

  10. #10
    Εγγραφή
    19-03-2009
    Περιοχή
    ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
    Ηλικία
    48
    Μηνύματα
    288
    Downloads
    0
    Uploads
    0

  11. #11
    Εγγραφή
    04-11-2011
    Ηλικία
    33
    Μηνύματα
    8
    Downloads
    1
    Uploads
    0
    ISP
    Conn-x OTE
    Παράθεση Αρχικό μήνυμα από virxen Εμφάνιση μηνυμάτων
    Α ευχαριστω.. τα γραφει πολυ αναλυτικα το link.

  12. #12
    Εγγραφή
    01-03-2012
    Μηνύματα
    152
    Downloads
    0
    Uploads
    0
    ISP
    Wind
    Που μπορω να βρω ενα προγραμμα για να δοκιμασω βασικα πραγματα java??

  13. #13
    Εγγραφή
    19-03-2009
    Περιοχή
    ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
    Ηλικία
    48
    Μηνύματα
    288
    Downloads
    0
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από paulos12 Εμφάνιση μηνυμάτων
    Που μπορω να βρω ενα προγραμμα για να δοκιμασω βασικα πραγματα java??
    αν κατάλαβα καλά θες κάτι τέτοιο?--->http://www.jcreator.org/download.htm

  14. #14
    Εγγραφή
    01-03-2012
    Μηνύματα
    152
    Downloads
    0
    Uploads
    0
    ISP
    Wind
    Ευχαριστω!

Παρόμοια Θέματα

  1. Java Swing...
    Από hritso στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 03-01-12, 06:02
  2. Java Swing OS-Native Look'n'Feel
    Από papajohn στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 4
    Τελευταίο Μήνυμα: 23-01-07, 07:01

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας