| Please helpme with angles and make the bricks work 
 
	 
	
		| Author | Message |   
		| Codi 
 
 
 
 
 | 
			
				|  Posted: Tue May 09, 2006 8:37 am    Post subject: Please helpme with angles and make the bricks work |  |   
				| 
 |  
				| %paddle global vaariables var pwidth : int := 75 % paddle width
 var plen : int := 20 %paddle length
 var pclr : int := brightgreen   % paddle color
 var pxpos : int := maxx div 2 % the paddle starts in the middle of the screen
 var pypos : int := 50 % the paddle is 50 high of of the ground
 %ball variables
 var count : int := 0
 const right := 2
 const left := -2
 var bxpos, bxpostest : int := maxx div 2
 var bypos, bypostest : int := maxy div 2
 var bsize := 10
 var bclr := yellow
 var direction : int := left
 var angle : real := 315
 var hitBrick : boolean := false
 var counter : int :=0
 var lives : int := 3
 
 proc Bricks
 for x : 0 .. maxx by 50
 for y : 250 .. maxy - 40 by 20
 Draw.FillBox (x, y, x + 45, y + 15, black)
 end for
 end for
 end Bricks
 
 proc menu
 var start : string
 
 put " Would You Like to Play X-Treme Brick?"
 put "      Press Y For Yes And N for No"
 get start
 if start = "N" or start = "n" then
 locate (25,24)
 put "                             Poo Head!"
 delay (2000)
 quit
 end if
 cls
 end menu
 menu
 Draw.Line (0, maxy - 40, maxx, maxy - 40, black)
 Bricks
 proc Lives
 
 Draw.FillOval (10, maxy - 20, 5, 5, black)
 Draw.FillOval (30, maxy - 20, 5, 5, black)
 Draw.FillOval (50, maxy - 20, 5, 5, black)
 end Lives
 Lives
 % paddle proc
 proc drawpaddle
 Draw.FillBox (pxpos, pypos, pxpos + pwidth, pypos + plen, pclr)
 end drawpaddle
 
 
 proc death
 lives := lives - 1
 locate (20, 20)
 put " YoU DieS "
 delay (500)
 cls
 Bricks
 Lives
 if lives = 2 then
 Draw.FillOval (10, maxy - 20, 5, 5, black)
 Draw.FillOval (30, maxy - 20, 5, 5, black)
 Draw.FillOval (50, maxy - 20, 5, 5, white)
 Draw.Line (0, maxy - 40, maxx, maxy - 40, black)
 
 elsif lives = 1 then
 Draw.FillOval (10, maxy - 20, 5, 5, black)
 Draw.FillOval (30, maxy - 20, 5, 5, white)
 Draw.FillOval (50, maxy - 20, 5, 5, white)
 Draw.Line (0, maxy - 40, maxx, maxy - 40, black)
 
 elsif lives = 0 then
 Draw.FillOval (10, maxy - 20, 5, 5, white)
 Draw.FillOval (30, maxy - 20, 5, 5, white)
 Draw.FillOval (50, maxy - 20, 5, 5, white)
 Draw.Line (0, maxy - 40, maxx, maxy - 40, black)
 
 
 end if
 bxpos := maxx div 2
 bypos := maxy div 2
 if lives = 0 then
 locate (20, 20)
 put " You have No Lives Left
  Play Again:)" delay (1000)
 cls
 Bricks
 end if
 end death
 
 proc pmove (ch : string (1))
 if ord (ch) = 203 then % move the paddle left
 Draw.FillBox (pxpos + pwidth - 10, pypos, pxpos + pwidth, pypos + plen, white) % erase the right end of the paddle
 pxpos := pxpos - 10 % move to the left
 if pxpos < 0 then %redraws the paddle in new position
 pxpos := 0 % the paddle can't go outside of the screen boundaries on the right
 end if
 end if
 if ord (ch) = 205 then % paddle moves to the right
 Draw.FillBox (pxpos, pypos, pxpos + 10, pypos + plen, white) % erase the left end of the paddle
 pxpos := pxpos + 10 % redraws the paddle in new position
 if pxpos > maxx - pwidth then
 pxpos := maxx - pwidth % the paddle can't go outside of the screen boundaries on the left
 end if
 end if
 drawpaddle % procedure
 end pmove
 
 %bouncing off a horizontal surface
 proc angleMod1 %for hitting bricks paddle or roof
 angle := 360 - angle
 end angleMod1
 
 %bouncing off a vertical surface
 proc angleMod2
 if angle <= 180 then
 angle := 180 - angle
 elsif angle <= 360 then
 angle := 180
 elsif angle = 225 then
 angle := 315
 elsif angle = 315 then
 angle := 225
 end if
 end angleMod2
 
 proc bmove
 %change 125 to change speed of ball
 %move the ball
 Draw.FillOval (bxpos, bypos, bsize, bsize, white)        %erase ball
 bxpos := bxpos + round (cosd (angle))        %new position
 bypos := bypos + round (sind (angle))
 bxpostest := bxpos + round (10 * cosd (angle))
 bypostest := bypos + round (10 * sind (angle))
 if bxpostest > 0 and bxpostest < maxx and bypostest > 0 and bypostest < maxy then
 if View.WhatDotColour (bxpostest, bypostest) not= white then        %hit paddle
 
 angleMod1        %bounce
 end if
 end if
 Draw.FillOval (bxpos, bypos, bsize, bsize, bclr)%redraw
 if bxpos > maxx or bxpos < 0 then
 angleMod2        %vertical bounce
 if ( angle < 0) or( angle> 270 and angle> 360) then
 angleMod2
 end if
 if angle = 170 or angle = 180 then
 angle:= 315+
 
 
 end if
 if bypos > maxy then
 angleMod1        %horizontal bounce
 end if
 if bypos <= 0 then
 death
 end if
 end if
 put "You are travaling at a " ,angle, " degree angle"
 end bmove
 
 var ch : string (1) := " "
 var x, y : int
 %mainline
 loop
 locate (1,30)
 
 if hasch then
 getch (ch)
 if ord (ch) = 203 or ord (ch) = 205 then %left/right
 pmove (ch)
 end if
 else
 ch := " "
 end if
 counter := counter + 1
 drawpaddle
 if counter = 50 then
 bmove
 counter := 0
 
 end if
 
 
 end loop
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Sponsor Sponsor
 
  
   |  |   
		|  |   
		| jamonathin 
 
  
 
 
 | 
			
				|  Posted: Tue May 09, 2006 9:40 am    Post subject: (No subject) |  |   
				| 
 |  
				| Well, you're batting 1000.  Wrong forum and no code tags.  Post something like this in Turing Help.  Also, i personally dont even want to touch this code.   
 There are tonnes of blockout games on this forum, so if you search for one, im shure you can find one that helps you.
 
 You can learn a lot from this im shure.
 
 P.S.  When asking for help, be more specific on what you need help on.  So the title of your topic doesn't have to be your question exactly.
 
 Your title could have been something like: Brickout Trouble
 
 And your comment inside the topic could have been a little more specific.  Because "make bricks work" means nothing, lol.
  |  
				|  |  |   
		|  |  |  
	  
		|  |   
		|  |  
 |