Click here to Skip to main content
15,886,362 members
Please Sign up or sign in to vote.
1.00/5 (4 votes)
See more:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MainMIDlet extends MIDlet implements Runnable
{
	Display display;
	MainCanvas mainCanvas;
	Thread thread;
	
	public MainMIDlet()
	{

		display = Display.getDisplay(this);
		mainCanvas = new MainCanvas(this);
		thread = new Thread(this);
	}
	public void startApp()
	{
		try{
		display.setCurrent(mainCanvas);
		thread.start();
		}catch(Exception e) {e.printStackTrace();}
		
	}
	public void run()
	{
		 mainCanvas.DBricks();
			while(!mainCanvas.gameover)
			{
		 	 if(!mainCanvas.pause)
		 	 {
					 if(mainCanvas.startgame)
					 {
						 mainCanvas.gameCode();
						 mainCanvas.BrickBreak();
						 mainCanvas.repaint();

					  try{
						  Thread.sleep(mainCanvas.speed);//increase the speed of the ball by reducing the value.
						  }
					  catch(Exception e){}
					 }
					 else
					 {
						 mainCanvas.BallX=mainCanvas.BatX+25;mainCanvas.BallY=mainCanvas.BatY-mainCanvas.bsize;
						 mainCanvas.repaint();
					 try{Thread.sleep(mainCanvas.speed+mainCanvas.temp);}catch(Exception e){}
					 }
		     }
		     else
		     {
		    	 mainCanvas.repaint();
				 try{Thread.sleep(mainCanvas.speed+mainCanvas.temp);}catch(Exception e){}
			 }
		   }
		while(true){
		try{
			Thread.sleep(150L);
			//System.out.println("Continuous running");
			mainCanvas.repaint();
		}catch(Exception e) {}
		}
	}
	public void pauseApp()
	{
		
	}
	public void destroyApp(boolean uc)
	{
		notifyDestroyed();
	}
	public void exitApp()
	{
		destroyApp(false);
	}
	
}
//






import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
//import java.util.Vector;

import java.util.Random;


public class MainCanvas extends Canvas
{
	/**
	 * MIDlet
	 */
	MainMIDlet midlet;


	/**
	 * determines which key is being pressed
	 */
	int keyPress = 0;

	
	//
	  //array to store the brick x,y and present bits of the brick.
	public static int Bricks[][];
	// varible for to chech the movement of the ball direction.
	public static boolean BdirectionY=true;
	public static boolean BdirectionX=true;
	//variable to check gameover or not.
	public static boolean gameover=false,startgame=false,pause=false;
	//varibales for brick width and height.
    public static int BWidth=30;
	public static int BHeight=15;

	//variable to specify the number of the bricks..
	public static int size=23;
    public int screenWidth=getWidth();
    public int screenHeight=getHeight();
	public static int BatX=120,BatY=280;
	public static int BatW=50;
	public static int bsize=10,life=3,score=0,win=0;
	public static int temp=20;
	public static int BallX=BatX+25,BallY=BatY-bsize;
	public static int s=-5;
	public static int speed=50;
	int index=0;
	private Image bomb;
	private boolean bbool =false;
	private int Bheight=140;
	
	/**
	 * constructor having the MIDlet as the parameter
	 */
	public MainCanvas(MainMIDlet midlet)
	{
		this.midlet = midlet;
		setFullScreenMode(true);
		Bricks=new int [size][5];
		try{
		bomb = Image.createImage("/Bomb.png");      
		}catch (Exception e) {
			// TODO: handle exception
		}
	
	}

	/**
	 * paint Method which is an abstract method in Canvas 
	 */
	public void paint(Graphics g)//
	{
		g.setColor(255,0,255);
		g.fillRect(0,0,getWidth(),getHeight());
		Ballmove(g);
		
		if(bbool){
			Bheight+=4;
			g.drawImage(bomb, 70, Bheight, Graphics.TOP | Graphics.LEFT);
		}
	}
	
