kostenloser Webspace werbefrei: lima-city


Spiel in Java

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    grum-grum

    grum-grum hat kostenlosen Webspace.

    Hallo Community :)

    Hier mein Problem: Ich soll ein Spiel in Java programmieren, jedoch klappt das nicht so ganz.

    Das Spiel soll so aussehen :

    http://imageshack.us/photo/my-images/580/bildns.jpg/

    Vom Design her ist mein Programm fertig, es macht jedoch noch nicht ganz viel. Es soll so funktionieren dass wenn man ein Polygonfeld anklickt ein blauer (oder orangefarbiger) Punkt im Feld erscheint, und dass wenn das passiert der jeweils andere Spieler dran ist (d.h. es erscheint beim nächten Klicken die jeweils andere Farbe).

    Ich poste euch den Code; er ist nicht sehr sauber (wie gesagt, bin Anfänger ;) ) :

    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    
    import javax.swing.*;
    
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    
    
    class AboutDialog extends JDialog { // puer Problemer dran
    
     
    
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 8169178928427118906L;
    
    	public AboutDialog() {
    
            initUI();
        }
    
        public final void initUI() {
    
            setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
    
            //add(Box.createRigidArea(new Dimension(0, 10)));
    
           // ImageIcon icon = new ImageIcon("notes.png");
            //JLabel label = new JLabel(icon);
           // label.setAlignmentX(0.5f);
           // add(label);
    
            add(Box.createRigidArea(new Dimension(0, 10)));
    
            JLabel name1 = new JLabel("Help & Rules");
            JLabel name2 = new JLabel("bla bla bla bla bla bla bla bla bla ");
            name1.setFont(new Font("Serif", Font.BOLD, 13));
            name2.setFont(new Font("Times New Roman", Font.PLAIN, 13));
            //name1.setBounds(getWidth()/6, getHeight()/6, 0, 100);
            name1.setAlignmentX(0.5f);
            name2.setAlignmentX(0.4f);
            name2.setAlignmentY(0.4f);
            
            add(name1);
            add(name2);
    
            add(Box.createRigidArea(new Dimension(0, 50)));
    
            JButton close = new JButton("Close");
            close.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent event) {
                    dispose();
                }
            });
    
            close.setAlignmentX(0.5f);
            add(close);
    
            setModalityType(ModalityType.APPLICATION_MODAL);
    
            setTitle("Help & Rules");
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            setBounds(200, 100, 300, 400);
            //setLocationRelativeTo(null);
            //setSize(300, 600);
        }
    }
    
    
    
    class f extends JFrame {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    
    	
    	public f(){
    		
    		JMenuBar menuBar = new JMenuBar();
    	        
    		setJMenuBar(menuBar);
    	       
    		JMenu fileMenu = new JMenu("File");
    	    JMenu helpMenu = new JMenu("Help");
    	    menuBar.add(fileMenu);
    	    menuBar.add(helpMenu);
    	        
    	    JMenuItem newAction = new JMenuItem("New...");
    	    JMenuItem exitAction = new JMenuItem("Exit");
    	    JMenuItem helpAction = new JMenuItem("Help...");
    	    JMenuItem aboutAction = new JMenuItem("About");
    
    	    fileMenu.add(newAction);
    	    fileMenu.addSeparator();
    	    fileMenu.add(exitAction);
    	    helpMenu.add(helpAction);
    	    helpMenu.addSeparator();
    	    helpMenu.add(aboutAction);
    	    
    	        
    	    newAction.addActionListener(new ActionListener() {
    	    	public void actionPerformed(ActionEvent arg0) {
    	    		System.out.println("");
    	    		}
    	        });
    	    
    	    exitAction.addActionListener(new ActionListener(){
    	    	public void actionPerformed(ActionEvent arg0){
    	    		System.exit(0);
    	    	}
    	    });
    	    
    	    helpAction.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent event) {
                    AboutDialog ad = new AboutDialog();
                    ad.setVisible(true);
                }
            });
    	    }
    	
    	
    
    
    
    	
    }
    
    
    
    public  class my_hex_game extends JPanel
    {
    	
    	
    		
    
      /**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    @Override
      protected void paintComponent(Graphics g) 
    {
    
    	  JLabel Punkt = new JLabel();
    	  Punkt.setOpaque(true);
    	  Punkt.setBackground(Color.black);
    	  Punkt.setBounds(20, 20, 200, 200);
    	  
    	  int hoehe, breite;
    	  
    	  breite=getWidth()/2; // mittelste Reihe
    	  hoehe=getHeight()/2;
    	  for (int i=0;i<12;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<5) breite-=50;
    		  else if (i==5)breite=getWidth()/2;
    		  else if (i>5)breite+=50;	
    	  }
    	  
    	  breite=getWidth()/2-25; //mittelste Reihe + 1
    	  hoehe=getHeight()/2-13;
    	  for (int i=0;i<10;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<4) breite-=50;
    		  else if (i==4) breite=getWidth()/2+25;
    		  else if (i>4) breite+=50;
    		  
    	  }
    	  
    	  breite=getWidth()/2;  // mittelste Reihe + 2
    	  hoehe=getHeight()/2-26;
    	  for (int i=0;i<10;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<4) breite-=50;
    		  else if (i==4)breite=getWidth()/2;
    		  else if (i>4)breite+=50;	
    	  }
    	  
    	  breite=getWidth()/2-25;  // mittelste Reihe -1
    	  hoehe=getHeight()/2+13;
    	  for (int i=0;i<10;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<4) breite-=50;
    		  else if (i==4) breite=getWidth()/2+25;
    		  else if (i>4) breite+=50;
    		  
    	  }
    	  
    	  breite=getWidth()/2;     // mittelste Reihe -2
    	  hoehe=getHeight()/2+26;
    	  for (int i=0;i<10;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<4) breite-=50;
    		  else if (i==4)breite=getWidth()/2;
    		  else if (i>4)breite+=50;	
    	  }
    	  
    	  breite=getWidth()/2-25;  // mittelste Reihe -3
    	  hoehe=getHeight()/2+39;
    	  for (int i=0;i<8;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<3) breite-=50;
    		  else if (i==3) breite=getWidth()/2+25;
    		  else if (i>3) breite+=50;
    		  
    	  }
    	  
    	  
    	  breite=getWidth()/2-25;  // mittelste Reihe -5
    	  hoehe=getHeight()/2+65;
    	  for (int i=0;i<6;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<2) breite-=50;
    		  else if (i==2) breite=getWidth()/2+25;
    		  else if (i>2) breite+=50;
    		  
    	  }
    	  
    	  breite=getWidth()/2-25;  // mittelste Reihe -7
    	  hoehe=getHeight()/2+91;
    	  for (int i=0;i<4;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<1) breite-=50;
    		  else if (i==1) breite=getWidth()/2+25;
    		  else if (i>1) breite+=50;
    		  
    	  }
    	  
          // mittelste Reihe -9
    
          PolygonWithEgdes.drawNeck(g,getWidth()/2-25,getHeight()/2+117,16,6,false);
          PolygonWithEgdes.drawNeck(g,getWidth()/2-25,getHeight()/2+117,14,6,true);
    		  
          PolygonWithEgdes.drawNeck(g,getWidth()/2+25,getHeight()/2+117,16,6,false);
          PolygonWithEgdes.drawNeck(g,getWidth()/2+25,getHeight()/2+117,14,6,true);
    
    	  
          breite=getWidth()/2-25; //mittelste Reihe + 3
          hoehe=getHeight()/2-39;
          for (int i=0;i<8;i++)
          {
        	  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
        	  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
        	  if (i<3) breite-=50;
        	  else if (i==3) breite=getWidth()/2+25;
        	  else if (i>3) breite+=50;
        	   
          }
           
          breite=getWidth()/2-25; //mittelste Reihe + 5
          hoehe=getHeight()/2-65;
          for (int i=0;i<6;i++)
          {
        	   PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
        	   PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
        	   if (i<2) breite-=50;
        	   else if (i==2) breite=getWidth()/2+25;
        	   else if (i>2) breite+=50;
        	   
          }
           
          breite=getWidth()/2-25; //mittelste Reihe + 7
          hoehe=getHeight()/2-91;
          for (int i=0;i<4;i++)
          {
        	   PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
        	   PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
        	   if (i<1) breite-=50;
        	   else if (i==1) breite=getWidth()/2+25;
        	   else if (i>1) breite+=50;
        	   
          }
    	  
          //mittelste Reihe +9
          PolygonWithEgdes.drawNeck(g,getWidth()/2-25,getHeight()/2-117,16,6,false);
          PolygonWithEgdes.drawNeck(g,getWidth()/2-25,getHeight()/2-117,14,6,true);
           		  
          PolygonWithEgdes.drawNeck(g,getWidth()/2+25,getHeight()/2-117,16,6,false);
          PolygonWithEgdes.drawNeck(g,getWidth()/2+25,getHeight()/2-117,14,6,true);
    	  
          
    	  breite=getWidth()/2;  // mittelste Reihe + 4
    	  hoehe=getHeight()/2-52;
    	  for (int i=0;i<8;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<3) breite-=50;
    		  else if (i==3)breite=getWidth()/2;
    		  else if (i>3)breite+=50;	
    	  }
    	  
    	  breite=getWidth()/2;  // mittelste Reihe - 4
    	  hoehe=getHeight()/2+52;
    	  for (int i=0;i<8;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<3) breite-=50;
    		  else if (i==3)breite=getWidth()/2;
    		  else if (i>3)breite+=50;	
    	  }
    	  
    	  breite=getWidth()/2;  // mittelste Reihe +6
    	  hoehe=getHeight()/2-78;
    	  for (int i=0;i<6;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<2) breite-=50;
    		  else if (i==2)breite=getWidth()/2;
    		  else if (i>2)breite+=50;	
    	  }
    	  
    	  breite=getWidth()/2;  // mittelste Reihe -6
    	  hoehe=getHeight()/2+78;
    	  for (int i=0;i<6;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<2) breite-=50;
    		  else if (i==2)breite=getWidth()/2;
    		  else if (i>2)breite+=50;	
    	  }
    	  
    	  breite=getWidth()/2;  // mittelste Reihe +8
    	  hoehe=getHeight()/2-104;
    	  for (int i=0;i<4;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<1) breite-=50;
    		  else if (i==1)breite=getWidth()/2;
    		  else if (i>1)breite+=50;	
    	  }
    	  
    	  breite=getWidth()/2;  // mittelste Reihe -8
    	  hoehe=getHeight()/2+104;
    	  for (int i=0;i<4;i++)
    	  {
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,16,6,false);
    		  PolygonWithEgdes.drawNeck(g,breite,hoehe,14,6,true);
    		  if (i<1) breite-=50;
    		  else if (i==1)breite=getWidth()/2;
    		  else if (i>1)breite+=50;	
    	  }
    	  
    	  
    	  // mittelste Reihe -10
    	  PolygonWithEgdes.drawNeck(g,getWidth()/2,getHeight()/2-130,16,6,false);
    	  PolygonWithEgdes.drawNeck(g,getWidth()/2,getHeight()/2-130,14,6,true);
    	  
          // mittelste Reihe +10
    	  PolygonWithEgdes.drawNeck(g,getWidth()/2,getHeight()/2+130,16,6,false);
    	  PolygonWithEgdes.drawNeck(g,getWidth()/2,getHeight()/2+130,14,6,true);
    	  
    	  g.setFont(new Font("Times New Roman Bold", Font.BOLD, 15));
    
    	  g.setColor(Color.BLUE);
    	  g.drawString("Player 1 : BLUE", 14, 28);
    	  
    	  g.setColor(Color.orange);
    	  g.drawString("Player 2 : ORANGE", 14, 48);
    	  
    
    
    	  
    	  
    	  
    	 
      }
    
    
      public static void main(String[] args)
      {
        // JFrame f = new JFrame();
    	  final JFrame f = new f();
        f.setSize(700,500);
        //f.setBounds(150,30,700,500);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        f.add(new my_hex_game());
        
        f.setTitle("Hex Game - board game");
        
        f.setResizable(false);
        
        f.addMouseListener(new MouseListener(){
    
        
        	@Override
        	public void mouseClicked(MouseEvent e) {
        		
        		 
        		  if (e.getX()<300&&e.getY()<200){
        			  JLabel RoudePunkt;
        			  RoudePunkt = new JLabel();
        			  RoudePunkt.setOpaque(true);
        			  RoudePunkt.setBackground(Color.BLACK);
        			  RoudePunkt.setBounds(60,60,100,100);
        			  
        			  f.add(RoudePunkt);
        		   //if (width-e.getX()<30&&e.getY()<20)load();}
        		
        		AboutDialog ad = new AboutDialog();
                 ad.setVisible(true);}
        		
        	}
    
    		@Override
    		public void mouseEntered(MouseEvent e) {
    			// TODO Auto-generated method stub
    			
    		}
    
    		@Override
    		public void mouseExited(MouseEvent e) {
    			// TODO Auto-generated method stub
    			
    		}
    
    		@Override
    		public void mousePressed(MouseEvent e) {
    			// TODO Auto-generated method stub
    			
    		}
    
    		@Override
    		public void mouseReleased(MouseEvent e) {
    			// TODO Auto-generated method stub
    			
    		}
        	
        });
        
        f.setVisible(true);
       
      }
    
    
      
    }
    class Kreeser 
    {
    	public static void  krees1(Graphics d)
    	{
    		d.setColor(Color.RED);
    		d.fillRect(20, 20, 600, 600);
    		
    		
    	}
    	
    	public static void  krees2(Graphics d)
    	{
    		
    		
    		
    	}
    }
    class PolygonWithEgdes
    {
      private static Polygon p = new Polygon();
      public static synchronized void drawNeck(Graphics g,int x,int y,int r,int n,boolean filled)
      {
        p.reset();
        for (int i=0;i<n;i++)
          p.addPoint((int) (x + r * Math.cos( i * 2 * Math.PI / n )),
                     (int) (y + r * Math.sin( i * 2 * Math.PI / n )));
        if (filled) {
        	g.setColor(Color.white);
        	g.fillPolygon(p);
        }
        	else {
        		g.setColor(Color.black);
        		g.drawPolygon(p);
        	}
    
      }
      
      
      
    }



    Ich waer sehr sehr froh, wenn es Verbesserungsvorschläge und Lösungen gäbe :)


    Mit freundlichen G.

    Grumy
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Was genau ist dein Problem? *confused*

    Soll jemand deinen Code beurteilen? Soll jemand dein Spiel fertig schreiben? Was klappt nicht so ganz?
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!