TGC Codebase Backup



AR MAZE GAME by Anthony Brian Cox

26th Apr 2019 20:25
Summary

AR TEST THIS IS UNFINSIED



Description

I COOL IT KPAC AR MAZE GAME PLEASE ENJOY SOON I WILL POST IN GOOGLE THIS IS UNFINISHED WORK BUT HOPE YOU CAN LEARN SOMETHING FROM IT MAYBE



Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    // set window properties
SetWindowTitle( "AR kpac" )
SetWindowSize( 1024, 768, 0 )

// set display properties
SetVirtualResolution( 1024, 768 )
SetOrientationAllowed( 1, 1, 1, 1 )
SetScissor(0,0,0,0)
SetClearColor( 101,120,154 )
SetGenerateMipmaps( 1 )
UseNewDefaultFonts(1)
SetPrintSize(40)

permission$ = "WriteExternal"
if ( CheckPermission( permission$ ) <= 0 )
        RequestPermission( permission$ )
        while( CheckPermission( permission$ ) = 1 )
                Sync()
        endwhile
endif

permission$ = "Camera"


if ( CheckPermission( permission$ ) <= 0 )
        RequestPermission( permission$ )
        while( CheckPermission( permission$ ) = 1 )
                Sync()
        endwhile
endif


// camera range from 0.1 meters to 40 meters
SetCameraRange( 1, 0.1, 100 )
SetAmbientColor( 128,128,128 )
SetSunColor( 255,255,255 )

global test
dim bricks[1000]
dim x_pos[1000] as float
dim y_pos[1000] as float	
dim z_pos[1000] as float
dim drones[1000]
dim drone_time[1000]
dim drone_move[1000]
dim drone_turn[100,100]
dim drone_maker[100,100]
dim drone_test_under[1000]
dim rings[1000] 
dim drone_skin[1000]



global music
global me
global keep
global brick
global pivot
global test_front
global test_under
global jump
global Move
global move_time#
global arrow
global rings_amount
global drone_amount
global pick_up
move_time#=0
global ball
global dropping=0



 for i = 101 to 150
	CreateObjectPlane( i, 1,1 )
	SetObjectCollisionMode(i,0)
	SetObjectRotation( i, 90,0,0 )
	FixObjectPivot( i )
	SetObjectVisible( i, 0 )
	SetObjectColor( i, 255,255,255,128 ) // 50% transparent
	SetObjectTransparency( i, 1 )
next i

 
AddVirtualButton(90,100,300,200)
AddVirtualButton(91,300,300,200)
AddVirtualButton(92,100,500,200)
AddVirtualButton(93,300,500,200)
AddVirtualButton(94,100,100,200)
AddVirtualButton(95,300,100,200)
AddVirtualButton(96,100,700,200)
AddVirtualButton(97,300,700,200)
AddVirtualButton(98,1024-200,500,200)
AddVirtualButton(99,1024-200,700,200)
setVirtualButtontext(90,"rotate x+")
setVirtualButtontext(91,"rotate x-")
setVirtualButtontext(92,"rotate z+")
setVirtualButtontext(93,"rotate z-")
setVirtualButtontext(94,"rotate y+")
setVirtualButtontext(95,"rotate y-")
setVirtualButtontext(96,"turn left")
setVirtualButtontext(97,"turn right")
setVirtualButtontext(98,"jump")
setVirtualButtontext(99,"move")


SetCameraRotation(1,0,0,0)
setcameraposition(1,0,1,-4)
 

AddVirtualButton( 1, 100,465,200 )
AddVirtualButton( 2, 100,665,200 )
SetVirtualButtonText( 1, "level +" )
SetVirtualButtonText( 2, "level -" )
AddVirtualButton( 4, 924,665,200 )
SetVirtualButtonText( 4, "Hide" )
AddVirtualButton( 5, 305,465,200 )
AddVirtualButton( 6, 305,665,200 )
SetVirtualButtonText( 5, "Light +" )
SetVirtualButtonText( 6, "Light -" )
AddVirtualButton( 9, 300,70,200 )
SetVirtualButtonText( 9, "zoom -" )
AddVirtualButton( 10, 100,70,200 )
SetVirtualButtonText( 10, "zoom +" )
AddVirtualButton( 11, 1024/2,10,200 )
SetVirtualButtonText( 11, "menu" )


function ShowHUD( show as integer,show2 as integer )
	SetVirtualButtonVisible( 1, show )
	SetVirtualButtonVisible( 2, show )
	SetVirtualButtonVisible( 4, show )
	SetVirtualButtonVisible( 5, show )
	SetVirtualButtonVisible( 6, show )
	SetVirtualButtonVisible( 9, show )
	SetVirtualButtonVisible( 10, show )
	SetVirtualButtonVisible( 11, show2 )
	SetVirtualButtonVisible( 90, show2 )
	SetVirtualButtonVisible( 91, show2 )
	SetVirtualButtonVisible( 92, show2 )
	SetVirtualButtonVisible( 93, show2 )
	SetVirtualButtonVisible( 94, show2 )
	SetVirtualButtonVisible( 95, show2 )
	SetVirtualButtonVisible( 96, show2 )
	SetVirtualButtonVisible( 97, show2 )
	SetVirtualButtonVisible( 98, show2 )
	SetVirtualButtonVisible( 99, show2 )
	
	SetVirtualButtonActive( 1, show )
	SetVirtualButtonActive( 2, show )
	SetVirtualButtonActive( 4, show )
	SetVirtualButtonActive( 5, show )
	SetVirtualButtonActive( 6, show )
	SetVirtualButtonActive( 9, show )
	SetVirtualButtonActive( 10, show )
	SetVirtualButtonActive( 11, show2 )
	
	
	SetVirtualButtonActive( 90, show2 )
	SetVirtualButtonActive( 91, show2 )
	SetVirtualButtonActive( 92, show2 )
	SetVirtualButtonActive( 93, show2 )
	SetVirtualButtonActive( 94, show2 )
	SetVirtualButtonActive( 95, show2 )
	SetVirtualButtonActive( 96, show2 )
	SetVirtualButtonActive( 97, show2 )
	SetVirtualButtonActive( 98, show2 )
	SetVirtualButtonActive( 99, show2 )
	
	
	
endfunction

// initialize AR, if possible
ARSetup()
while( ARGetStatus() = 1 )
	// wait while user is being prompted to install ARCore
	Sync()
endwhile

AnchorID as integer = 0
ShowPlanes as integer = 1
ambientScale# = 1.0

ShowHUD( 1,0 )

SetCameraRotation(1,0,0,0)
setcameraposition(1,0,0.3,-2)
global lev=1
global play_game=0
level1()
global object_hit11

do
	// get light estimation
			ambient = ARGetLightEstimate() * 255 * ambientScale#
			SetAmbientColor( ambient,ambient,ambient )
				if ( GetPointerReleased() and ShowPlanes = 1 )
		
				numHits = ARHitTest( GetPointerX(), GetPointerY() )
			if ( numHits > 0 )
				if ( AnchorID > 0 ) then ARDeleteAnchor( AnchorID )
				 AnchorID = ARCreateAnchorFromHitTest( 1 )
			
			
		keep=AnchorID
		ARFixObjectToAnchor( pivot, AnchorID)
		

		else
			// if the user didn't tap on any planes then hide the object
			
		endif
		// clean up some internal resources
		ARHitTestFinish()
	endif
	
	// place the buttons at the edge of the screen
	// needs to be done regularly in case orientation changes
	SetVirtualButtonPosition( 1, GetScreenBoundsLeft()+105, GetScreenBoundsBottom()-310 )
	SetVirtualButtonPosition( 2, GetScreenBoundsLeft()+105, GetScreenBoundsBottom()-105 )
	SetVirtualButtonPosition( 4, GetScreenBoundsRight()-105, GetScreenBoundsBottom()-105 )
	SetVirtualButtonPosition( 5, GetScreenBoundsLeft()+310, GetScreenBoundsBottom()-310 )
	SetVirtualButtonPosition( 6, GetScreenBoundsLeft()+310, GetScreenBoundsBottom()-105 )
	
	// detect button presses if they are visible
	if ( ShowPlanes = 1 )
		if ( GetVirtualButtonPressed(1) )
			if lev<10 
			for t=1 to 1000
			if GetObjectExists(bricks[t]):deleteobject(bricks[t]) : endif
			if GetObjectExists( rings[t] )=1:deleteobject( rings[t] ) : endif
			if GetObjectExists( drones[t])=1:deleteobject( drones[t]) : endif
			
			if GetObjectExists( drone_test_under[t])=1:deleteobject( drone_test_under[t]) : endif
			x_pos[t] =0
			y_pos[t] =0	
			z_pos[t] =0
			drone_time[t]=0
			drone_move[t]=0
			
			next

			for t=1 to 100
				for q=1 to 100
				drone_turn[t,q]=0
				drone_maker[t,q]=0
				next
			next

						if  GetObjectExists(me)=1:deleteobject(me):endif
						if	GetObjectExists( pivot)=1:deleteobject(pivot):endif
						if	GetObjectExists( test_front)=1:deleteobject(test_front):endif
						if	GetObjectExists( test_under)=1:deleteobject(test_under):endif
						if	GetObjectExists( ball)=1:deleteobject(ball):endif
						if	GetObjectExists( arrow)=1:deleteobject(arrow):endif
		
			win=0
			brick=0
			jump=0
			Move=0
			move_time#=0
			lev=lev+1
			IF lev=11 then lev=1
			select lev
				case 1:level1():endcase
				case 2:level2():endcase
				case 3:level3():endcase
				case 4:level4():endcase
				case 5:level5():endcase
				case 6:level6():endcase
				case 7:level7():endcase					
			    case 8:level8():endcase
				case 9:level9():endcase
				case 10:level10():endcase		
			endselect
			
		ARFixObjectToAnchor( pivot, keep)
			endif
			
	
			
		endif