	    void BrickBreak()
		{

	  // code for ball hitting bat.
		   if((BallX<=BatX+BatW&&BallX>=BatX&&BallY+bsize==BatY)||(BallX+bsize<=BatX+BatW&&BallX+bsize>=BatX&&BallY+bsize==BatY))
				{
			   
			      BdirectionY=true;
			      
				}

		  for(int i=0;i<size;i++)
		  {
			 //code for ball hitting the brick from bottom
			 if(BallX>=Bricks[i][0]&&BallX<=Bricks[i][0]+BWidth&&BallY==Bricks[i][1]+BHeight)
			 {

				  Bricks[i][0]=s;
				  Bricks[i][1]=s;
				  Bricks[i][2]=0;
				  Bricks[i][4]=0;
				  Bricks[i][3]=0;
				  if((Bricks[1][3]==0)&& bbool==false)
					 {
					  System.out.println("bomb");
					  bbool = true;
					 }
				  BdirectionY=false;
				  score+=10;
				  win+=1;

			 }

			 //code for ball hitting the brick from top
			 else if(BallX>=Bricks[i][0]&&BallX<=Bricks[i][0]+BWidth&&BallY+bsize==Bricks[i][1])
			 {
				 Bricks[i][0]=s;
				 			  Bricks[i][1]=s;
				 			  Bricks[i][2]=0;
				 			  Bricks[i][4]=0;
				 			  Bricks[i][3]=0;
				  BdirectionY=true;
				  score+=10;
				  win+=1;
			 }
			 //code for ball hitting the brick from left side.
	        else if((BallX+bsize==Bricks[i][0]&&BallY>=Bricks[i][1]&&BallY<=Bricks[i][1]+BHeight))
	        {
				Bricks[i][0]=s;
				Bricks[i][1]=s;
				Bricks[i][2]=0;
				Bricks[i][4]=0;
				Bricks[i][3]=0;
				BdirectionX=true;
				score+=10;
				win+=1;
			}
			//code for ballhitting the brick from right side
			else if((BallX==Bricks[i][0]+BWidth&&BallY>=Bricks[i][1]&&BallY<=Bricks[i][1]+BHeight))
			{
				Bricks[i][0]=s;
							Bricks[i][1]=s;
							Bricks[i][2]=0;
							Bricks[i][4]=0;
							Bricks[i][3]=0;
				BdirectionX=false;
				score+=10;
				win+=1;
			}

			}


			if(win==size)
			{
				index =4;
			}

		}



		void gameCode()
		{
			//code checking whether ball moving up or down
			if(BdirectionY)
			{
				BallY-=5;
				
	          if(BallY<(temp+5))		//up
			 {
	        	  System.out.println("up collision");
	        	 
	          BdirectionY=false;
			  }
			}
			else
			{
				if(Bheight>(screenHeight-50)&& bbool==true){
					System.out.println("bomb collision");
					bbool =false;
				}
	        
				BallY+=5;
	           if(BallY>(screenHeight-((temp/3)-12)))
			   {
	        	System.out.println("down collision");
	            BallY=BatY;
				BallX=BatX+35;
				  
				BdirectionY=true;
				startgame=false;
				life-=1;
				if(life==0)
				{
	
					index=2;
			    }
			    }
			}
	//code checking whether ball moving right ro left.
			if(BdirectionX)
			{

			  BallX-=5;
	          if(BallX<10)
			 {
	          BdirectionX=false;
			  }
			}
			else
			{

				BallX+=5;
	           if(BallX>(screenWidth-((temp/2)+10)))
			   {
	            BdirectionX=true;
			   }
			}

		}
	    void DBricks()
		{
			//System.out.println("Brick ");
		 int x=25;
		 int y=60;
			//setting the brick positons.
		 for(int i=0;i<size;i++)
	     {
				if(i==2)
				      {
						y=20;
						x=10;
					   }
				
				/*if(i==13)
			      {
					y-=temp;
					x=(BWidth*2);
				   }
				if(i==temp)
					{
				    y=180;
					x=80;
					}*/
				
//				if(i==12)
//			      {
//					y-=temp;
//					x=(BWidth*2);
//				   }
//				if(i==15)
//				   {
//					x=25+BWidth;
//					y=160;
//					}
//				if(i==temp)
//					{
//				    y=180;
//					x=80;
//					}

			    Bricks[i][0]=x;
				Bricks[i][1]=y;
				Bricks[i][2]=1;
				Bricks[i][3]=BWidth;
				Bricks[i][4]=BHeight;
				x+=BWidth;
			   
		}
/*
	//setting the brick positons.
		for(int i=0;i<size;i++)
	     {
				 if(i==7)
	     			{
					 y-=temp;
					 x=25+BWidth;
		     		}
				if(i==12)
			      {
					y-=temp;
					x=25+(BWidth*2);
				   }
				if(i==15)
				   {
					x=25+BWidth;
					y=160;
					}
				if(i==temp)
					{
				    y=180;
					x=80;
					}

		    Bricks[i][0]=x;
			Bricks[i][1]=y;
			Bricks[i][2]=1;
			Bricks[i][3]=BWidth;
			Bricks[i][4]=BHeight;
			x+=BWidth;
		   }*/
		}
void DrawBall(Graphics g)
{
	g.setColor(255,0,0);
	g.fillArc(BallX,BallY,bsize,bsize,0,360);
	
}
 void DBat(Graphics g)
   {
     g.setColor(0,0,255);
	 g.fillRect(BatX,BatY,BatW,10);
	
	}
	//bat movements towards right.
	void Rkeymove()
		{
			if(BatX<(getWidth()-((temp*3)+bsize)))
				BatX+=15;
		}
		//bat movements towards left.
	void Lkeymove()
		{
				if(BatX>(bsize)+5)
				BatX-=15;
		}
	void DrawBricks(Graphics g)
	{
		for(int i=0;i<size;i++)
	    {
        	if(Bricks[i][2]==1)
	        {
			  g.setColor(0,0,0);
			  g.fillRect(Bricks[i][0],Bricks[i][1],Bricks[i][3]-2,Bricks[i][4]-2);
			 }
          }
     }
	void gameOver(Graphics g)
	{
		// g.setColor(Color.red);
		 // g.fillRect(0,0,ScreenWidth,ScreenHeight);
	  g.setColor(0,0,255);
	  g.drawString("YOU LOSE",(screenWidth/3),screenHeight/2,Graphics.TOP | Graphics.HCENTER);
	}
	
