need quick help

Blitz3D Forums/Blitz3D Beginners Area/need quick help

Oiduts Studios(Posted 2008) [#1]
I need some quick help please, just in case i posted my whole code, i know it is a piece of poo and is all straight from forums,archives and samples but.... when i run it it says wend without while. I have recieved this bug before but i do not know how to fix it this time. Thank you for your help!

Global info1$="Driver"

Include "start.bb"

Global zp#=1
Global wheels[4]
FPS = 50
period = 1000 / FPS
Global time = MilliSecs (); - period
Global fl=0.2
Global f2=40
Global f3=46
Global d1=1
Global d2=1
Global speed1=0
Global s12
Global toplane=0
;plane
;Const GRAVITY#=-.001
;tank
;Const GRAVITY#=-.07
;car

Global watermesh=LoadMesh("20x20quad.3ds") : 

Global surface=CountSurfaces(watermesh)
surface=GetSurface(watermesh,1)

Global VertexCount=CountVertices(surface)

Global s12=Load3DSound("sound/slow one high RPM.mp3")

Const GRAVITY#=-.02

Const BODY=1,WHEEL=2,SCENE=3,DRAG=4,PLANE=5

Collisions BODY,SCENE,2,3
Collisions WHEEL,SCENE,2,3
Collisions BODY,WATERM,2,3
Collisions WHEEL,WATERM,2,3
Collisions WHEEL,WATERT,2,3
Collisions DRAG,SCENE,2,3
Collisions SCENE,DRAG,2,3
Collisions DRAG,BODY,2,3
Collisions DRAG,WHEEL,2,3
Collisions BODY,DRAG,2,3
Collisions WHEEL,DRAG,2,3
Collisions WHEEL,PlANE,2,3
Collisions PLANE,WHEEL,2,3
Collisions BODY,PLANE,2,3
Collisions PLANE,BODY,2,3
Collisions SCENE,PLANE,2,3
Collisions PLANE,SCENE,2,3

Type Vertices
	Field x#
	Field y#
	Field z#
End Type



;PlaySound s1

mesh_skybox = MakeSkyBox("Data\sky") 

Function MakeSkyBox( file$ )

	m=CreateMesh()
	;front face
	b=LoadBrush( file$+"_FR.bmp",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
	AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;right face
	b=LoadBrush( file$+"_LF.bmp",49 )
	s=CreateSurface( m,b )
	AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
	AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;back face
	b=LoadBrush( file$+"_BK.bmp",49 )
	s=CreateSurface( m,b )
	AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
	AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;left face
	b=LoadBrush( file$+"_RT.bmp",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
	AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;top face
	b=LoadBrush( file$+"_UP.bmp",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
	AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b

	ScaleMesh m,100,100,100
	FlipMesh m
	EntityFX m,9
	EntityOrder m,10
	Return m
	
End Function
	



RotateMesh watermesh,90,0,0 
RotateEntity watermesh,-90,0,0
ScaleEntity watermesh,10,10,10
EntityShininess watermesh,0.2
PositionEntity watermesh,0,5,0



texd=LoadTexture( "dragon.bmp" )
dragon=LoadMD2( "dragon.md2" )
EntityTexture dragon,texd
PositionEntity dragon,-140,72,-93
ScaleEntity dragon,0.1,0.1,0.1
TurnEntity dragon,0,150,0
EntityType dragon,DRAG

AnimateMD2 dragon,1,0.2,f2,f3


;0,40  : idle
;40,46 : run
;46,54 : attack
;54,58 : paina
;58,62 : painb
;62,66 : painc
;66,72 : jump
;72,84 : flip

dragonb=CreateSphere()
ScaleEntity dragonb,1,1,1
EntityType dragonb,DRAG
EntityAlpha dragonb,0

ramptex=LoadTexture("steel.bmp")
ScaleTexture ramptex,0.5,0.5
ramp=CreateCube()
ScaleEntity ramp,5,3,10
PositionEntity ramp,-170,72,-90
RotateEntity ramp,-30,0,0
EntityTexture ramp,ramptex
EntityType ramp,SCENE

ramp1=CreateCube()
ScaleEntity ramp1,5,3,15
PositionEntity ramp1,-170,72,-40
RotateEntity ramp1,0,0,0
EntityTexture ramp1,ramptex
EntityType ramp1,SCENE

ramp2=CreateCube()
ScaleEntity ramp2,4.9,3,15
PositionEntity ramp2,-170,76,-35
RotateEntity ramp2,-30,0,0
EntityTexture ramp2,ramptex
EntityType ramp2,SCENE

ramp3=CreateCube()
ScaleEntity ramp3,5,3,25
PositionEntity ramp3,-170,82,-5
RotateEntity ramp3,0,0,0
EntityTexture ramp3,ramptex
EntityType ramp3,SCENE

ramp4=CreateCube()
ScaleEntity ramp4,5,3,1000
PositionEntity ramp4,-160,72,-5
RotateEntity ramp4,-30,0,0
EntityTexture ramp4,ramptex
EntityType ramp4,SCENE

ramp5=CreateCube()
ScaleEntity ramp5,200,1,1000
PositionEntity ramp5,-370,200,500
RotateEntity ramp5,0,0,0
EntityTexture ramp5,ramptex
EntityType ramp5,SCENE

;terr=LoadMesh("terrain 1.3ds")
terr=LoadTerrain( "heightmap_256.bmp" )
ScaleEntity terr,1000/TerrainSize(terr),70,1000/TerrainSize(terr)
TerrainDetail terr,1000,True
TerrainShading terr,True
;ScaleEntity terr,1,1,1
PositionEntity terr,-500,0,-500
tex=LoadTexture( "terrain-1.jpg" )
ScaleTexture tex,50,50
EntityTexture terr,tex
EntityType terr,SCENE

a747=LoadMesh("747.x")
ScaleEntity a747,20,20,20
RotateEntity a747,3,5,2
PositionEntity a747,1,3,10
EntityType a747,PLANE

water=CreatePlane()
PositionEntity water,1,2,1
EntityAlpha water,0.8
wt=LoadTexture( "water.bmp" )
ScaleTexture wt,50,50
EntityTexture water,wt
EntityType water,WATER

;wm=LoadTexture( "watermap.bmp")
;wl2=CreatePlane()
;PositionEntity wl2,1,1.9,1
;EntityAlpha wl2,0.8
;EntityTexture wl2,wm

terrp=CreatePlane()
PositionEntity terrp,1,0.1,1
EntityTexture terrp,tex
EntityType terrp,SCENE

;tlight1=CreateLight(2)
;LightColor tlight1,255,194,14


;skyp=CreatePlane()
;PositionEntity skyp,1,70,1
;skypt=LoadTexture("cloud_2.bmp")
;ScaleTexture skypt,1000,1000
;EntityFX skyp,1
;EntityTexture skyp,skypt

;sky=CreateSphere(32)
;ScaleEntity sky,300,300,300
;skyt=LoadTexture("cloud_2.bmp")
;ScaleTexture skyt,1000,1000
;EntityAlpha sky,.5
;EntityFX sky,1
;EntityTexture sky,skyt
;ScaleTexture skyt,50,50
;FlipMesh sky

carch=CreateSphere(32)
EntityColor carch,0,255,0

car=LoadMesh("jeep.3ds")
tlight=LoadTexture("jeep1l.jpg")
reglight=LoadTexture("jeep1.jpg")
;RotateEntity car,40,0,50
ScaleMesh car,1,1,-1
FlipMesh car
FitMesh car,-1.5,-1,-3,3,2,6
PositionEntity car,0,15,0
;EntityShininess car,1
EntityType car,BODY

;PositionEntity tlight1,EntityX(car)-3,EntityY(car),EntityZ(car)-1

;Global wheels[4]

cnt=1
For z#=1.5 To -1.5 Step -3
For x#=-1 To 1 Step 2
	;wheels[cnt]=CreateSphere( 8,car )
	wheels[cnt]=LoadMesh("wheel.3ds",car )
	EntityAlpha wheels[cnt],1
	ScaleEntity wheels[cnt],.35,.35,.35
	EntityRadius wheels[cnt],.7
	PositionEntity wheels[cnt],x,-1.5,z
	EntityType wheels[cnt],WHEEL
	cnt=cnt+1
Next
Next



light=CreateLight()
TurnEntity light,45,45,0

target=CreatePivot( car )
PositionEntity target,0,5,-12

camera=CreateCamera()
PositionEntity camera,1000,1000,1000
	CameraClsColor camera,0,192,255
	;CameraFogColor camera,0,192,255
	CameraRange camera,1,3000
	CameraZoom camera,zp#
	CameraFogMode camera,1
	CameraFogMode camera,1
CameraFogRange camera,0,750
CameraFogColor camera,222,252,255

;cam2=CreateCamera()
;PositionEntity cam2,0,300,0

;CameraViewport cam2,100,GraphicsHeight(),GraphicsWidth()-100,GraphicsHeight()-100
AmbientLight 255,255,255



speed#=0
x_vel#=0:prev_x#=EntityX( car )
y_vel#=0:prev_y#=EntityY( car )
z_vel#=0:prev_z#=EntityZ( car )




	;Repeat
	
	;Repeat
	;	elapsed = MilliSecs () - time
	;Until elapsed

	;ticks = elapsed / period
	
	;tween# = Float (elapsed Mod period) / Float (period)
	
;	For framelimit = 1 To ticks
;		If framelimit = ticks Then CaptureWorld
;		time = time + period
		;UpdateGame ()
		;UpdateWorld
		;PositionEntity water, Sin (time * 0.01) * 10, EntityY (water) + (Sin (time * 0.05) * 0.5) * 0.2, Cos (time * 0.02) * 10
;		Next
	

	


While Not KeyHit(1)
	If EntityCollided(car,DRAG) 
TurnEntity car,0,0,3
EndIf
	;AnimateMD2 dragon,1,.05,f1,f2
;If EntityInView ( dragon,camera )=True
;start=1-start 
 ;AnimateMD2 dragon,1,0.1,32,46
;EndIf

;PositionEntity water, Sin (time * 0.01) * 10, EntityY (water) + (Sin (time * 0.05) * 0.5) * 0.2, Cos (time * 0.02) * 10


Dim Vertex.Vertices(VertexCount)

For A=0 To VertexCount-1
Vertex(a) = New Vertices
Vertex(a)\x#=VertexX#(surface,a)
Vertex(a)\y#=VertexY#(surface,a)
Vertex(a)\z#=VertexZ#(surface,a)
Next
Repeat

	;align car to wheels
	zx#=(EntityX( wheels[2],True )+EntityX( wheels[4],True ))/2
	zx=zx-(EntityX( wheels[1],True )+EntityX( wheels[3],True ))/2
	zy#=(EntityY( wheels[2],True )+EntityY( wheels[4],True ))/2
	zy=zy-(EntityY( wheels[1],True )+EntityY( wheels[3],True ))/2
	zz#=(EntityZ( wheels[2],True )+EntityZ( wheels[4],True ))/2
	zz=zz-(EntityZ( wheels[1],True )+EntityZ( wheels[3],True ))/2
	AlignToVector car,zx,zy,zz,1
	
	zx#=(EntityX( wheels[1],True )+EntityX( wheels[2],True ))/2
	zx=zx-(EntityX( wheels[3],True )+EntityX( wheels[4],True ))/2
	zy#=(EntityY( wheels[1],True )+EntityY( wheels[2],True ))/2
	zy=zy-(EntityY( wheels[3],True )+EntityY( wheels[4],True ))/2
	zz#=(EntityZ( wheels[1],True )+EntityZ( wheels[2],True ))/2
	zz=zz-(EntityZ( wheels[3],True )+EntityZ( wheels[4],True ))/2
	AlignToVector car,zx,zy,zz,3
	
	;calculate car velocities	
	cx#=EntityX( car ):x_vel=cx-prev_x:prev_x=cx
	cy#=EntityY( car ):y_vel=cy-prev_y:prev_y=cy
	cz#=EntityZ( car ):z_vel=cz-prev_z:prev_z=cz
	
	;resposition wheels
	cnt=1
	For z=1.5 To -1.5 Step -3
	For x=-1 To 1 Step 2
;		PositionEntity wheels[cnt],0,0,0
;		ResetEntity wheels[cnt]
		PositionEntity wheels[cnt],x,-1,z
		cnt=cnt+1
	Next
	Next
	
	;car lights
	;PositionEntity tlight,EntityX(car),EntityY(car),EntityZ(car)

;water


	

;dragon
PositionEntity dragonb,EntityX(dragon),EntityY(dragon),EntityZ(dragon)
PositionEntity dragon,EntityX(dragonb),EntityY(dragonb),EntityZ(dragonb)
MoveEntity dragon,0,-0.7,0
TurnEntity dragon,0,0.1,0
;If EntityX(dragon)<-300
;d1=1
;d2=0
;Else If EntityX(dragon)>-300
;d1=1
;d2=-1
;Else If EntityX(dragon)<-250
;d1=1
;d2=0
;EndIf


TurnEntity dragon,0,d2,0
MoveEntity dragon,0,0,d1

;sky
	PositionEntity mesh_skybox,EntityX(camera,1),EntityY(camera,1),EntityZ(camera,1)
	TurnEntity mesh_skybox,0,0.01,0

	;move car
	If EntityCollided( car,WATERM )
	 MoveEntity car,2,0,2
	TurnEntity car,0,3,1
	EndIf
	
	If EntityCollided(car,PLANE)
	 toplane=1 EntityColor car,255,255,255
	EndIf
	
	If EntityRoll#(car)>75
	EntityColor car,10,10,10
	toplane=1
	EndIf
	;cam2 control
	;PositionEntity cam2,EntityX(car),800,EntityZ(car)
	;PositionEntity carch,EntityX(car),750,EntityZ(car) 
	
	;PositionEntity sky,EntityX(car),EntityY(car),EntityZ(car)
	MoveEntity water,0.01,0,0.08
	
	If EntityCollided( car,SCENE )
	If KeyDown(54)
		speed1=speed1+0.4
			If speed1>6 speed1=6
			If KeyDown(203) TurnEntity car,0,3,0:;rotate
	        If KeyDown(205) TurnEntity car,0,-3,0
			EndIf
	If KeyDown(200)
		;EntityTexture car,reglight
	;PlaySound s12
			speed=speed+.02
			;If speed>1.1 speed=speed+0.1
			If speed>1.1 speed=1.1
			;If speed>3 speed=speed+0.09
			;If speed>5 speed=speed+0.03
			If KeyDown(203) TurnEntity car,0,3,0
	        If KeyDown(205) TurnEntity car,0,-3,0
		Else If KeyDown(208)
		;EntityTexture car,tlight
			speed=speed-.02
			If speed<-.5 speed=-.5
		Else
			speed=speed*.9
		
		;Else
		;	speed=speed*.9

		EndIf
	;RPM
If KeyHit(2)
PlaySound s12
;s1=PlayMusic("sound/slow one high RPM.mp3")
ChannelPlaying(s12)=0 MoveEntity car,0,0,20
EndIf

		
		MoveEntity car,0,0,speed
		TranslateEntity car,0,GRAVITY,0
	Else
		TranslateEntity car,x_vel,y_vel+GRAVITY,z_vel
	EndIf
	
	
	

	;update camera
	If speed>=0	
		dx#=EntityX( target,True )-EntityX( camera )
		dy#=EntityY( target,True )-EntityY( camera )
		dz#=EntityZ( target,True )-EntityZ( camera )
		TranslateEntity camera,dx*.1,dy*.1,dz*.1
	EndIf
	PointEntity camera,car
	;PointEntity cam2,car
	
	
    UpdateWater()


	UpdateWorld

	RenderWorld
	Color 0,255,0
	Text 0,0,"Coordinates Car"
	Text 0,20," X : "+EntityX(car)
	Text 0,40," Y : "+EntityY(car)
	Text 0,60," Z : "+EntityZ(car)
	Text 150,20,"Roll "+EntityRoll#(car)
	Text 150,40,"Yaw "+EntityYaw#(car)
	Text 150,60,"Pitch "+EntityPitch#(car)
	Text 275,0,"Coordinates Dragon"
	Text 275,20," X : "+EntityX(dragon)
	Text 275,40," Y : "+EntityY(dragon)
	Text 275,60," Z : "+EntityZ(dragon)
	Text 400,20,"Roll "+EntityRoll#(dragon)
	Text 400,40,"Yaw "+EntityYaw#(dragon)
	Text 400,60,"Pitch "+EntityPitch#(dragon)
	Text  0,70,"Car Speed : "+speed

	
	Flip
		
	
Wend

End

		Function UpdateWater()
; Create a wave effect by moving all the vertices in the mesh up and down using Sin
; Try editing:
; Freq#=MilliSecs()/10 
;                   ^ The Bigger the divide, the slower the water moves
; Vertex(a)\z#=Sin(freq+Vertex(a)\x#*300+Vertex(a)\y#*400)*1.125
;                                                         ^ The Bigger the Multiply The Higher 
;                                                           the waves will be, lower = smaller

For a=0 To VertexCount-1 
Freq#=MilliSecs()/10
Vertex(a)\z#=Sin(freq+Vertex(a)\x#*300+Vertex(a)\y#*400)*1.125
VertexCoords surface,a,Vertex(a)\x#,Vertex(a)\y#,Vertex(a)\z#
Next
UpdateNormals watermesh

End Function




Matty(Posted 2008) [#2]
For A=0 To VertexCount-1
Vertex(a) = New Vertices
Vertex(a)\x#=VertexX#(surface,a)
Vertex(a)\y#=VertexY#(surface,a)
Vertex(a)\z#=VertexZ#(surface,a)
Next
Repeat

;WHERE IS YOUR UNTIL / FOREVER


You are missing an until or forever statement after the repeat statement in your code (look for section as shown here)


Oiduts Studios(Posted 2008) [#3]
thank you for the help! I tried putting in the statements and that didnt work so i just took out the repeat and it works just find.