if ( GetVirtualButtonPressed(2) )
	if lev>1
					for t=1 to 1000
			if GetObjectExists(bricks[t]):deleteobject(bricks[t]) : endif
			if GetObjectExists( rings[t] )=1:deleteobject( rings[t] ) : endif
			if GetObjectExists( drones[t])=1:deleteobject( drones[t]) : endif
			
			if GetObjectExists( drone_test_under[t])=1:deleteobject( drone_test_under[t]) : endif
			x_pos[t] =0
			y_pos[t] =0	
			z_pos[t] =0
			drone_time[t]=0
			drone_move[t]=0

			
			next

			for t=1 to 100
				for q=1 to 100
				drone_turn[t,q]=0
				drone_maker[t,q]=0

				next
					next

			
			
	if  GetObjectExists(me)=1:deleteobject(me):endif
	if	GetObjectExists( pivot)=1:deleteobject(pivot):endif
	if	GetObjectExists( test_front)=1:deleteobject(test_front):endif
	if	GetObjectExists( test_under)=1:deleteobject(test_under):endif
	if	GetObjectExists( ball)=1:deleteobject(ball):endif
	if	GetObjectExists( arrow)=1:deleteobject(arrow):endif
			brick=0
			jump=0
			Move=0
			move_time#=0
			lev=lev-1
			win=0
			select lev
				case 1:level1():endcase
				case 2:level2():endcase
				case 3:level3():endcase
				case 4:level4():endcase
				case 5:level5():endcase
				case 6:level6():endcase
				case 7:level7():endcase					
			    case 8:level8():endcase
				case 9:level9():endcase
				case 10:level10():endcase		
			endselect
			
		ARFixObjectToAnchor( pivot, keep)

	endif
			
			
			
endif
			if ( GetVirtualButtonPressed(9) )
					MoveObjectLocalZ(pivot,-0.08)
					endif
					
			if ( GetVirtualButtonPressed(10) )
					MoveObjectLocalZ(pivot,0.08)
					endif
			
		
		

		if ( GetVirtualButtonReleased(4)=1 and play_game=0)
			ShowPlanes = 1 - ShowPlanes
			ShowHUD( 0,1 )
			play_game=1
		endif
		if ( GetVirtualButtonPressed(5) )
			inc ambientScale#, 0.1
		endif
		if ( GetVirtualButtonPressed(6) )
			dec ambientScale#, 0.1
		endif
	else
		

		if ( GetVirtualButtonReleased(11)=1 and play_game=1 )
			ShowPlanes = 1 - ShowPlanes
			ShowHUD( 1,0 )
			play_game=0
		endif
	endif
	

    for i = 101 to 150
		SetObjectVisible( i, 0 )
	next i
	
	// show detected planes
	if ( ShowPlanes )
		numPlanes = ARGetPlanes(0)
		// this demo stops at 50 planes, but there is no internal limit
		if numPlanes > 50 then numPlanes = 50
		for i = 1 to numPlanes
			SetObjectPosition( i+100, ARGetPlaneX(i), ARGetPlaneY(i), ARGetPlaneZ(i) )
			SetObjectRotation( i+100, ARGetPlaneAngleX(i), ARGetPlaneAngleY(i), ARGetPlaneAngleZ(i) )
			SetObjectScale( i+100, ARGetPlaneSizeX(i), 1, ARGetPlaneSizeZ(i) )
			
			SetObjectVisible( i+100, 1 )
		next i
		ARGetPlanesFinish()
	endif
	
	
	
      ////*********************************************************************************************************************************************************
      ////*********************************************************************************************************************************************************
      ////*********************************************************************************************************************************************************
      ////*********************************************************************************************************************************************************
      ////*********************************************************************************************************************************************************
      ////*********************************************************************************************************************************************************
      ////*********************************************************************************************************************************************************
      ////*********************************************************************************************************************************************************
      ////*********************************************************************************************************************************************************
				
				ARDrawBackground() 
				
				
				if play_game=1

				game_on()
				endif
			
				
    Sync()
loop