	public void Ballmove(Graphics g)
	{
		
		
		DrawBall(g);
		DBat(g);
		DrawBricks(g);
		g.drawRect((temp/7),20,screenWidth-((temp/2)-5),screenHeight-((temp/3)));
		g.setColor(0x000000);
		g.setStrokeStyle(Graphics.SOLID);
		g.drawString("LIFE : "+life,screenWidth-10,3, (Graphics.TOP | Graphics.RIGHT));
		g.drawString("SCORE: "+score,screenWidth/2+(temp),3,Graphics.TOP | Graphics.HCENTER);
		g.drawString("press '8' to Pause",5,3,(Graphics.TOP | Graphics.LEFT));
		
		switch (index) {
		case 1:			// pause
			pauseGame(g);
			break;
		case 2:		// gameover
			 gameOver(g);
			 index = 2;
			break;
		case 3:			// palyAgian
			 playAgain(g);
			break;
		case 4:
			gameWin(g);
			break;
			
		}
		keyEvents();

	}
	//method to disply win screen
	void gameWin(Graphics g)
	{

	 g.setColor(0,0,255);
	 g.fillRect(0,0,screenWidth,screenHeight);
	 g.setColor(255,0,0);
	 g.drawString("YOU WIN",(screenWidth>>2),screenHeight>>2,Graphics.TOP | Graphics.HCENTER);

	}
	void pauseGame(Graphics g)
	{
	  g.setColor(255,255,255);
	  g.fillRect(0,0,screenWidth,screenHeight);
		
	  g.setColor(255,0,0);
	  g.setStrokeStyle(Graphics.SOLID);
	  g.drawString("GamePaused Press '8' to Resume", 40, screenHeight>>1, Graphics.TOP | Graphics.LEFT);
//	  g.drawString("GamePaused Press 'P' to Resume",(temp+3),ScreenHeight/2);
	}
	//method to display play again screen.
	void playAgain(Graphics g)
	{
	//	g.setColor(Color.pink);
	//		   g.fillRect(0,0,ScreenWidth,ScreenHeight);
			   g.setColor(255,0,0);
       g.drawString("Press S PalyAgain",(screenWidth>>1),screenHeight>>1,(Graphics.TOP | Graphics.HCENTER));
}
	/**
	 * Gives the key being pressed. call-back method in Canvas
	 */
	public void keyPressed(int key)
	{
	
		switch(key)
		{
		case 48:
//			reverse = !reverse;
			break;
		case -1:
				keyPress |= 1;
				startgame = true;
			break;
		case -2:
				keyPress |= 2;
				 pause=!pause;
			       if(pause)
			    	  index=1;
                 else
                	 index=0;
			break;
		case -3:
				keyPress |= 4;
				
			break;
		case -4:
				keyPress |= 8;
				
			break;
		case 52:
			 if(index==3)
			 {
			   life=3;
			   score=0;
			   DBricks();
			   index=0;
		    }
		}
		
	}
	public void keyRepeated(int key)
	{
		switch(key)
		{
		case -1:
			
			
			break;
		case -2:
			
			break;
		case -3:
			System.out.println("1111111111");
			Lkeymove();
			break;
		case -4:
			
			Rkeymove();
			break;
		}
		
	}
	/**
	 * Gives the key being Released. call-back method in Canvas
	 */
	public void keyReleased(int key)
	{
//		System.out.println(key);
		switch(key)
		{
		case -1:
			keyPress ^= 1;
			
			break;
		case -2:
			keyPress ^= 2;
			
			break;
		case -3:
			keyPress ^= 4;
			
			break;
		case -4:
			keyPress ^= 8;
			break;
		}
	}

	
	/**
	 * controls the snake movements.
	 */
	public void keyEvents()
	{
		
	}
}
Posted
Updated 15-Jan-12 22:03pm
v4
Comments
Sergey Alexandrovich Kryukov 15-Jan-12 22:18pm    
Help with what. Viewing your sheer code dump? It makes no sense. You did not even formulate a problem. How can you expect any help?
--SA
Prasad_Kulkarni 15-Jan-12 23:18pm    
what is this????
wizardzz 15-Jan-12 23:55pm    
???
TorstenH. 16-Jan-12 3:26am    
It's a dump with primitive values, no objects (clever in a OOP!) and some snake.

My advice: make a code review and create some structure.
Smithers-Jones 16-Jan-12 7:29am    
Codedump, no question -> reported and downvoted.

1 solution

Useful for what?

You don't tell us what it should do, you don't comment it, you don't ask any specific question about it.
You don't bother to be consistent in your indentation, or to remove redundant, commented out code.
You don't say if it works, or if it doesn't what does and doesn't work.
You don't even tell us how we should play the game if we actually wanted to.

So, the answer has be be: No. It's not useful.
 
Share this answer
 
Comments
Ashish Tyagi 40 16-Jan-12 11:42am    
This is the one-and-only-one correct answer, my 5.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900