How to use looping statements

Creating a Puyo Puyo Game do not understand how to use looping stateme

Page 1 of 1

0 Replies - 731 Views - Last Post: 14 October 2009 - 08:11 AM Rate Topic: -----

#1 Riz 01  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 26
  • Joined: 27-August 09

How to use looping statements

Post icon  Posted 14 October 2009 - 08:11 AM

Hi Guys im currently creating a puyo puyo game and im nearly done ive been working on this for about 2 months im still new to java. Anway my question is, is that after my first two puyo images reach the bottom how would i go about having my next images load and then drop and then have that loop. I understand how to create a loop statement but i just don't understand what parameters i would need to put into it and what kind of loop statement i would need i.e. for loop, do loop etc... I really could use some help ive tried and gotten this far but im pretty stuck. I appreciate any help you can provide. Here is my code so far

public class Puyo {

	public int x, y, color;
	public Puyo(int c, int x2, int y2) {
		color = c;
		x = x2;
		y = y2;
		
   
	
	}
	
	
}


import javax.swing.*; 
import java.awt.*;   
  
public class DemoTest extends JPanel {
 
	public static void main(String[] args) { {
	JFrame frame = new JFrame("Puyo Puyo");
	frame.setContentPane(new PuyoAnimation());  
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
	frame.pack();
	frame.setSize(200,453);
	frame.setResizable(false);
	frame.setVisible(true);
  } 
 }
}


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;  
import javax.swing.event.*;
import java.util.Random;



public class PuyoLogic extends JPanel { 

   public static final int puyoEmpty=0;

  final int board_height = 12;
  final int board_width = 6;
  final int image_height= 32;
  final int image_width = 32;
  final int MAX_X = board_width*image_width;
  final int MAX_Y = board_height*image_height;
  private static final int DELTA_Y = 2;
  private static final int TIMER_DELAY = 20;
  
  
  Image images[]; 
  Puyo puyolist[][];
  Puyo current[];
  Puyo droppingBalls[];
  Timer pptimer;
  Random myRand= new Random(); 
  boolean keyRight,keyLeft,keyUp; 
  
   
	 public PuyoLogic() {
	 super();
   	 
   	 puyolist = new Puyo[board_width][board_height];
   	 
   	 current = new Puyo[2];
   	 current[0] = new Puyo(myRand.nextInt(4), (board_width * image_width /2), 0);
   	 current[1] = new Puyo(myRand.nextInt(4), (board_width * image_width /2)+image_width, 0);
   	 
	// current[2] = new Puyo(myRand.nextInt(4), (board_width * image_width /2), 0);
   //	 current[3] = new Puyo(myRand.nextInt(4), (board_width * image_width /2)+image_width, 0);
   	 
	 
	 images = new Image[4];
	 images[0] = Toolkit.getDefaultToolkit().getImage("puyo_yellow.png");
	 images[1] = Toolkit.getDefaultToolkit().getImage("puyo_blue.png");
	 images[2] = Toolkit.getDefaultToolkit().getImage("puyo_green.png");
	 images[3] = Toolkit.getDefaultToolkit().getImage("puyo_red.png");
	  
	 setFocusable(true);
	 PuyoMove puyo_move = new PuyoMove(); // Make a new video game KeyListener
	 addKeyListener(puyo_move);
	 setBackground(Color.BLACK);
	 

	  pptimer = new Timer(TIMER_DELAY, new TimerAction());
	  pptimer.start();
	 }  
	 	
	 public void setAnimation(boolean OnandOff){
		if (OnandOff) {
			pptimer.start();  
		} else {
			pptimer.stop();  
		}
	 }
	 
	 
	public void NewBlock() {
	int newblock;
	int i,j;

	for(i=0; i<4; i++)
		for(j=0; j<4; j++)
		//puyolist[i][j] = new Puyo[2];

	current[0].x=board_width/2-2; 
	current[0].y=0;

	}	
	 
	 
	public void puyoBoundsRight(Puyo[] current){
	if ((current[0].x + image_width <= MAX_X - image_width) && (current[1].x + image_width <= MAX_X - image_width)){
	current[0].x += image_width;
	current[1].x += image_width;
  }
}
	public void puyoBoundsLeft(Puyo[] current){
	if ((current[0].x - image_width >= 0) && (current[1].x - image_width >= 0)){
	current[0].x -= image_width;
	current[1].x -= image_width;
  }
}   



   private class PuyoMove implements KeyListener {
	 	
	 public void keyTyped(KeyEvent k){}
	 public void keyReleased(KeyEvent k){}
	 public void keyPressed(KeyEvent k){
	 	
		switch (k.getKeyCode()){
	 	
	 	case KeyEvent.VK_LEFT:
	 		keyLeft = true;
	 		break;
	 		
	 	case KeyEvent.VK_RIGHT:
	 		keyRight = true;
	 		break;
	   }
	 }
   }
   

		public void paintComponent(Graphics g){
		super.paintComponent(g);  
			
		g.drawImage(images[current[0].color],current[0].x,current[0].y,this);
		g.drawImage(images[current[1].color],current[1].x,current[1].y,this);
		
	   // g.drawImage(images[current[2].color],current[2].x,current[2].y,this);
		//g.drawImage(images[current[3].color],current[3].x,current[3].y,this);
		
	   
	   }
	  
		class TimerAction implements ActionListener {
	   
		public void actionPerformed(ActionEvent e) {
		
		  if (keyLeft){
		   
			
			puyoBoundsLeft(current); 
			keyLeft = false;
			
		}
		  else if (keyRight) {  
			  
			puyoBoundsRight(current);
			keyRight = false;
		   
		  }
		  if (current[0].y + image_height <= MAX_Y && current[1].y + image_height  <= MAX_Y)
		  {
	 		current[0].y += DELTA_Y;
	 		current[1].y += DELTA_Y;
		  } 
		else {
	   		 
	   		setAnimation(false);
		}
		   
		   repaint();	
		  }
	   }	  
   }


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;


class PuyoAnimation extends JPanel {

   PuyoLogic pl;	
   
  public PuyoAnimation() {
	
	   pl = new PuyoLogic();		
	   JButton startButton = new JButton("Start");		
	   JButton stopButton  = new JButton("Stop");
		
	
	   startButton.addActionListener(new Start());
	   stopButton.addActionListener(new Stop());
		
	  
	   JPanel button = new JPanel();
	   button.setLayout(new FlowLayout());
		button.add(startButton);
		button.add(stopButton);
		
	   
	   this.setLayout(new BorderLayout());
	   this.add(button, BorderLayout.SOUTH);
		this.add(pl,BorderLayout.CENTER);
	}
	
	class Start implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			pl.setAnimation(true);
		}
	}
	
	
	class Stop implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			pl.setAnimation(false);
		}
	}
}//endclass 


Is This A Good Question/Topic? 0
  • +

Page 1 of 1