function game_on()
	
	
   if GetVirtualButtonState(98)=1 and move_time#=0 and move=0
	   move_time#=10
	   jump=1
	   endif
	   
	if jump=0
		
		if move=0 and GetVirtualButtonState(99)=1   and move_time#=0
			move=1
			move_time#=10
			endif
		
		if move_time#>0 and move=1
			move_time#=move_time#-1
			MoveObjectLocalZ(me,0.008)
			RotateObjectLocalX(ball,9)
			
		if move_time#=0
				move=0
				endif
				endif

		if move=0 and GetVirtualButtonState(97)=1  and move_time#=0
			move_time#=10
			move=10
			endif
	
		if move=0 and GetVirtualButtonState(96)=1  and move_time#=0
			move_time#=10
			move=11
			endif	
			
			
			if (move=10)
				move_time#=move_time#-1
				if move_time#=0:move=0:endif
				RotateObjectLocalY(me,9)
			endif
			
			if (move=11)
				move_time#=move_time#-1
				if move_time#=0:move=0:endif
				RotateObjectLocalY(me,-9)
			endif
			
			
			
			if (move=5)
				move_time#=move_time#-1
				if move_time#=0
					move=6
					move_time#=10
					endif
					
				RotateObjectLocalx(me,9)
			endif
			
			if (move=6)
				move_time#=move_time#-1
				if move_time#=0
					move=0
					endif
				MoveObjectLocalZ(me,0.008)
			endif
					
			
			
			
			if move=0
				x#=GetObjectWorldX(me)
				y#=GetObjectWorldy(me)
				z#=GetObjectWorldz(me)
				
				x1#=GetObjectWorldX(test_under)
				y1#=GetObjectWorldy(test_under)
				z1#=GetObjectWorldz(test_under)
				
				
				
				object_hit1=ObjectRayCast(0,x#,y#,z#,x1#,y1#,z1#)
				
				
				hit_front=0
				hit_under=0
				
				for t=1 to brick
					if object_hit1=bricks[t] then hit_under=t
					next
				
				
				if hit_front>0 and move_time#=0 and move=0
					RotateobjectLocalX(me,-90)
					endif
					
				
					if hit_under=0 and move_time#=0 and move=0
						
						move_time#=10
						move=5
					endif
					endif

						x2#=GetObjectWorldX(test_front)
						y2#=GetObjectWorldy(test_front)
						z2#=GetObjectWorldz(test_front)
						object_hit2=ObjectRayCast(0,x#,y#,z#,x2#,y2#,z2#)
					
					for t=1 to brick
						if object_hit2=bricks[t] then hit_front=t
						next
					
					if hit_front>0 and move_time#=0 and move=0 
						RotateobjectLocalX(me,-90)
						endif	
					
					
					
	endif
	
	
				for p=1 to rings_amount
					
					if GetObjectExists(rings[p])=1
						
							x#=GetObjectWorldX(me)
							y#=GetObjectWorldy(me)
							z#=GetObjectWorldz(me)
						
							x1#=GetObjectWorldX(rings[p])
							y1#=GetObjectWorldy(rings[p])
							z1#=GetObjectWorldz(rings[p])
						
					
					if x#>x1#-0.04 and x#<x1#+0.04
					if y#>y1#-0.04 and y#<y1#+0.04
					if z#>z1#-0.04 and z#<z1#+0.04	
						
						if GetObjectVisible(rings[p])=1
							
						setObjectVisible(rings[p],0)
						pick_up=pick_up+1
						endif
						
					
					endif
					endif
					endif
					
					
					RotateObjectLocalY(rings[p],1)
					endif

					next
	
	
				move_drones()
	
				if GetVirtualButtonState(90)=1 :RotateObjectLocalx(pivot,1):endif
				if GetVirtualButtonState(91)=1 :RotateObjectLocalx(pivot,-1):endif
				if GetVirtualButtonState(92)=1 :RotateObjectLocalz(pivot,1):endif
				if GetVirtualButtonState(93)=1 :RotateObjectLocalz(pivot,-1):endif
				if GetVirtualButtonState(94)=1 :RotateObjectLocaly(pivot,1):endif
				if GetVirtualButtonState(95)=1 :RotateObjectLocaly(pivot,-1):endif
				
				if jump=1
				Jump1()
				endif
				if jump=2
				drop()
				endif
				
				print (hit_under)
				print (hit_front)
				print (brick)
				print(pick_up)
				
	if pick_up=rings_amount
		
			if hit_under =101 and lev=1 :win=1:	endif
			if hit_under =77  and lev=2   :win=1: endif
			if hit_under =97  and lev=3   :win=1: endif
			if hit_under =149 and lev=4   :win=1: endif
			if hit_under =101 and lev=5   :win=1: endif	
			if hit_under =101 and lev=6   :win=1: endif	
			if hit_under =95  and lev=7   :win=1: endif	
			if hit_under =146 and lev=8   :win=1: endif
			if hit_under =135 and lev=9   :win=1: endif
			if hit_under =185 and lev=10  :win=1: endif				
	endif
	
			if win=1
				
				if lev<10
			for t=1 to 1000
			if GetObjectExists(bricks[t]):deleteobject(bricks[t]) : endif
			if GetObjectExists( rings[t] )=1:deleteobject( rings[t] ) : endif
			if GetObjectExists( drones[t])=1:deleteobject( drones[t]) : endif
			
			if GetObjectExists( drone_test_under[t])=1:deleteobject( drone_test_under[t]) : endif
			x_pos[t] =0
			y_pos[t] =0	
			z_pos[t] =0
			drone_time[t]=0
			drone_move[t]=0
			
			next

			for t=1 to 100
				for q=1 to 100
				drone_turn[t,q]=0
				drone_maker[t,q]=0
				next
			next

			
			
						if  GetObjectExists(me)=1:deleteobject(me):endif
						if	GetObjectExists( pivot)=1:deleteobject(pivot):endif
						if	GetObjectExists( test_front)=1:deleteobject(test_front):endif
						if	GetObjectExists( test_under)=1:deleteobject(test_under):endif
						if	GetObjectExists( ball)=1:deleteobject(ball):endif
						if	GetObjectExists( arrow)=1:deleteobject(arrow):endif
		
			win=0
			brick=0
			jump=0
			Move=0
			move_time#=0
			lev=lev+1
			select lev
				case 1:level1():endcase
				case 2:level2():endcase
				case 3:level3():endcase
				case 4:level4():endcase
				case 5:level5():endcase
				case 6:level6():endcase
				case 7:level7():endcase					
			    case 8:level8():endcase
				case 9:level9():endcase
				case 10:level10():endcase		
			endselect
			
		ARFixObjectToAnchor( pivot, keep)
		
	
		
		
		
			endif
			
				endif
	
endfunction

function move_drones()
	for q=1 to drone_amount
		
if GetObjectExists(drones[q])=1
	MoveObjectLocalZ(drones[q],0.008)
	RotateObjectLocalX(drone_skin[q],9)
				x#=GetObjectWorldX(me)
				y#=GetObjectWorldy(me)
				z#=GetObjectWorldz(me)
				x1#=GetObjectWorldX(drones[q])
				y1#=GetObjectWorldy(drones[q])
				z1#=GetObjectWorldz(drones[q])
					if x#>x1#-0.04 and x#<x1#+0.04
					if y#>y1#-0.04 and y#<y1#+0.04
					if z#>z1#-0.04 and z#<z1#+0.04	
						reset_me()
						endif
						endif
						endif

	drone_time[q]=drone_time[q]+1
	if drone_time[q]=10
		drone_time[q]=0
		
		
		
				x#=GetObjectWorldX(drones[q])
				y#=GetObjectWorldy(drones[q])
				z#=GetObjectWorldz(drones[q])

				x1#=GetObjectWorldX(drone_test_under[q])
				y1#=GetObjectWorldy(drone_test_under[q])
				z1#=GetObjectWorldz(drone_test_under[q])
				
				object_hit11=ObjectRayCast(0,x#,y#,z#,x1#,y1#,z1#)
					
					
					
					if object_hit11=bricks[drone_maker[q,drone_move[q]]]
						
						select  drone_turn[q,drone_move[q]]
						case 1:	RotateObjectLocalX(drones[q],-90): drone_move[q]=drone_move[q]+1 : endcase
						case 2:	RotateObjectLocalY(drones[q],-90): drone_move[q]=drone_move[q]+1 : endcase	
						case 3:	RotateObjectLocaly(drones[q],90) : drone_move[q]=drone_move[q]+1 : endcase	
						case 4:	RotateObjectLocalx(drones[Q],90) : drone_move[Q]=drone_move[Q]+1:endcase	
						case 5:	RotateObjectLocalY(drones[Q	],180) : drone_move[Q]=drone_move[Q]+1:endcase
						endselect
							
							if lev=1
								if drone_move[1]=7 then drone_move[1]=1
								if drone_move[2]=5 then drone_move[2]=1
								if drone_move[3]=7 then drone_move[3]=1
								endif
							if lev=2
								if drone_move[1]=5 then drone_move[1]=1
								if drone_move[2]=5 then drone_move[2]=1
								if drone_move[3]=5 then drone_move[3]=1
								endif
							
							if lev=3
								if drone_move[1]=5 then drone_move[1]=1
								if drone_move[2]=5 then drone_move[2]=1
								if drone_move[3]=5 then drone_move[3]=1
								if drone_move[4]=5 then drone_move[4]=1
								endif
							if lev=4
								if drone_move[1]=5 then drone_move[1]=1
								if drone_move[2]=5 then drone_move[2]=1
								if drone_move[3]=5 then drone_move[3]=1
								if drone_move[4]=5 then drone_move[4]=1
								if drone_move[5]=5 then drone_move[5]=1
								endif	
							if lev=5
								if drone_move[1]=5 then drone_move[1]=1
								if drone_move[2]=5 then drone_move[2]=1
								if drone_move[3]=5 then drone_move[3]=1
								if drone_move[4]=5 then drone_move[4]=1
								
								
								endif	
								
								
							if lev=6
								if drone_move[1]=5 then drone_move[1]=1
								if drone_move[2]=5 then drone_move[2]=1
								if drone_move[3]=5 then drone_move[3]=1
								if drone_move[4]=5 then drone_move[4]=1
								
								endif
								
								
									
							if lev=7
								if drone_move[1]=7 then drone_move[1]=1
								if drone_move[2]=7 then drone_move[2]=1
								if drone_move[3]=5 then drone_move[3]=1
								endif
								
							if lev=8
								if drone_move[1]=5 then drone_move[1]=1
								if drone_move[2]=5 then drone_move[2]=1
								if drone_move[3]=5 then drone_move[3]=1
								if drone_move[4]=5 then drone_move[4]=1
								if drone_move[5]=5 then drone_move[5]=1
								if drone_move[6]=5 then drone_move[6]=1
								endif	
								
								
							if lev=9
								if drone_move[1]=5 then drone_move[1]=1
								if drone_move[2]=7 then drone_move[2]=1
								if drone_move[3]=7 then drone_move[3]=1
								if drone_move[4]=5 then drone_move[4]=1
								
								endif	
								
								
							if lev=10
								if drone_move[1]=11 then drone_move[1]=1
								if drone_move[2]=11 then drone_move[2]=1
								if drone_move[3]=11 then drone_move[3]=1
								if drone_move[4]=11 then drone_move[4]=1
								if drone_move[5]=11 then drone_move[5]=1
								if drone_move[6]=11 then drone_move[6]=1
								if drone_move[7]=11 then drone_move[7]=1
								if drone_move[8]=11 then drone_move[8]=1
								endif	
						endif
					
	
		endif
	endif
next

endfunction

function Jump1()
	
	move_time#=move_time#-1
	if move_time#>0
	MoveObjectLocalz(me,0.02)
	MoveObjectLocaly(me,0.05)
	endif
	
	x#=GetObjectWorldX(me)
	y#=GetObjectWorldy(me)
	z#=GetObjectWorldz(me)
			
	x1#=GetObjectWorldX(test_front)
	y1#=GetObjectWorldy(test_front)
	z1#=GetObjectWorldz(test_front)
			
	object_hit2=ObjectRayCast(0,x#,y#,z#,x1#,y1#,z1#)
	if object_hit2<>0:MoveObjectLocalz(me,-0.02):endif
	
	if move_time#=0 
		 jump=2
		 move_time#=10
		 endif
	endfunction

function reset_me()
	 FixObjectToObject(me,0)
	    setobjectposition(me,0,0,0)
	    setobjectrotation(me,0,0,0)
	    
	    
	    select lev
	    case 1
			FixObjectToObject(me,bricks[99])
			MoveObjectLocalY(me,0.08)
			endcase
			
		case 2
			FixObjectToObject(me,bricks[75])
			MoveObjectLocalY(me,0.08)
			endcase	


		case 3
			FixObjectToObject(me,bricks[102])
			MoveObjectLocalY(me,0.08)
			endcase


		case 4
			FixObjectToObject(me,bricks[145])
			MoveObjectLocalY(me,0.08)
			endcase

		case 5
			FixObjectToObject(me,bricks[97])
			MoveObjectLocalY(me,0.08)
			endcase
			
		case 6
			FixObjectToObject(me,bricks[97])
			MoveObjectLocalY(me,0.08)
			endcase	

		case 7
			FixObjectToObject(me,bricks[93])
			MoveObjectLocalY(me,0.08)
			RotateObjectLocalY(me,180)
			endcase
		case 8
			FixObjectToObject(me,bricks[148])
			MoveObjectLocalY(me,0.08)
			RotateObjectLocalY(me,180)
			endcase		
			
		endselect
			
	
				
	    
	    dropping=0
	    jump=0
		move_time#=0
		move=0
		endfunction
		
function drop()
	
	MoveObjectLocaly(me,-0.04)
   dropping=dropping+1
   if dropping=100
	   reset_me()
	endif
	   
	   
				for t=1 to brick
				 if jump>0
					x#=GetObjectWorldX(test_under)
					y#=GetObjectWorldy(test_under)
					z#=GetObjectWorldz(test_under)
				x1#=GetObjectWorldX(bricks[t])
				y1#=GetObjectWorldy(bricks[t])
				z1#=GetObjectWorldz(bricks[t])
					
					if x#>x1#-0.04 and x#<x1#+0.04
					if y#>y1#-0.04 and y#<y1#+0.04
					if z#>z1#-0.04 and z#<z1#+0.04	
						FixObjectToObject(me,0)
						setobjectposition(me,0,0,0)
						FixObjectToObject(me,bricks[t])
						MoveObjectLocalY(me,0.08)
						jump=0
						move_time#=0
						move=0
						dropping=0
					endif
					endif
					endif
					endif
					next
	
	endfunction

function level1()
	
	
		if GetMusicExists(music):DeleteMusic(music):endif
			music=LoadMusic("\media\music\music1.mp3")

pick_up=0
texture_1=LoadImage("\media\textures\lev1.jpg") /// bricks
texture_2=LoadImage("\media\textures\tex2.png") /// my balll
texture_4=LoadImage("\media\textures\tex3.png") // bad guy

brick=0	
	
		opentoread(1,"\media\data\Level1.data")
			repeat
				brick=brick+1
				get1=ReadInteger(1)
				get2=ReadInteger(1)
				get3=ReadInteger(1)
				
				bricks[brick]=CreateObjectBox(0.08,0.08,0.08)
				setobjectposition(bricks[brick],0.08*GET1/10,0.08*GET2/10,0.08*GET3/10)
				setObjectImage(bricks[brick],texture_1,0)
					x_pos[BRICK]=GET1
					y_pos[BRICK]=GET2
					z_pos[BRICK]=GET3

					until FileEOF(1)
					CloseFile(1)


						pivot=createobjectsphere(0.001,32,32)	
						SetObjectCollisionMode(pivot,0)
						for t=1 to brick
						FixObjectToObject(bricks[t],pivot)
						MoveObjectLocalX(bricks[t],-0.08*3)
						MoveObjectLocalz(bricks[t],-0.08*14)
						MoveObjectLocaly(bricks[t],-0.08*4)
						next
				
		
				me=createobjectsphere(0.01,32,32)
				FixObjectToObject(me,bricks[99])
				MoveObjectLocalY(me,0.08)

				test_front=createobjectbox(0.08,0.08,0.08)
				test_under=createobjectbox(0.08,0.08,0.08)
				FixObjectToObject(test_front,me)
				FixObjectToObject(test_under,me)
				MoveObjectLocalY(test_under,-0.08)
				MoveObjectLocalz(test_front,0.08)
				SetObjectCollisionMode(test_front,0)
				SetObjectCollisionMode(test_under,0)
				SetObjectCollisionMode(me,0)
				SetObjectVisible(test_front,0)
				SetObjectVisible(test_under,0)

				loadimage(200,"\media\textures\ball.png")
				loadimage(201,"\media\textures\Arrow.png")
				arrow=CreateObjectplane(0.1,0.2)
				RotateObjectGlobalX(arrow,90)
				FixObjectToObject(arrow,me)
				FixObjectPivot(arrow)
				SetObjectCollisionMode(arrow,0)
				setobjectimage(arrow,201,0)
				MoveObjectLocalY(arrow,0.08)
				SetObjectAlphaMask(arrow,1)
				
				ball=CreateObjectSphere(0.1,32,32)
				FixObjectToObject(ball,me)
				SetObjectCollisionMode(ball,0)
				setobjectimage(ball,200,0)

				
				rings[1]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[1],0.04,0.04,0.04)
				FixObjectToObject(rings[1],bricks[1])
				MoveObjectLocalY(rings[1],0.08)
				SetObjectCollisionMode(rings[1],0)
				
				rings[2]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[2],0.04,0.04,0.04)
				FixObjectToObject(rings[2],bricks[31])
				MoveObjectLocalY(rings[2],0.08)
				SetObjectCollisionMode(rings[2],0)
				
				
				rings[3]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[3],0.04,0.04,0.04)
				FixObjectToObject(rings[3],bricks[13])
				MoveObjectLocalY(rings[3],0.08)
				SetObjectCollisionMode(rings[3],0)
				
				
				rings[4]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[4],0.04,0.04,0.04)
				FixObjectToObject(rings[4],bricks[19])
				MoveObjectLocalY(rings[4],0.08)
				SetObjectCollisionMode(rings[4],0)
				
				
				rings[5]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[5],0.04,0.04,0.04)
				FixObjectToObject(rings[5],bricks[37])
				MoveObjectLocalY(rings[5],0.08)
				SetObjectCollisionMode(rings[5],0)
				
				rings[6]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[6],0.04,0.04,0.04)
				FixObjectToObject(rings[6],bricks[43])
				MoveObjectLocalY(rings[6],0.08)
				SetObjectCollisionMode(rings[6],0)
				
				
				rings[7]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[7],0.04,0.04,0.04)
				FixObjectToObject(rings[7],bricks[54])
				MoveObjectLocalY(rings[7],0.08)
				SetObjectCollisionMode(rings[7],0)
				
				rings[8]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[8],0.04,0.04,0.04)
				FixObjectToObject(rings[8],bricks[49])
				MoveObjectLocalY(rings[8],0.08)
				SetObjectCollisionMode(rings[8],0)
				
				
				rings[9]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[9],0.04,0.04,0.04)
				FixObjectToObject(rings[9],bricks[79])
				MoveObjectLocalY(rings[9],0.08)
				SetObjectCollisionMode(rings[9],0)
				
				rings[10]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[10],0.04,0.04,0.04)
				FixObjectToObject(rings[10],bricks[67])
				MoveObjectLocalY(rings[10],0.08)
				SetObjectCollisionMode(rings[10],0)
				
				
				rings[11]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[11],0.04,0.04,0.04)
				FixObjectToObject(rings[11],bricks[85])
				MoveObjectLocalY(rings[11],0.08)
				SetObjectCollisionMode(rings[11],0)
				
				rings[12]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[12],0.04,0.04,0.04)
				FixObjectToObject(rings[12],bricks[61])
				MoveObjectLocalY(rings[12],0.08)
				SetObjectCollisionMode(rings[12],0)
				rings_amount=12
				
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 drones[1]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[1],bricks[31])
			MoveObjectLocalY(drones[1],0.08)
			
				drone_test_under[1]=createobjectbox(0.08,0.08,0.08)
			
				FixObjectToObject(drone_test_under[1],drones[1])
				MoveObjectLocalY(drone_test_under[1],-0.08)
				SetObjectCollisionMode(drone_test_under[1],0)
				SetObjectCollisionMode(drones[1],0)
				SetObjectVisible(drone_test_under[1],0)
		 
		 drone_time[1]=0
		 
		 drone_move[1]=1
		 drone_turn[1,1]=1//rotatex -90
		 drone_turn[1,2]=2//rotatey -90
		 drone_turn[1,3]=2//rotatey -90
		 drone_turn[1,4]=1//rotatex -90
		 drone_turn[1,5]=2
		 drone_turn[1,6]=2
		 
		 drone_maker[1,1]=26
		 drone_maker[1,2]=19	
		 drone_maker[1,3]=13
         drone_maker[1,4]=8
		 drone_maker[1,5]=1
		 drone_maker[1,6]=31
		 
			
drones[2]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[2],bricks[55])
			MoveObjectLocalY(drones[2],0.08)
			
				drone_test_under[2]=createobjectbox(0.08,0.08,0.08)
				
				FixObjectToObject(drone_test_under[2],drones[2])
				MoveObjectLocalY(drone_test_under[2],-0.08)
			
			
				
				SetObjectCollisionMode(drone_test_under[2],0)
				SetObjectCollisionMode(drones[2],0)
				SetObjectVisible(drone_test_under[2],0)
		 
		 drone_time[2]=0
		 
		 drone_move[2]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[2,1]=2
		 drone_turn[2,2]=2
		 drone_turn[2,3]=2
		 drone_turn[2,4]=2
		 drone_turn[2,5]=2
		 
		 drone_maker[2,1]=49
		 drone_maker[2,2]=43	
		 drone_maker[2,3]=37
         drone_maker[2,4]=55
		

drones[3]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[3],bricks[79])
			RotateObjectLocaly(drones[3],180)
			MoveObjectLocalY(drones[3],0.08)
			
			
				drone_test_under[3]=createobjectbox(0.08,0.08,0.08)
				
				FixObjectToObject(drone_test_under[3],drones[3])
				MoveObjectLocalY(drone_test_under[3],-0.08)
			
			
				
				SetObjectCollisionMode(drone_test_under[3],0)
				SetObjectCollisionMode(drones[3],0)
				SetObjectVisible(drone_test_under[3],0)
		 
		 drone_time[3]=0
		 
		 drone_move[3]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[3,1]=1
		 drone_turn[3,2]=3
		 drone_turn[3,3]=3
		 drone_turn[3,4]=1
		 drone_turn[3,5]=3
		 drone_turn[3,6]=3
		 
		 drone_maker[3,1]=74
		 drone_maker[3,2]=67	
		 drone_maker[3,3]=61
         drone_maker[3,4]=92
         drone_maker[3,5]=85
         drone_maker[3,6]=79
         
			drone_amount=3
			
			
			
			for t=1 to 100
				if GetObjectExists(drone_skin[t])=1:deleteobject(drone_skin[t]):endif
					next
			loadimage(202,"\media\textures\ball2.png")
			for t=1 to 3
				SetObjectVisible(drone_test_under[t],0)
				drone_skin[t]=createobjectsphere(0.1,32,32)
				FixObjectToObject(drone_skin[t],drones[t])
				setobjectimage(drone_skin[t],202,0)
				SetObjectCollisionMode(drone_skin[t],0)
				next
			
			PlayMusic(music,1)
			SetObjectVisible(pivot,0)
			
endfunction






function level2()
	if GetMusicExists(music):DeleteMusic(music):endif
	music=LoadMusic("\media\music\music2.mp3")
pick_up=0


texture_1=LoadImage("\media\textures\tex1.png") /// bricks
texture_2=LoadImage("\media\textures\tex2.png") /// my balll
texture_4=LoadImage("\media\textures\tex3.png") // bad guy

brick=0	
	
		opentoread(1,"\media\data\Level2.data")
			repeat
				brick=brick+1
				get1=ReadInteger(1)
				get2=ReadInteger(1)
				get3=ReadInteger(1)
				bricks[brick]=CreateObjectBox(0.08,0.08,0.08)
				setobjectposition(bricks[brick],0.08*GET1/10,0.08*GET2/10,0.08*GET3/10)
				setObjectImage(bricks[brick],texture_1,0)
					x_pos[BRICK]=GET1
					y_pos[BRICK]=GET2
					z_pos[BRICK]=GET3

					until FileEOF(1)
					CloseFile(1)


						pivot=createobjectsphere(0.001,32,32)	
		SetObjectCollisionMode(pivot,0)
						for t=1 to brick
						FixObjectToObject(bricks[t],pivot)
						MoveObjectLocalX(bricks[t],-0.08*3)
						MoveObjectLocalz(bricks[t],-0.08*14)
						MoveObjectLocaly(bricks[t],-0.08*4)
						next

		
				me=createobjectsphere(0.01,32,32)
				FixObjectToObject(me,bricks[75])
				MoveObjectLocalY(me,0.08)
				
				
				
				
				test_front=createobjectbox(0.08,0.08,0.08)
				test_under=createobjectbox(0.08,0.08,0.08)
				FixObjectToObject(test_front,me)
				FixObjectToObject(test_under,me)
				MoveObjectLocalY(test_under,-0.08)
			
				MoveObjectLocalz(test_front,0.08)
				SetObjectCollisionMode(test_front,0)
				SetObjectCollisionMode(test_under,0)
				SetObjectCollisionMode(me,0)
				SetObjectVisible(test_front,0)
				SetObjectVisible(test_under,0)
				
				
				
					loadimage(200,"\media\textures\ball.png")
				loadimage(201,"\media\textures\Arrow.png")
				arrow=CreateObjectplane(0.1,0.2)
				RotateObjectGlobalX(arrow,90)
				FixObjectToObject(arrow,me)
				FixObjectPivot(arrow)
				SetObjectCollisionMode(arrow,0)
				setobjectimage(arrow,201,0)
				MoveObjectLocalY(arrow,0.08)
				SetObjectAlphaMask(arrow,1)
				
				
				
				
				ball=CreateObjectSphere(0.1,32,32)
				FixObjectToObject(ball,me)
				SetObjectCollisionMode(ball,0)
				setobjectimage(ball,200,0)
				
				
				

				
				rings[1]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[1],0.04,0.04,0.04)
				FixObjectToObject(rings[1],bricks[19])
				MoveObjectLocalY(rings[1],0.08)
				SetObjectCollisionMode(rings[1],0)
				
				rings[2]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[2],0.04,0.04,0.04)
				FixObjectToObject(rings[2],bricks[13])
				MoveObjectLocalY(rings[2],0.08)
				SetObjectCollisionMode(rings[2],0)
				
				
				rings[3]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[3],0.04,0.04,0.04)
				FixObjectToObject(rings[3],bricks[7])
				MoveObjectLocalY(rings[3],0.08)
				SetObjectCollisionMode(rings[3],0)
				
				
				rings[4]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[4],0.04,0.04,0.04)
				FixObjectToObject(rings[4],bricks[1])
				MoveObjectLocalY(rings[4],0.08)
				SetObjectCollisionMode(rings[4],0)
				
				
				rings[5]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[5],0.04,0.04,0.04)
				FixObjectToObject(rings[5],bricks[25])
				MoveObjectLocalY(rings[5],0.08)
				SetObjectCollisionMode(rings[5],0)
				
				rings[6]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[6],0.04,0.04,0.04)
				FixObjectToObject(rings[6],bricks[31])
				MoveObjectLocalY(rings[6],0.08)
				SetObjectCollisionMode(rings[6],0)
				
				
				rings[7]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[7],0.04,0.04,0.04)
				FixObjectToObject(rings[7],bricks[37])
				MoveObjectLocalY(rings[7],0.08)
				SetObjectCollisionMode(rings[7],0)
				
				rings[8]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[8],0.04,0.04,0.04)
				FixObjectToObject(rings[8],bricks[43])
				MoveObjectLocalY(rings[8],0.08)
				SetObjectCollisionMode(rings[8],0)
				
				
				rings[9]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[9],0.04,0.04,0.04)
				FixObjectToObject(rings[9],bricks[67])
				MoveObjectLocalY(rings[9],0.08)
				SetObjectCollisionMode(rings[9],0)
				
				rings[10]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[10],0.04,0.04,0.04)
				FixObjectToObject(rings[10],bricks[61])
				MoveObjectLocalY(rings[10],0.08)
				SetObjectCollisionMode(rings[10],0)
				
				
				rings[11]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[11],0.04,0.04,0.04)
				FixObjectToObject(rings[11],bricks[55])
				MoveObjectLocalY(rings[11],0.08)
				SetObjectCollisionMode(rings[11],0)
				
				rings[12]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[12],0.04,0.04,0.04)
				FixObjectToObject(rings[12],bricks[49])
				MoveObjectLocalY(rings[12],0.08)
				SetObjectCollisionMode(rings[12],0)
				rings_amount=12
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 drones[1]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[1],bricks[19])
			MoveObjectLocalY(drones[1],0.08)
			
				drone_test_under[1]=createobjectbox(0.08,0.08,0.08)
				
				FixObjectToObject(drone_test_under[1],drones[1])
				MoveObjectLocalY(drone_test_under[1],-0.08)
			
				
				
				SetObjectCollisionMode(drone_test_under[1],0)
				SetObjectCollisionMode(drones[1],0)

		 
		 drone_time[1]=0
		 
		 drone_move[1]=1
		 drone_turn[1,1]=2//rotatex -90
		 drone_turn[1,2]=2//rotatey -90
		 drone_turn[1,3]=2//rotatey -90
		 drone_turn[1,4]=2//rotatex -90
		
		 
		 drone_maker[1,1]=13
		 drone_maker[1,2]=7	
		 drone_maker[1,3]=1
         drone_maker[1,4]=19
		 
		 
			
drones[2]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[2],bricks[25])
			MoveObjectLocalY(drones[2],0.08)
			
				drone_test_under[2]=createobjectbox(0.08,0.08,0.08)
			
				FixObjectToObject(drone_test_under[2],drones[2])
				MoveObjectLocalY(drone_test_under[2],-0.08)
			
				
				SetObjectCollisionMode(drone_test_under[2],0)
				SetObjectCollisionMode(drones[2],0)

		 
		 drone_time[2]=0
		 
		 drone_move[2]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[2,1]=3
		 drone_turn[2,2]=3
		 drone_turn[2,3]=3
		 drone_turn[2,4]=3
		
		 
		 drone_maker[2,1]=31
		 drone_maker[2,2]=37	
		 drone_maker[2,3]=43
         drone_maker[2,4]=25
		

drones[3]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[3],bricks[67])
			
			MoveObjectLocalY(drones[3],0.08)
		
			
				drone_test_under[3]=createobjectbox(0.08,0.08,0.08)
			
				FixObjectToObject(drone_test_under[3],drones[3])
				MoveObjectLocalY(drone_test_under[3],-0.08)
			
				SetObjectCollisionMode(drone_test_under[3],0)
				SetObjectCollisionMode(drones[3],0)

		 
		 drone_time[3]=0
		 
		 drone_move[3]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[3,1]=2
		 drone_turn[3,2]=2
		 drone_turn[3,3]=2
		 drone_turn[3,4]=2
	
		 
		 drone_maker[3,1]=61
		 drone_maker[3,2]=55	
		 drone_maker[3,3]=49
         drone_maker[3,4]=67
       
         
         drone_amount=3
         
			
			for t=1 to 100
				if GetObjectExists(drone_skin[t])=1:deleteobject(drone_skin[t]):endif
					next
			loadimage(202,"\media\textures\ball2.png")
			for t=1 to drone_amount
				SetObjectVisible(drone_test_under[t],0)
				drone_skin[t]=createobjectsphere(0.1,32,32)
				FixObjectToObject(drone_skin[t],drones[t])
				setobjectimage(drone_skin[t],202,0)
				SetObjectCollisionMode(drone_skin[t],0)
				next
				
				PlayMusic(music,1)
				SetObjectVisible(pivot,0)
endfunction



function level3()
	
	if GetMusicExists(music):DeleteMusic(music):endif
	music=LoadMusic("\media\music\music3.mp3")
	
	pick_up=0
texture_1=LoadImage("\media\textures\tex1.png") /// bricks
texture_2=LoadImage("\media\textures\tex2.png") /// my balll
texture_4=LoadImage("\media\textures\tex3.png") // bad guy
brick=0	
	
		opentoread(1,"\media\data\Level3.data")
			repeat
				brick=brick+1
				get1=ReadInteger(1)
				get2=ReadInteger(1)
				get3=ReadInteger(1)
				bricks[brick]=CreateObjectBox(0.08,0.08,0.08)
				setobjectposition(bricks[brick],0.08*GET1/10,0.08*GET2/10,0.08*GET3/10)
				setObjectImage(bricks[brick],texture_1,0)
					x_pos[BRICK]=GET1
					y_pos[BRICK]=GET2
					z_pos[BRICK]=GET3

					until FileEOF(1)
					CloseFile(1)


						pivot=createobjectsphere(0.1,32,32)	
						SetObjectCollisionMode(pivot,0)
						for t=1 to brick
						FixObjectToObject(bricks[t],pivot)
						MoveObjectLocalX(bricks[t],-0.08*3)
						MoveObjectLocalz(bricks[t],-0.08*4)
						MoveObjectLocaly(bricks[t],0.08*7)
						next

		
				me=createobjectsphere(0.01,32,32)
				FixObjectToObject(me,bricks[102])
				MoveObjectLocalY(me,0.08)
				
				test_front=createobjectbox(0.08,0.08,0.08)
				test_under=createobjectbox(0.08,0.08,0.08)
				FixObjectToObject(test_front,me)
				FixObjectToObject(test_under,me)
				MoveObjectLocalY(test_under,-0.08)
			
				MoveObjectLocalz(test_front,0.08)
				SetObjectCollisionMode(test_front,0)
				SetObjectCollisionMode(test_under,0)
				SetObjectCollisionMode(me,0)
				SetObjectVisible(test_front,0)
				SetObjectVisible(test_under,0)
				
				
					loadimage(200,"\media\textures\ball.png")
				loadimage(201,"\media\textures\Arrow.png")
				arrow=CreateObjectplane(0.1,0.2)
				RotateObjectGlobalX(arrow,90)
				FixObjectToObject(arrow,me)
				FixObjectPivot(arrow)
				SetObjectCollisionMode(arrow,0)
				setobjectimage(arrow,201,0)
				MoveObjectLocalY(arrow,0.08)
				SetObjectAlphaMask(arrow,1)
				
				
				
				
				ball=CreateObjectSphere(0.1,32,32)
				FixObjectToObject(ball,me)
				SetObjectCollisionMode(ball,0)
				setobjectimage(ball,200,0)
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				rings[1]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[1],0.04,0.04,0.04)
				FixObjectToObject(rings[1],bricks[19])
				MoveObjectLocalY(rings[1],0.08)
				SetObjectCollisionMode(rings[1],0)
				
				rings[2]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[2],0.04,0.04,0.04)
				FixObjectToObject(rings[2],bricks[13])
				MoveObjectLocalY(rings[2],0.08)
				SetObjectCollisionMode(rings[2],0)
				
				
				rings[3]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[3],0.04,0.04,0.04)
				FixObjectToObject(rings[3],bricks[7])
				MoveObjectLocalY(rings[3],0.08)
				SetObjectCollisionMode(rings[3],0)
				
				
				rings[4]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[4],0.04,0.04,0.04)
				FixObjectToObject(rings[4],bricks[1])
				MoveObjectLocalY(rings[4],0.08)
				SetObjectCollisionMode(rings[4],0)
				
				
				rings[5]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[5],0.04,0.04,0.04)
				FixObjectToObject(rings[5],bricks[25])
				MoveObjectLocalY(rings[5],0.08)
				SetObjectCollisionMode(rings[5],0)
				
				rings[6]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[6],0.04,0.04,0.04)
				FixObjectToObject(rings[6],bricks[31])
				MoveObjectLocalY(rings[6],0.08)
				SetObjectCollisionMode(rings[6],0)
				
				
				rings[7]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[7],0.04,0.04,0.04)
				FixObjectToObject(rings[7],bricks[37])
				MoveObjectLocalY(rings[7],0.08)
				SetObjectCollisionMode(rings[7],0)
				
				rings[8]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[8],0.04,0.04,0.04)
				FixObjectToObject(rings[8],bricks[43])
				MoveObjectLocalY(rings[8],0.08)
				SetObjectCollisionMode(rings[8],0)
				
				
				rings[9]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[9],0.04,0.04,0.04)
				FixObjectToObject(rings[9],bricks[67])
				MoveObjectLocalY(rings[9],0.08)
				SetObjectCollisionMode(rings[9],0)
				
				rings[10]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[10],0.04,0.04,0.04)
				FixObjectToObject(rings[10],bricks[61])
				MoveObjectLocalY(rings[10],0.08)
				SetObjectCollisionMode(rings[10],0)
				
				
				rings[11]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[11],0.04,0.04,0.04)
				FixObjectToObject(rings[11],bricks[55])
				MoveObjectLocalY(rings[11],0.08)
				SetObjectCollisionMode(rings[11],0)
				
				rings[12]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[12],0.04,0.04,0.04)
				FixObjectToObject(rings[12],bricks[49])
				MoveObjectLocalY(rings[12],0.08)
				SetObjectCollisionMode(rings[12],0)
				
				
				
				
				rings[13]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[13],0.04,0.04,0.04)
				FixObjectToObject(rings[13],bricks[73])
				MoveObjectLocalY(rings[13],0.08)
				SetObjectCollisionMode(rings[13],0)
				
				rings[14]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[14],0.04,0.04,0.04)
				FixObjectToObject(rings[14],bricks[91])
				MoveObjectLocalY(rings[14],0.08)
				SetObjectCollisionMode(rings[14],0)
				
				rings[15]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[15],0.04,0.04,0.04)
				FixObjectToObject(rings[15],bricks[85])
				MoveObjectLocalY(rings[15],0.08)
				SetObjectCollisionMode(rings[15],0)
				
				rings[16]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[16],0.04,0.04,0.04)
				FixObjectToObject(rings[16],bricks[79])
				MoveObjectLocalY(rings[16],0.08)
				SetObjectCollisionMode(rings[16],0)
				rings_amount=16
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 drones[1]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[1],bricks[73])
			MoveObjectLocalY(drones[1],0.08)
			
				drone_test_under[1]=createobjectbox(0.08,0.08,0.08)
				
				FixObjectToObject(drone_test_under[1],drones[1])
				MoveObjectLocalY(drone_test_under[1],-0.08)
			
				SetObjectCollisionMode(drone_test_under[1],0)
				SetObjectCollisionMode(drones[1],0)

		 
		 drone_time[1]=0
		 
		 drone_move[1]=1
		 drone_turn[1,1]=3//rotatex -90
		 drone_turn[1,2]=3//rotatey -90
		 drone_turn[1,3]=3//rotatey -90
		 drone_turn[1,4]=3//rotatex -90
		
		 
		 drone_maker[1,1]=91
		 drone_maker[1,2]=85	
		 drone_maker[1,3]=79
         drone_maker[1,4]=73
		 
		 
			
drones[2]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[2],bricks[55])
			MoveObjectLocalY(drones[2],0.08)
	
				drone_test_under[2]=createobjectbox(0.08,0.08,0.08)
				
				FixObjectToObject(drone_test_under[2],drones[2])
				MoveObjectLocalY(drone_test_under[2],-0.08)
			
				SetObjectCollisionMode(drone_test_under[2],0)
				SetObjectCollisionMode(drones[2],0)

		 
		 drone_time[2]=0
		 
		 drone_move[2]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[2,1]=2
		 drone_turn[2,2]=2
		 drone_turn[2,3]=2
		 drone_turn[2,4]=2
		
		 
		 drone_maker[2,1]=61
		 drone_maker[2,2]=67	
		 drone_maker[2,3]=49
         drone_maker[2,4]=55
		

		drones[3]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[3],bricks[25])
			
			MoveObjectLocalY(drones[3],0.08)
		
			
				drone_test_under[3]=createobjectbox(0.08,0.08,0.08)
				
				FixObjectToObject(drone_test_under[3],drones[3])
				MoveObjectLocalY(drone_test_under[3],-0.08)
			
				SetObjectCollisionMode(drone_test_under[3],0)
				SetObjectCollisionMode(drones[3],0)

		 
		 drone_time[3]=0
		 
		 drone_move[3]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[3,1]=3
		 drone_turn[3,2]=3
		 drone_turn[3,3]=3
		 drone_turn[3,4]=3
	
		 
		 drone_maker[3,1]=43
		 drone_maker[3,2]=37	
		 drone_maker[3,3]=31
         drone_maker[3,4]=25
     
         
         
       drones[4]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[4],bricks[7])
			
			MoveObjectLocalY(drones[4],0.08)
		
			
				drone_test_under[4]=createobjectbox(0.08,0.08,0.08)
			
				FixObjectToObject(drone_test_under[4],drones[4])
				MoveObjectLocalY(drone_test_under[4],-0.08)
			
				SetObjectCollisionMode(drone_test_under[4],0)
				SetObjectCollisionMode(drones[4],0)

		 
		 drone_time[4]=0
		 
		 drone_move[4]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[4,1]=2
		 drone_turn[4,2]=2
		 drone_turn[4,3]=2
		 drone_turn[4,4]=2
	
		 
		 drone_maker[4,1]=13
		 drone_maker[4,2]=19	
		 drone_maker[4,3]=1
         drone_maker[4,4]=7
         
         
         
         drone_amount=4
			for t=1 to 100
				if GetObjectExists(drone_skin[t])=1:deleteobject(drone_skin[t]):endif
					next
			loadimage(202,"\media\textures\ball2.png")
			for t=1 to drone_amount
				SetObjectVisible(drone_test_under[t],0)
				drone_skin[t]=createobjectsphere(0.1,32,32)
				FixObjectToObject(drone_skin[t],drones[t])
				setobjectimage(drone_skin[t],202,0)
				SetObjectCollisionMode(drone_skin[t],0)
				next
				PlayMusic(music,1)
				SetObjectVisible(pivot,0)
endfunction




function level4()
	if GetMusicExists(music):DeleteMusic(music):endif
	music=LoadMusic("\media\music\music4.mp3")
pick_up=0

texture_1=LoadImage("\media\textures\tex1.png") /// bricks
texture_2=LoadImage("\media\textures\tex2.png") /// my balll
texture_4=LoadImage("\media\textures\tex3.png") // bad guy

brick=0	
	
		opentoread(1,"\media\data\Level4.data")
			repeat
				brick=brick+1
				get1=ReadInteger(1)
				get2=ReadInteger(1)
				get3=ReadInteger(1)
				bricks[brick]=CreateObjectBox(0.08,0.08,0.08)
				setobjectposition(bricks[brick],0.08*GET1/10,0.08*GET2/10,0.08*GET3/10)
				setObjectImage(bricks[brick],texture_1,0)
					x_pos[BRICK]=GET1
					y_pos[BRICK]=GET2
					z_pos[BRICK]=GET3

					until FileEOF(1)
					CloseFile(1)


						pivot=createobjectsphere(0.1,32,32)	
		SetObjectCollisionMode(pivot,0)
						for t=1 to brick
						FixObjectToObject(bricks[t],pivot)
						MoveObjectLocalX(bricks[t],-0.08*3)
						MoveObjectLocalz(bricks[t],-0.08*4)
						MoveObjectLocaly(bricks[t],-0.08*3)
						next

		
				me=createobjectsphere(0.01,32,32)
				FixObjectToObject(me,bricks[145])
				MoveObjectLocalY(me,0.08)
				
				test_front=createobjectbox(0.08,0.08,0.08)
				test_under=createobjectbox(0.08,0.08,0.08)
				FixObjectToObject(test_front,me)
				FixObjectToObject(test_under,me)
				MoveObjectLocalY(test_under,-0.08)
			
				MoveObjectLocalz(test_front,0.08)
				SetObjectCollisionMode(test_front,0)
				SetObjectCollisionMode(test_under,0)
				SetObjectCollisionMode(me,0)
				SetObjectVisible(test_front,0)
				SetObjectVisible(test_under,0)
				
				
				
					loadimage(200,"\media\textures\ball.png")
				loadimage(201,"\media\textures\Arrow.png")
				arrow=CreateObjectplane(0.1,0.2)
				RotateObjectGlobalX(arrow,90)
				FixObjectToObject(arrow,me)
				FixObjectPivot(arrow)
				SetObjectCollisionMode(arrow,0)
				setobjectimage(arrow,201,0)
				MoveObjectLocalY(arrow,0.08)
				SetObjectAlphaMask(arrow,1)
				
				
				
				
				ball=CreateObjectSphere(0.1,32,32)
				FixObjectToObject(ball,me)
				SetObjectCollisionMode(ball,0)
				setobjectimage(ball,200,0)
				
				
				
				
				
				
				
				
				
				
				
				
				rings[1]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[1],0.04,0.04,0.04)
				FixObjectToObject(rings[1],bricks[19])
				MoveObjectLocalY(rings[1],0.08)
				SetObjectCollisionMode(rings[1],0)
				
				rings[2]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[2],0.04,0.04,0.04)
				FixObjectToObject(rings[2],bricks[13])
				MoveObjectLocalY(rings[2],0.08)
				SetObjectCollisionMode(rings[2],0)
				
				
				rings[3]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[3],0.04,0.04,0.04)
				FixObjectToObject(rings[3],bricks[7])
				MoveObjectLocalY(rings[3],0.08)
				SetObjectCollisionMode(rings[3],0)
				
				
				rings[4]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[4],0.04,0.04,0.04)
				FixObjectToObject(rings[4],bricks[1])
				MoveObjectLocalY(rings[4],0.08)
				SetObjectCollisionMode(rings[4],0)
				
				
				rings[5]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[5],0.04,0.04,0.04)
				FixObjectToObject(rings[5],bricks[109])
				MoveObjectLocalY(rings[5],0.08)
				SetObjectCollisionMode(rings[5],0)
				
				rings[6]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[6],0.04,0.04,0.04)
				FixObjectToObject(rings[6],bricks[103])
				MoveObjectLocalY(rings[6],0.08)
				SetObjectCollisionMode(rings[6],0)
				
				
				rings[7]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[7],0.04,0.04,0.04)
				FixObjectToObject(rings[7],bricks[97])
				MoveObjectLocalY(rings[7],0.08)
				SetObjectCollisionMode(rings[7],0)
				
				rings[8]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[8],0.04,0.04,0.04)
				FixObjectToObject(rings[8],bricks[115])
				MoveObjectLocalY(rings[8],0.08)
				SetObjectCollisionMode(rings[8],0)
				
				
				rings[9]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[9],0.04,0.04,0.04)
				FixObjectToObject(rings[9],bricks[67])
				MoveObjectLocalY(rings[9],0.08)
				SetObjectCollisionMode(rings[9],0)
				
				rings[10]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[10],0.04,0.04,0.04)
				FixObjectToObject(rings[10],bricks[61])
				MoveObjectLocalY(rings[10],0.08)
				SetObjectCollisionMode(rings[10],0)
				
				
				rings[11]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[11],0.04,0.04,0.04)
				FixObjectToObject(rings[11],bricks[55])
				MoveObjectLocalY(rings[11],0.08)
				SetObjectCollisionMode(rings[11],0)
				
				rings[12]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[12],0.04,0.04,0.04)
				FixObjectToObject(rings[12],bricks[49])
				MoveObjectLocalY(rings[12],0.08)
				SetObjectCollisionMode(rings[12],0)
				
				
				
				
				rings[13]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[13],0.04,0.04,0.04)
				FixObjectToObject(rings[13],bricks[73])
				MoveObjectLocalY(rings[13],0.08)
				SetObjectCollisionMode(rings[13],0)
				
				rings[14]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[14],0.04,0.04,0.04)
				FixObjectToObject(rings[14],bricks[91])
				MoveObjectLocalY(rings[14],0.08)
				SetObjectCollisionMode(rings[14],0)
				
				rings[15]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[15],0.04,0.04,0.04)
				FixObjectToObject(rings[15],bricks[85])
				MoveObjectLocalY(rings[15],0.08)
				SetObjectCollisionMode(rings[15],0)
				
				rings[16]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[16],0.04,0.04,0.04)
				FixObjectToObject(rings[16],bricks[79])
				MoveObjectLocalY(rings[16],0.08)
				SetObjectCollisionMode(rings[16],0)
			
			
				rings[17]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[17],0.04,0.04,0.04)
				FixObjectToObject(rings[17],bricks[139])
				MoveObjectLocalY(rings[17],0.08)
				SetObjectCollisionMode(rings[17],0)
				
				rings[18]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[18],0.04,0.04,0.04)
				FixObjectToObject(rings[18],bricks[121])
				MoveObjectLocalY(rings[18],0.08)
				SetObjectCollisionMode(rings[18],0)
				
				rings[19]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[19],0.04,0.04,0.04)
				FixObjectToObject(rings[19],bricks[127])
				MoveObjectLocalY(rings[19],0.08)
				SetObjectCollisionMode(rings[19],0)
				
				rings[20]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[20],0.04,0.04,0.04)
				FixObjectToObject(rings[20],bricks[133])
				MoveObjectLocalY(rings[20],0.08)
				SetObjectCollisionMode(rings[20],0)
			
			
			rings_amount=20
			
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		 drones[1]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[1],bricks[73])
			MoveObjectLocalY(drones[1],0.08)
			
				drone_test_under[1]=createobjectbox(0.08,0.08,0.08)
				
				FixObjectToObject(drone_test_under[1],drones[1])
				MoveObjectLocalY(drone_test_under[1],-0.08)
			
				SetObjectCollisionMode(drone_test_under[1],0)
				SetObjectCollisionMode(drones[1],0)

		 
		 drone_time[1]=0
		 
		 drone_move[1]=1
		 drone_turn[1,1]=3//rotatex -90
		 drone_turn[1,2]=3//rotatey -90
		 drone_turn[1,3]=3//rotatey -90
		 drone_turn[1,4]=3//rotatex -90
		
		 
		 drone_maker[1,1]=91
		 drone_maker[1,2]=85	
		 drone_maker[1,3]=79
         drone_maker[1,4]=73
		 
		 
		   drones[2]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[2],bricks[7])
			
			MoveObjectLocalY(drones[2],0.08)
		
		
				drone_test_under[2]=createobjectbox(0.08,0.08,0.08)
				
				FixObjectToObject(drone_test_under[2],drones[2])
				MoveObjectLocalY(drone_test_under[2],-0.08)
			
				SetObjectCollisionMode(drone_test_under[2],0)
				SetObjectCollisionMode(drones[4],0)

		 
		 drone_time[2]=0
		 
		 drone_move[2]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[2,1]=2
		 drone_turn[2,2]=2
		 drone_turn[2,3]=2
		 drone_turn[2,4]=2
	
		 
		 drone_maker[2,1]=13
		 drone_maker[2,2]=19	
		 drone_maker[2,3]=1
         drone_maker[2,4]=7
		 
		 
		 
		 
		 
		 
			
drones[3]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[3],bricks[109])
			MoveObjectLocalY(drones[3],0.08)
		
				drone_test_under[3]=createobjectbox(0.08,0.08,0.08)
			
				FixObjectToObject(drone_test_under[3],drones[3])
				MoveObjectLocalY(drone_test_under[3],-0.08)
			
				SetObjectCollisionMode(drone_test_under[3],0)
				SetObjectCollisionMode(drones[3],0)

		 
		 drone_time[3]=0
		 
		 drone_move[3]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[3,1]=2
		 drone_turn[3,2]=2
		 drone_turn[3,3]=2
		 drone_turn[3,4]=2
		
		 
		 drone_maker[3,1]=103
		 drone_maker[3,2]=97	
		 drone_maker[3,3]=115
         drone_maker[3,4]=109
		

		drones[4]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[4],bricks[49])
			
			MoveObjectLocalY(drones[4],0.08)
		
				drone_test_under[4]=createobjectbox(0.08,0.08,0.08)
			
				FixObjectToObject(drone_test_under[4],drones[4])
				MoveObjectLocalY(drone_test_under[4],-0.08)
			
			
				SetObjectCollisionMode(drone_test_under[4],0)
				SetObjectCollisionMode(drones[4],0)

		 
		 drone_time[4]=0
		 
		 drone_move[4]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[4,1]=2
		 drone_turn[4,2]=2
		 drone_turn[4,3]=2
		 drone_turn[4,4]=2
	
		 
		 drone_maker[4,1]=55
		 drone_maker[4,2]=61	
		 drone_maker[4,3]=67
         drone_maker[4,4]=49
     
        drones[5]=createobjectsphere(0.01,32,32)
			FixObjectToObject(drones[5],bricks[139])
			
			MoveObjectLocalY(drones[5],0.08)
		
				drone_test_under[5]=createobjectbox(0.08,0.08,0.08)
			
				FixObjectToObject(drone_test_under[5],drones[5])
				MoveObjectLocalY(drone_test_under[5],-0.08)
			
				
				SetObjectCollisionMode(drone_test_under[5],0)
				SetObjectCollisionMode(drones[5],0)

		 
		 drone_time[5]=0
		 
		 drone_move[5]=1
		 //1//rotatex -90
		 //2//rotatey -90
		
		 drone_turn[5,1]=2
		 drone_turn[5,2]=2
		 drone_turn[5,3]=2
		 drone_turn[5,4]=2
	
		 
		 drone_maker[5,1]=121
		 drone_maker[5,2]=127	
		 drone_maker[5,3]=133
         drone_maker[5,4]=139
         
     
         
         drone_amount=5
         
         for t=1 to 100
				if GetObjectExists(drone_skin[t])=1:deleteobject(drone_skin[t]):endif
					next
			loadimage(202,"\media\textures\ball2.png")
			for t=1 to drone_amount
				SetObjectVisible(drone_test_under[t],0)
				drone_skin[t]=createobjectsphere(0.1,32,32)
				FixObjectToObject(drone_skin[t],drones[t])
				setobjectimage(drone_skin[t],202,0)
				SetObjectCollisionMode(drone_skin[t],0)
				next
			PlayMusic(music,1)
			SetObjectVisible(pivot,0)
endfunction





function level5()
	
if GetMusicExists(music):DeleteMusic(music):endif
	music=LoadMusic("\media\music\music5.mp3")
pick_up=0
texture_1=LoadImage("\media\textures\tex1.png") /// bricks
texture_2=LoadImage("\media\textures\tex2.png") /// my balll
texture_4=LoadImage("\media\textures\tex3.png") // bad guy

brick=0	
	
		opentoread(1,"\media\data\Level5.data")
			repeat
				brick=brick+1
				get1=ReadInteger(1)
				get2=ReadInteger(1)
				get3=ReadInteger(1)
				bricks[brick]=CreateObjectBox(0.08,0.08,0.08)
				setobjectposition(bricks[brick],0.08*GET1/10,0.08*GET2/10,0.08*GET3/10)
				setObjectImage(bricks[brick],texture_1,0)
					x_pos[BRICK]=GET1
					y_pos[BRICK]=GET2
					z_pos[BRICK]=GET3

					until FileEOF(1)
					CloseFile(1)


						pivot=createobjectsphere(0.1,32,32)	
		SetObjectCollisionMode(pivot,0)
						for t=1 to brick
						FixObjectToObject(bricks[t],pivot)
						//MoveObjectLocalX(bricks[t],0.08*1)
						MoveObjectLocalz(bricks[t],0.08*2)
						MoveObjectLocaly(bricks[t],0.08*3)
						next

		
				
				me=createobjectsphere(0.01,32,32)
				FixObjectToObject(me,bricks[97])
				MoveObjectLocalY(me,0.08)
				
				test_front=createobjectbox(0.08,0.08,0.08)
				test_under=createobjectbox(0.08,0.08,0.08)
				FixObjectToObject(test_front,me)
				FixObjectToObject(test_under,me)
				MoveObjectLocalY(test_under,-0.08)
			
				MoveObjectLocalz(test_front,0.08)
				SetObjectCollisionMode(test_front,0)
				SetObjectCollisionMode(test_under,0)
				SetObjectCollisionMode(me,0)
				
				SetObjectVisible(test_front,0)
				SetObjectVisible(test_under,0)
				
				
					loadimage(200,"\media\textures\ball.png")
				loadimage(201,"\media\textures\Arrow.png")
				arrow=CreateObjectplane(0.1,0.2)
				RotateObjectGlobalX(arrow,90)
				FixObjectToObject(arrow,me)
				FixObjectPivot(arrow)
				SetObjectCollisionMode(arrow,0)
				setobjectimage(arrow,201,0)
				MoveObjectLocalY(arrow,0.08)
				SetObjectAlphaMask(arrow,1)
				
				
				
				
				ball=CreateObjectSphere(0.1,32,32)
				FixObjectToObject(ball,me)
				SetObjectCollisionMode(ball,0)
				setobjectimage(ball,200,0)

				rings[1]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[1],0.04,0.04,0.04)
				FixObjectToObject(rings[1],bricks[49])
				MoveObjectLocalz(rings[1],0.08)
				SetObjectCollisionMode(rings[1],0)
				
				rings[2]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[2],0.04,0.04,0.04)
				FixObjectToObject(rings[2],bricks[55])
				MoveObjectLocalz(rings[2],0.08)
				SetObjectCollisionMode(rings[2],0)
				
				
				rings[3]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[3],0.04,0.04,0.04)
				FixObjectToObject(rings[3],bricks[61])
				MoveObjectLocalz(rings[3],0.08)
				SetObjectCollisionMode(rings[3],0)
				
				
				rings[4]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[4],0.04,0.04,0.04)
				FixObjectToObject(rings[4],bricks[67])
				MoveObjectLocalz(rings[4],0.08)
				SetObjectCollisionMode(rings[4],0)
				
				
				rings[5]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[5],0.04,0.04,0.04)
				FixObjectToObject(rings[5],bricks[73])
				MoveObjectLocalz(rings[5], -0.08)
				SetObjectCollisionMode(rings[5],0)
				
				rings[6]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[6],0.04,0.04,0.04)
				FixObjectToObject(rings[6],bricks[79])
				MoveObjectLocalz(rings[6],-0.08)
				SetObjectCollisionMode(rings[6],0)
				
				
				rings[7]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[7],0.04,0.04,0.04)
				FixObjectToObject(rings[7],bricks[85])
				MoveObjectLocalz(rings[7],-0.08)
				SetObjectCollisionMode(rings[7],0)
				
				
				rings[8]=loadobject("\media\models\ring.obj")
				setobjectscale(rings[8],0.04,0.04,0.04)
				FixObjectToObject(rings[8],bricks[91])
				MoveObjectLocalz(rings[8],-0.08)
				SetObjectCollisionMode(rings[8],0)
			
			/