Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 10.01.2009, 20:33   #1
Sashka007
ПроЭктировщик
 
Аватар для Sashka007
 
Регистрация: 11.11.2008
Адрес: Тольятти
Сообщений: 153
Написано 10 полезных сообщений
(для 24 пользователей)
Не могу разобраться с TYPE

вот мой исходный код, в первом нормально все:
Include "AShadowBBinclude/fps.bb"
Include "AShadowBBinclude/Ashadow.bb"

set = ReadFile("media\config.ini")
with = ReadLine(set)
heith = ReadLine(set)
bbb = ReadLine(set)
www = ReadLine(set)
CloseFile (set)

AGraphics3D with,heith,bbb,www
SetBuffer BackBuffer()
Global fntArial=LoadFont("Comic San MS",16,True)
PostProcessInit()
CreatePixelDistortion()
SetBumpShader  0, 0.15
SoftSelfShading=1


Type vehicles

Field inifile
Field loadpath$
Field loadpath_p$
Field loadwheelpath$
Field mass#
Field xweel#
Field zweel#
Field yweelfr#
Field yweelbac#
Field radius#
Field susp#
Field rest#
Field damping#
Field angfriction#
Field friction#
Field speed#
Field motor#
Field maxspeed#
Field smotorpth$
Field oborot#
Field accel
Field maxoborot#
Field trans
Field maxtrans
Field gas#

Field smotor
Field car_mesh
Field car_body
Field car_phys_mesh
Field Wheel_fr1_body
Field Wheel_fr1_mesh
Field Wheel_fr2_body
Field Wheel_fr2_mesh
Field Wheel_bac1_body
Field Wheel_bac1_mesh
Field Wheel_bac2_body
Field Wheel_bac2_mesh

End Type

;--------------------------------------create sky----------------------------------------------------
sky = CreateSphere(8)
skytex = LoadTexture("media\sky\sky.jpg")
EntityTexture sky, skytex
ScaleEntity sky,10000,10000,10000
FlipMesh sky   
EntityFX sky,1+8
RotateEntity sky,0,180,0

Type obl
Field obj
End Type

meshtt =  CreateSphere(20)
ScaleMesh meshtt,8000,8000,8000
PositionMesh meshtt,0,-3000,0
EntityAlpha meshtt,0
EntityShininess meshtt,1   

	For scount=1 To CountSurfaces(meshtt)
		surface = GetSurface(meshtt,scount)
		numverts=CountVertices(surface)-1
		For i=40 To numverts		
			x#=VertexX(surface,i)
			y#=VertexY(surface,i)
			z#=VertexZ(surface,i)
			tempball.obl = New obl
			tempball\obj = LoadMesh("t.b3d",meshtt)
			ddd = LoadTexture("media\sky\cloud2.jpg",2+1)
			TextureBlend ddd,3
			EntityTexture tempball\obj, ddd
			EntityFX tempball\obj,1
			bl#=Rnd(0,0.1)
			EntityAlpha tempball\obj,bl#
			ScaleEntity tempball\obj,70,70,70
			PositionEntity tempball\obj,x#,y#,z#
		Next
	Next

;--------------------------------create water----------------------------------------
gradtex= LoadTexture("gradW.jpg", 128+2);
tex=LoadTexture("Wbump.jpg",9)
ScaleTexture tex, 0.005,0.005

WaterState\X=-5000
WaterState\Y=0
WaterState\Z=-5000
WaterState\ScaleX = 10000
WaterState\ScaleY = 10000
WaterState\ScaleZ = 10000

WaterState\ReflectSizeW = 256
WaterState\ReflectSizeH = 256

WaterState\WaterColorR = 255
WaterState\WaterColorG = 255
WaterState\WaterColorB = 255

If Gradient WaterState\GradientCubeMap = gradtex

WaterState\RefractTexture = 0

If BUMPENVMAP_SUPPORT
WaterState\BumpTexture = tex
WaterState\BumpPower= 0.1
WaterState\Reflective=1
WaterState\BumpReflectOFF=0
WaterState\UnderWaterReflective=1
WaterState\Refractive=1
Else
WaterState\BumpTexture = 0
WaterState\BumpPower= 0
WaterState\Reflective=1
WaterState\UnderWaterReflective=1
WaterState\Refractive=0
EndIf

WaterPlane=ACreateRenderWater (1, WaterState)
uwt = CreatePlane()
PositionEntity uwt,0,-0.1,0
EntityAlpha uwt,0.7
EntityColor uwt,7,166,248
;Lights
	light=CreateSLight(1,500)
	RotateEntity light,60,95,0

;PX
PxCreateWorld(0, "")
pxSetGravity(0,-40,0)


level = ALoadMesh ("media\map\map.b3d")
PositionMesh level, 0,2,0
EntityAlpha level,0
surf = GetSurface (level,1)
in_mesh=BodyCreateMesh%(level)
FreeEntity level

level2 = ALoadMesh ("media\map\map2.b3d")
PositionMesh level2, 0,2,0
pxBodySetEntity(level2 , in_mesh)
EntityType level2,2

most = ALoadMesh ("media\map\most.b3d")
PositionMesh most, 0,1,0
in_most=BodyCreateMesh%(most)
pxBodySetEntity(most , in_most)
FreeEntity most

most2 = ALoadMesh ("media\map\most2.b3d")
PositionMesh most2, 0,1,0
EntityFX most2,1
pxBodySetEntity(most2 , in_most)
EntityType most2,2

;|--------------------------------------------------------------------------------------|
;|--------------------------------------------------------------------------------------|
;|-----------create_vehicles------------------------------------------------------|
;|--------------------------------------------------------------------------------------|
;|--------------------------------------------------------------------------------------|
;загрузка информации о транспорте
car.vehicles = New vehicles
car\inifile = ReadFile("media\HEMTT2\config.ini")

car\loadpath$ = ReadLine(car\inifile) 
car\loadpath_p$ = ReadLine(car\inifile)
car\loadwheelpath$ = ReadLine(car\inifile)
car\mass# = ReadLine(car\inifile) ;масса машины
car\xweel# = ReadLine(car\inifile) ;позиция колес по оси Х от тела машины
car\zweel# = ReadLine(car\inifile)  ;позиция колес по оси Z от тела машины
car\yweelfr# = ReadLine(car\inifile) ;позиция передних колес по оси Y от тела машины
car\yweelbac# = ReadLine(car\inifile) ;позиция задних колес по оси Y от тела машины
car\radius# = ReadLine(car\inifile) ;радиус физических колес
car\susp# = ReadLine(car\inifile) ;длина подвески
car\rest# = ReadLine(car\inifile) ;мягкость подвески
car\damping# = ReadLine(car\inifile) ;пружинность подвески
car\angfriction# = ReadLine(car\inifile) ;трение при повороте
car\friction# = ReadLine(car\inifile) ;трение не в повороте
car\speed# = ReadLine(car\inifile) ;начальная скорость
car\motor# = ReadLine(car\inifile) ;ускороение
car\maxspeed# = ReadLine(car\inifile) ;максимальная скорость
car\smotorpth$ = ReadLine(car\inifile)
car\oborot# = ReadLine(car\inifile)
car\accel = ReadLine(car\inifile)
car\maxoborot# = ReadLine(car\inifile) ;обороты
car\trans = ReadLine(car\inifile)
car\maxtrans = ReadLine(car\inifile)
car\gas# = 400
CloseFile (car\inifile)


car\smotor = Load3DSound(car\smotorpth$)

;---------Create car------------
car\car_mesh = ALoadMesh(car\loadpath$)
ScaleMesh car\car_mesh,1.1,1.1,1.1
RotateEntity car\car_mesh ,90,0,0
PositionEntity car\car_mesh ,0,8,0
EntityShininess car\car_mesh,1

car\car_phys_mesh = ALoadMesh(car\loadpath_p$)
ScaleMesh car\car_phys_mesh,1.1,1.1,1.1
RotateEntity car\car_phys_mesh ,0,90,0
PositionEntity car\car_phys_mesh ,0,8,0
EntityAlpha car\car_phys_mesh,0

car\car_body = BodyCreateHull(car\car_phys_mesh, car\mass#)
pxBodySetPosition (car\car_body, 2000, 400 ,0)
pxBodySetRotation (car\car_body, 0, 0, 0)
pxBodySetCMassLocalPosition(car\car_body, 0, -3, 0)

;------- front wheel-----------
car\Wheel_fr1_body = pxWheelAddToBody(car\car_body, -car\xweel#, car\zweel#, car\yweelfr#)
pxWheelSetRadius(car\Wheel_fr1_body,  car\radius#)
pxWheelSetSuspension(car\Wheel_fr1_body,  car\susp#, car\rest#,  0.5)
car\wheel_fr1_mesh = ALoadMesh (car\loadwheelpath$)
RotateMesh car\wheel_fr1_mesh,0,180,0

car\Wheel_fr2_body = pxWheelAddToBody(car\car_body, car\xweel#,car\zweel#,car\yweelfr#)
pxWheelSetRadius(car\Wheel_fr2_body,  car\radius#)
pxWheelSetSuspension(car\Wheel_fr2_body,  car\susp#, car\rest#,  car\damping#)
car\wheel_fr2_mesh = ALoadMesh (car\loadwheelpath$)

;-------back wheel------------
car\Wheel_bac1_body = pxWheelAddToBody(car\car_body, -car\xweel#, car\zweel#, car\yweelbac#)
pxWheelSetRadius(car\Wheel_bac1_body, car\radius#)
pxWheelSetSuspension(car\Wheel_bac1_body,  car\susp#, car\rest#,  car\damping#)
car\wheel_bac1_mesh = ALoadMesh(car\loadwheelpath$)
RotateMesh car\wheel_bac1_mesh,0,180,0

car\Wheel_bac2_body = pxWheelAddToBody(car\car_body, car\xweel#, car\zweel#, car\yweelbac#)
pxWheelSetRadius(car\Wheel_bac2_body,  car\radius#)
pxWheelSetSuspension(car\Wheel_bac2_body,  car\susp#, car\rest#,  car\damping#)
car\wheel_bac2_mesh =  ALoadMesh (car\loadwheelpath$)

pxWheelSetFrictionToSide(car\Wheel_fr1_body, car\angfriction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\angfriction#)
pxWheelSetFrictionToSide(car\Wheel_bac1_body, car\friction#)
pxWheelSetFrictionToSide(car\Wheel_bac2_body, car\friction#)

;Camera
d=0
piv = CreatePivot()
camera = CreateCamera(piv)
CameraClsColor camera,6,59,255
PositionEntity camera,0,0,-30
CameraRange camera,1,100000
CreateGlow camera, 130, 150 ,.3,0.3;CreateGlow camera, 200, 150 ,.35,.8
Ref_Glow_ON = 1
EntityType camera,1
EntityRadius camera,2

;#############
hero = CreateSphere()
PositionEntity hero,2000,200,0
EntityType hero,1
lister = CreateListener(camera,0.2,0.2,0.2)
LoopSound(car\smotor)
pmotor = EmitSound(car\smotor,car\car_mesh)

Tahometr=LoadImage("media\spidom.bmp")
MaskImage tahometr,46,32,0
allert = LoadImage("media\allert.bmp")
allertt = LoadImage("media\allert.bmp")

Collisions 1,2,2,3
;Main Loop
Repeat

pt#=pt#+.0005
PositionTexture tex, pt#, pt#

TurnEntity meshtt,0.05,0.05,0.05
For tempball.obl = Each obl
PointEntity tempball\obj,camera

If EntityY(tempball\obj)<-50 Then
HideEntity tempball\obj
Else
ShowEntity tempball\obj
EndIf
Next

If d = 0
If EntityCollided(hero,2)
MoveEntity hero,0,-0.5,0
Else 
MoveEntity hero,0,-2,0
EndIf

PositionEntity piv,EntityX(hero),EntityY(hero)+5,EntityZ(hero)
 mxs#=-MouseXSpeed()/4
 mys#=MouseYSpeed()/4
 mxa#=mxa#+mxs#
 mya#=mya#+mys#
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
RotateEntity piv,mya,mxa,0
RotateEntity hero,0,mxa,0
PositionEntity camera,0,0,0
If KeyDown(200) MoveEntity hero,0,0,1
If KeyDown(208) MoveEntity hero,0,0,-1
If KeyDown(205) MoveEntity hero,1,0,0
If KeyDown(203) MoveEntity hero,-1,0,0
EndIf




If d
PositionEntity hero ,EntityX(car\car_mesh),EntityY(car\car_mesh),EntityZ(car\car_mesh)
If Not EntityCollided(camera,2) 
PositionEntity camera,0,0,-30
EndIf
 mxs#=-MouseXSpeed()/4
 mys#=MouseYSpeed()/4
 mxa#=mxa#+mxs#
 mya#=mya#+mys#
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
RotateEntity piv,mya,mxa,0
PositionEntity piv,EntityX(car\car_mesh),EntityY(car\car_mesh),EntityZ(car\car_mesh)
RotateEntity sky,1,1,1
PositionEntity sky,EntityX(car\car_mesh),EntityY(car\car_mesh),EntityZ(car\car_mesh)
PositionEntity meshtt,EntityX(car\car_mesh),EntityY(car\car_mesh),EntityZ(car\car_mesh)




If KeyDown (205) Then 
ang = ang+2
pxWheelSetFrictionToSide(car\Wheel_fr1_body, car\angfriction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\angfriction#)
ElseIf  ang>0 Then
ang=ang-2
EndIf 
If KeyDown (203) Then 
ang = ang-2
pxWheelSetFrictionToSide(car\Wheel_fr1_body, car\angfriction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\angfriction#)
ElseIf  ang<0 Then
ang=ang+2
EndIf

If ang=0 Then
pxWheelSetFrictionToSide(car\Wheel_fr1_body,car\friction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\friction#)
EndIf

If motor<0 Then
pxWheelSetFrictionToSide(car\Wheel_fr1_body, car\friction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\friction#)
EndIf


If KeyDown (200) Then
If car\gas>0
car\speed# = car\speed#+car\oborot#/600
car\gas# = car\gas# - 0.005
EndIf
 ElseIf  car\speed#>0 Then
car\speed#=car\speed#-car\oborot#/1000
	pxWheelSetBrakeTorque(car\wheel_bac1_body,  1000)
	pxWheelSetBrakeTorque(car\wheel_bac2_body,  1000)
 EndIf 
If KeyDown (208) Then
car\speed# = car\speed#-car\oborot#/600
car\gas# = car\gas# - 0.005
 ElseIf  car\speed#<0 Then
car\speed#=car\speed#+car\motor#
 EndIf 

If car\speed#>car\maxspeed# car\speed# = car\maxspeed#
If car\speed#<-car\maxspeed# car\speed#= -car\maxspeed#

If KeyDown (200) Then
car\oborot# = car\oborot#+car\accel
If car\trans = 1 And car\oborot = 4000 Then
car\trans = 2
car\oborot = 2500
EndIf 
If car\trans = 2 And car\oborot = 4200 Then
car\trans = 3
car\oborot = 2600
EndIf 
If car\trans = 3 And car\oborot = 4500 Then
car\trans = 4
car\oborot = 2800
EndIf
 Else
car\oborot# = car\oborot#-car\accel
If car\trans = 4 And car\oborot = 2500 Then
car\trans = 3
car\oborot = 4000
EndIf 
If car\trans = 3 And car\oborot = 2300 Then
car\trans = 2
car\oborot = 3000
EndIf 
If car\trans = 2 And car\oborot = 2000 Then
car\trans = 1
car\oborot = 2700
EndIf
EndIf

If car\gas<0
	car\speed#=0
	car\oborot# = car\oborot#-50
	car\trans = 1
EndIf


If car\oborot#>car\maxoborot# car\oborot#=car\maxoborot#
If car\oborot#<2000 car\oborot#=2000
ChannelPitch pmotor,Int(car\oborot)*8


pxWheelSetMotorTorque(car\wheel_fr1_body, car\speed#)
pxWheelSetMotorTorque(car\wheel_fr2_body, car\speed#)

If ang>30 ang =30
If ang<-30 ang = -30
	pxWheelSetSteerAngle(car\wheel_fr1_body,  ang)
	pxWheelSetSteerAngle(car\wheel_fr2_body,  ang)

	pxWheelSetBrakeTorque(car\wheel_bac1_body,  1)
	pxWheelSetBrakeTorque(car\wheel_bac2_body,  1)
	
If KeyDown (57)
	pxWheelSetBrakeTorque(car\wheel_bac1_body,  800)
	pxWheelSetBrakeTorque(car\wheel_bac2_body,  800)
	car\speed#=0
	car\oborot# = car\oborot#-50
	car\trans = 1
EndIf
EndIf

If EntityDistance(hero, car\car_mesh) < 50 Then
If KeyHit(15) Then
d=1-d
End If 
End If
If EntityDistance(hero, car\car_mesh) > 50 Then
d=0
End If


time=MilliSecs ()
pxRenderPhysic(30,0)		
pxBodySetEntity(car\car_mesh, car\car_body)

MeshSetToWheel(car\wheel_fr1_mesh, car\wheel_fr1_body)
MeshSetToWheel(car\wheel_fr2_mesh, car\wheel_fr2_body)
MeshSetToWheel(car\wheel_bac1_mesh, car\wheel_bac1_body)
MeshSetToWheel(car\wheel_bac2_mesh, car\wheel_bac2_body)

New_time=MilliSecs ()-time
If KeyHit(2) Ref_Glow_ON=1-Ref_Glow_ON

UpdateWorld()
RenderWorld()
   AUpdateWater (camera)
   UpdateRefract camera
   PostProcess_Render camera
   LightColor light, 255, 255, 255
   AmbientLight 70,70,70
   frames=frames+1  
   If MilliSecs()-render_time=>1000  fps1=frames : frames=0 : render_time=MilliSecs()

If d
   DrawImage tahometr,GraphicsWidth() - 200,GraphicsHeight() -200 
  SetFont fntArial 
 Text GraphicsWidth() - 110,GraphicsHeight() -155, Ceil(pxWheelGetAxleSpeed(car\wheel_bac1_body))
 Text GraphicsWidth() - 130,GraphicsHeight() -115, Ceil(car\gas#)
If car\gas<10
DrawImage allert, GraphicsWidth() - 93,GraphicsHeight() -113
EndIf
 Text GraphicsWidth() - 68,GraphicsHeight() -115, car\trans
If car\oborot>3700
DrawImage allertt, GraphicsWidth() - 51,GraphicsHeight() -113
EndIf
EndIf

Flip 1
Until KeyHit(1)
End



Function BodyCreateHull%(mesh%, mass)

	Local nsurf = CountSurfaces(mesh)
	Local nvert = 0
	For ns = 1 To nsurf
		Local surf = GetSurface(mesh,ns)
		nvert = nvert + CountVertices(surf)
	Next
	     vbank = CreateBank(nvert*4*3)
	nv = 0
	For ns = 1 To nsurf
		surf = GetSurface(mesh,ns)
		nvv = CountVertices(surf)
		For nvc = 0 To nvv - 1
			 PokeFloat vbank,nv*12+0,VertexX(surf,nvc)
			 PokeFloat vbank,nv*12+4,VertexY(surf,nvc)
			 PokeFloat vbank,nv*12+8,VertexZ(surf,nvc)
			nv = nv+1
		Next
	Next
	Local bbb%= pxBodyCreateHull(vbank, nvert, mass)
	FreeBank vbank
	Return bbb
End Function

Function BodyCreateMesh(mesh%)

	nsurf = CountSurfaces(mesh)
	nvert = 0
	nface=0
	For ns = 1 To nsurf
		Local surf = GetSurface(mesh,ns)
		nface = nface+CountTriangles(surf)
		nvert = nvert +CountVertices(surf)
	Next

	fbank = CreateBank(nface*4*3)
	nf = 0
	vbank = CreateBank(nvert*4*3)
	nv = 0
	For ns = 1 To nsurf
		surf = GetSurface(mesh,ns)
		nfv = CountTriangles(surf)
		For nfc = 0 To nfv -1
			PokeInt fbank,nf*12+0,TriangleVertex(surf,nfc,0)
			PokeInt fbank,nf*12+4,TriangleVertex(surf,nfc,1)
			PokeInt fbank,nf*12+8,TriangleVertex(surf,nfc,2)
			nf=nf+1
		Next

		nvv = CountVertices(surf)
		For nvc = 0 To nvv - 1
			PokeFloat vbank,nv*12+0,VertexX(surf,nvc)
			PokeFloat vbank,nv*12+4,VertexY(surf,nvc)
			PokeFloat vbank,nv*12+8,VertexZ(surf,nvc)
			nv = nv+1
		Next
	Next
	bbb%=pxCreateTriMesh(vbank, fbank, nvert, nface, 0)
	FreeBank vbank
	FreeBank fbank
	Return bbb%
End Function

 Function MeshSetToWheel (mesh%, body%)
	pxWheelUpdateSpec(body,1)
	posX# = pxWheelGetPositionXSpec#(body%)
	posY# = pxWheelGetPositionYSpec#(body%)
	posZ# = pxWheelGetPositionZSpec#(body%)
	rotX# = pxWheelGetRotationPitchSpec(body%)
	rotY# = pxWheelGetRotationYawSpec(body%)
	rotZ# = pxWheelGetRotationRollSpec(body%)
	
	PositionEntity mesh, posX,posY,posZ
	RotateEntity mesh, rotX,rotY,rotZ
End Function
а вот второй, я хочу создать машину функцией, чтобы потом их несколько сделать:
Include "AShadowBBinclude/fps.bb"
Include "AShadowBBinclude/Ashadow.bb"

set = ReadFile("media\config.ini")
with = ReadLine(set)
heith = ReadLine(set)
bbb = ReadLine(set)
www = ReadLine(set)
CloseFile (set)

AGraphics3D with,heith,bbb,www
SetBuffer BackBuffer()
Global fntArial=LoadFont("Comic San MS",16,True)
PostProcessInit()
CreatePixelDistortion()
SetBumpShader  0, 0.15
SoftSelfShading=1


Type vehicles

Field inifile
Field loadpath$
Field loadpath_p$
Field loadwheelpath$
Field mass#
Field xweel#
Field zweel#
Field yweelfr#
Field yweelbac#
Field radius#
Field susp#
Field rest#
Field damping#
Field angfriction#
Field friction#
Field speed#
Field motor#
Field maxspeed#
Field smotorpth$
Field oborot#
Field accel
Field maxoborot#
Field trans
Field maxtrans
Field gas#

Field smotor
Field car_mesh
Field car_body
Field car_phys_mesh
Field Wheel_fr1_body
Field Wheel_fr1_mesh
Field Wheel_fr2_body
Field Wheel_fr2_mesh
Field Wheel_bac1_body
Field Wheel_bac1_mesh
Field Wheel_bac2_body
Field Wheel_bac2_mesh

End Type

;--------------------------------------create sky----------------------------------------------------
sky = CreateSphere(8)
skytex = LoadTexture("media\sky\sky.jpg")
EntityTexture sky, skytex
ScaleEntity sky,10000,10000,10000
FlipMesh sky   
EntityFX sky,1+8
RotateEntity sky,0,180,0

Type obl
Field obj
End Type

meshtt =  CreateSphere(20)
ScaleMesh meshtt,8000,8000,8000
PositionMesh meshtt,0,-3000,0
EntityAlpha meshtt,0
EntityShininess meshtt,1   

	For scount=1 To CountSurfaces(meshtt)
		surface = GetSurface(meshtt,scount)
		numverts=CountVertices(surface)-1
		For i=40 To numverts		
			x#=VertexX(surface,i)
			y#=VertexY(surface,i)
			z#=VertexZ(surface,i)
			tempball.obl = New obl
			tempball\obj = LoadMesh("t.b3d",meshtt)
			ddd = LoadTexture("media\sky\cloud2.jpg",2+1)
			TextureBlend ddd,3
			EntityTexture tempball\obj, ddd
			EntityFX tempball\obj,1
			bl#=Rnd(0,0.1)
			EntityAlpha tempball\obj,bl#
			ScaleEntity tempball\obj,70,70,70
			PositionEntity tempball\obj,x#,y#,z#
		Next
	Next

;--------------------------------create water----------------------------------------
gradtex= LoadTexture("gradW.jpg", 128+2);
tex=LoadTexture("Wbump.jpg",9)
ScaleTexture tex, 0.005,0.005

WaterState\X=-5000
WaterState\Y=0
WaterState\Z=-5000
WaterState\ScaleX = 10000
WaterState\ScaleY = 10000
WaterState\ScaleZ = 10000

WaterState\ReflectSizeW = 256
WaterState\ReflectSizeH = 256

WaterState\WaterColorR = 255
WaterState\WaterColorG = 255
WaterState\WaterColorB = 255

If Gradient WaterState\GradientCubeMap = gradtex

WaterState\RefractTexture = 0

If BUMPENVMAP_SUPPORT
WaterState\BumpTexture = tex
WaterState\BumpPower= 0.1
WaterState\Reflective=1
WaterState\BumpReflectOFF=0
WaterState\UnderWaterReflective=1
WaterState\Refractive=1
Else
WaterState\BumpTexture = 0
WaterState\BumpPower= 0
WaterState\Reflective=1
WaterState\UnderWaterReflective=1
WaterState\Refractive=0
EndIf

WaterPlane=ACreateRenderWater (1, WaterState)
uwt = CreatePlane()
PositionEntity uwt,0,-0.1,0
EntityAlpha uwt,0.7
EntityColor uwt,7,166,248
;Lights
	light=CreateSLight(1,500)
	RotateEntity light,60,95,0

;PX
PxCreateWorld(0, "")
pxSetGravity(0,-40,0)


level = ALoadMesh ("media\map\map.b3d")
PositionMesh level, 0,2,0
EntityAlpha level,0
surf = GetSurface (level,1)
in_mesh=BodyCreateMesh%(level)
FreeEntity level

level2 = ALoadMesh ("media\map\map2.b3d")
PositionMesh level2, 0,2,0
pxBodySetEntity(level2 , in_mesh)
EntityType level2,2

most = ALoadMesh ("media\map\most.b3d")
PositionMesh most, 0,1,0
in_most=BodyCreateMesh%(most)
pxBodySetEntity(most , in_most)
FreeEntity most

most2 = ALoadMesh ("media\map\most2.b3d")
PositionMesh most2, 0,1,0
EntityFX most2,1
pxBodySetEntity(most2 , in_most)
EntityType most2,2

;|--------------------------------------------------------------------------------------|
;|--------------------------------------------------------------------------------------|
;|-----------create_vehicles------------------------------------------------------|
;|--------------------------------------------------------------------------------------|
;|--------------------------------------------------------------------------------------|
Function create_vehicles()
;загрузка информации о транспорте
car.vehicles = New vehicles
car\inifile = ReadFile("media\HEMTT2\config.ini")

car\loadpath$ = ReadLine(car\inifile) 
car\loadpath_p$ = ReadLine(car\inifile)
car\loadwheelpath$ = ReadLine(car\inifile)
car\mass# = ReadLine(car\inifile) ;масса машины
car\xweel# = ReadLine(car\inifile) ;позиция колес по оси Х от тела машины
car\zweel# = ReadLine(car\inifile)  ;позиция колес по оси Z от тела машины
car\yweelfr# = ReadLine(car\inifile) ;позиция передних колес по оси Y от тела машины
car\yweelbac# = ReadLine(car\inifile) ;позиция задних колес по оси Y от тела машины
car\radius# = ReadLine(car\inifile) ;радиус физических колес
car\susp# = ReadLine(car\inifile) ;длина подвески
car\rest# = ReadLine(car\inifile) ;мягкость подвески
car\damping# = ReadLine(car\inifile) ;пружинность подвески
car\angfriction# = ReadLine(car\inifile) ;трение при повороте
car\friction# = ReadLine(car\inifile) ;трение не в повороте
car\speed# = ReadLine(car\inifile) ;начальная скорость
car\motor# = ReadLine(car\inifile) ;ускороение
car\maxspeed# = ReadLine(car\inifile) ;максимальная скорость
car\smotorpth$ = ReadLine(car\inifile)
car\oborot# = ReadLine(car\inifile)
car\accel = ReadLine(car\inifile)
car\maxoborot# = ReadLine(car\inifile) ;обороты
car\trans = ReadLine(car\inifile)
car\maxtrans = ReadLine(car\inifile)
car\gas# = 400
CloseFile (car\inifile)


car\smotor = Load3DSound(car\smotorpth$)

;---------Create car------------
car\car_mesh = ALoadMesh(car\loadpath$)
ScaleMesh car\car_mesh,1.1,1.1,1.1
RotateEntity car\car_mesh ,90,0,0
PositionEntity car\car_mesh ,0,8,0
EntityShininess car\car_mesh,1

car\car_phys_mesh = ALoadMesh(car\loadpath_p$)
ScaleMesh car\car_phys_mesh,1.1,1.1,1.1
RotateEntity car\car_phys_mesh ,0,90,0
PositionEntity car\car_phys_mesh ,0,8,0
EntityAlpha car\car_phys_mesh,0

car\car_body = BodyCreateHull(car\car_phys_mesh, car\mass#)
pxBodySetPosition (car\car_body, 2000, 400 ,0)
pxBodySetRotation (car\car_body, 0, 0, 0)
pxBodySetCMassLocalPosition(car\car_body, 0, -3, 0)

;------- front wheel-----------
car\Wheel_fr1_body = pxWheelAddToBody(car\car_body, -car\xweel#, car\zweel#, car\yweelfr#)
pxWheelSetRadius(car\Wheel_fr1_body,  car\radius#)
pxWheelSetSuspension(car\Wheel_fr1_body,  car\susp#, car\rest#,  0.5)
car\wheel_fr1_mesh = ALoadMesh (car\loadwheelpath$)
RotateMesh car\wheel_fr1_mesh,0,180,0

car\Wheel_fr2_body = pxWheelAddToBody(car\car_body, car\xweel#,car\zweel#,car\yweelfr#)
pxWheelSetRadius(car\Wheel_fr2_body,  car\radius#)
pxWheelSetSuspension(car\Wheel_fr2_body,  car\susp#, car\rest#,  car\damping#)
car\wheel_fr2_mesh = ALoadMesh (car\loadwheelpath$)

;-------back wheel------------
car\Wheel_bac1_body = pxWheelAddToBody(car\car_body, -car\xweel#, car\zweel#, car\yweelbac#)
pxWheelSetRadius(car\Wheel_bac1_body, car\radius#)
pxWheelSetSuspension(car\Wheel_bac1_body,  car\susp#, car\rest#,  car\damping#)
car\wheel_bac1_mesh = ALoadMesh(car\loadwheelpath$)
RotateMesh car\wheel_bac1_mesh,0,180,0

car\Wheel_bac2_body = pxWheelAddToBody(car\car_body, car\xweel#, car\zweel#, car\yweelbac#)
pxWheelSetRadius(car\Wheel_bac2_body,  car\radius#)
pxWheelSetSuspension(car\Wheel_bac2_body,  car\susp#, car\rest#,  car\damping#)
car\wheel_bac2_mesh =  ALoadMesh (car\loadwheelpath$)

pxWheelSetFrictionToSide(car\Wheel_fr1_body, car\angfriction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\angfriction#)
pxWheelSetFrictionToSide(car\Wheel_bac1_body, car\friction#)
pxWheelSetFrictionToSide(car\Wheel_bac2_body, car\friction#)
end Function

create_vehicles()

;Camera
d=0
piv = CreatePivot()
camera = CreateCamera(piv)
CameraClsColor camera,6,59,255
PositionEntity camera,0,0,-30
CameraRange camera,1,100000
CreateGlow camera, 130, 150 ,.3,0.3;CreateGlow camera, 200, 150 ,.35,.8
Ref_Glow_ON = 1
EntityType camera,1
EntityRadius camera,2

;#############
hero = CreateSphere()
PositionEntity hero,2000,200,0
EntityType hero,1
lister = CreateListener(camera,0.2,0.2,0.2)
LoopSound(car\smotor)
pmotor = EmitSound(car\smotor,car\car_mesh)

Tahometr=LoadImage("media\spidom.bmp")
MaskImage tahometr,46,32,0
allert = LoadImage("media\allert.bmp")
allertt = LoadImage("media\allert.bmp")

Collisions 1,2,2,3
;Main Loop
Repeat

pt#=pt#+.0005
PositionTexture tex, pt#, pt#

TurnEntity meshtt,0.05,0.05,0.05
For tempball.obl = Each obl
PointEntity tempball\obj,camera

If EntityY(tempball\obj)<-50 Then
HideEntity tempball\obj
Else
ShowEntity tempball\obj
EndIf
Next

If d = 0
If EntityCollided(hero,2)
MoveEntity hero,0,-0.5,0
Else 
MoveEntity hero,0,-2,0
EndIf

PositionEntity piv,EntityX(hero),EntityY(hero)+5,EntityZ(hero)
 mxs#=-MouseXSpeed()/4
 mys#=MouseYSpeed()/4
 mxa#=mxa#+mxs#
 mya#=mya#+mys#
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
RotateEntity piv,mya,mxa,0
RotateEntity hero,0,mxa,0
PositionEntity camera,0,0,0
If KeyDown(200) MoveEntity hero,0,0,1
If KeyDown(208) MoveEntity hero,0,0,-1
If KeyDown(205) MoveEntity hero,1,0,0
If KeyDown(203) MoveEntity hero,-1,0,0
EndIf




If d
PositionEntity hero ,EntityX(car\car_mesh),EntityY(car\car_mesh),EntityZ(car\car_mesh)
If Not EntityCollided(camera,2) 
PositionEntity camera,0,0,-30
EndIf
 mxs#=-MouseXSpeed()/4
 mys#=MouseYSpeed()/4
 mxa#=mxa#+mxs#
 mya#=mya#+mys#
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
RotateEntity piv,mya,mxa,0
PositionEntity piv,EntityX(car\car_mesh),EntityY(car\car_mesh),EntityZ(car\car_mesh)
RotateEntity sky,1,1,1
PositionEntity sky,EntityX(car\car_mesh),EntityY(car\car_mesh),EntityZ(car\car_mesh)
PositionEntity meshtt,EntityX(car\car_mesh),EntityY(car\car_mesh),EntityZ(car\car_mesh)




If KeyDown (205) Then 
ang = ang+2
pxWheelSetFrictionToSide(car\Wheel_fr1_body, car\angfriction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\angfriction#)
ElseIf  ang>0 Then
ang=ang-2
EndIf 
If KeyDown (203) Then 
ang = ang-2
pxWheelSetFrictionToSide(car\Wheel_fr1_body, car\angfriction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\angfriction#)
ElseIf  ang<0 Then
ang=ang+2
EndIf

If ang=0 Then
pxWheelSetFrictionToSide(car\Wheel_fr1_body,car\friction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\friction#)
EndIf

If motor<0 Then
pxWheelSetFrictionToSide(car\Wheel_fr1_body, car\friction#)
pxWheelSetFrictionToSide(car\Wheel_fr2_body, car\friction#)
EndIf


If KeyDown (200) Then
If car\gas>0
car\speed# = car\speed#+car\oborot#/600
car\gas# = car\gas# - 0.005
EndIf
 ElseIf  car\speed#>0 Then
car\speed#=car\speed#-car\oborot#/1000
	pxWheelSetBrakeTorque(car\wheel_bac1_body,  1000)
	pxWheelSetBrakeTorque(car\wheel_bac2_body,  1000)
 EndIf 
If KeyDown (208) Then
car\speed# = car\speed#-car\oborot#/600
car\gas# = car\gas# - 0.005
 ElseIf  car\speed#<0 Then
car\speed#=car\speed#+car\motor#
 EndIf 

If car\speed#>car\maxspeed# car\speed# = car\maxspeed#
If car\speed#<-car\maxspeed# car\speed#= -car\maxspeed#

If KeyDown (200) Then
car\oborot# = car\oborot#+car\accel
If car\trans = 1 And car\oborot = 4000 Then
car\trans = 2
car\oborot = 2500
EndIf 
If car\trans = 2 And car\oborot = 4200 Then
car\trans = 3
car\oborot = 2600
EndIf 
If car\trans = 3 And car\oborot = 4500 Then
car\trans = 4
car\oborot = 2800
EndIf
 Else
car\oborot# = car\oborot#-car\accel
If car\trans = 4 And car\oborot = 2500 Then
car\trans = 3
car\oborot = 4000
EndIf 
If car\trans = 3 And car\oborot = 2300 Then
car\trans = 2
car\oborot = 3000
EndIf 
If car\trans = 2 And car\oborot = 2000 Then
car\trans = 1
car\oborot = 2700
EndIf
EndIf

If car\gas<0
	car\speed#=0
	car\oborot# = car\oborot#-50
	car\trans = 1
EndIf


If car\oborot#>car\maxoborot# car\oborot#=car\maxoborot#
If car\oborot#<2000 car\oborot#=2000
ChannelPitch pmotor,Int(car\oborot)*8


pxWheelSetMotorTorque(car\wheel_fr1_body, car\speed#)
pxWheelSetMotorTorque(car\wheel_fr2_body, car\speed#)

If ang>30 ang =30
If ang<-30 ang = -30
	pxWheelSetSteerAngle(car\wheel_fr1_body,  ang)
	pxWheelSetSteerAngle(car\wheel_fr2_body,  ang)

	pxWheelSetBrakeTorque(car\wheel_bac1_body,  1)
	pxWheelSetBrakeTorque(car\wheel_bac2_body,  1)
	
If KeyDown (57)
	pxWheelSetBrakeTorque(car\wheel_bac1_body,  800)
	pxWheelSetBrakeTorque(car\wheel_bac2_body,  800)
	car\speed#=0
	car\oborot# = car\oborot#-50
	car\trans = 1
EndIf
EndIf

If EntityDistance(hero, car\car_mesh) < 50 Then
If KeyHit(15) Then
d=1-d
End If 
End If
If EntityDistance(hero, car\car_mesh) > 50 Then
d=0
End If


time=MilliSecs ()
pxRenderPhysic(30,0)		
pxBodySetEntity(car\car_mesh, car\car_body)

MeshSetToWheel(car\wheel_fr1_mesh, car\wheel_fr1_body)
MeshSetToWheel(car\wheel_fr2_mesh, car\wheel_fr2_body)
MeshSetToWheel(car\wheel_bac1_mesh, car\wheel_bac1_body)
MeshSetToWheel(car\wheel_bac2_mesh, car\wheel_bac2_body)

New_time=MilliSecs ()-time
If KeyHit(2) Ref_Glow_ON=1-Ref_Glow_ON

UpdateWorld()
RenderWorld()
   AUpdateWater (camera)
   UpdateRefract camera
   PostProcess_Render camera
   LightColor light, 255, 255, 255
   AmbientLight 70,70,70
   frames=frames+1  
   If MilliSecs()-render_time=>1000  fps1=frames : frames=0 : render_time=MilliSecs()

If d
   DrawImage tahometr,GraphicsWidth() - 200,GraphicsHeight() -200 
  SetFont fntArial 
 Text GraphicsWidth() - 110,GraphicsHeight() -155, Ceil(pxWheelGetAxleSpeed(car\wheel_bac1_body))
 Text GraphicsWidth() - 130,GraphicsHeight() -115, Ceil(car\gas#)
If car\gas<10
DrawImage allert, GraphicsWidth() - 93,GraphicsHeight() -113
EndIf
 Text GraphicsWidth() - 68,GraphicsHeight() -115, car\trans
If car\oborot>3700
DrawImage allertt, GraphicsWidth() - 51,GraphicsHeight() -113
EndIf
EndIf

Flip 1
Until KeyHit(1)
End



Function BodyCreateHull%(mesh%, mass)

	Local nsurf = CountSurfaces(mesh)
	Local nvert = 0
	For ns = 1 To nsurf
		Local surf = GetSurface(mesh,ns)
		nvert = nvert + CountVertices(surf)
	Next
	     vbank = CreateBank(nvert*4*3)
	nv = 0
	For ns = 1 To nsurf
		surf = GetSurface(mesh,ns)
		nvv = CountVertices(surf)
		For nvc = 0 To nvv - 1
			 PokeFloat vbank,nv*12+0,VertexX(surf,nvc)
			 PokeFloat vbank,nv*12+4,VertexY(surf,nvc)
			 PokeFloat vbank,nv*12+8,VertexZ(surf,nvc)
			nv = nv+1
		Next
	Next
	Local bbb%= pxBodyCreateHull(vbank, nvert, mass)
	FreeBank vbank
	Return bbb
End Function

Function BodyCreateMesh(mesh%)

	nsurf = CountSurfaces(mesh)
	nvert = 0
	nface=0
	For ns = 1 To nsurf
		Local surf = GetSurface(mesh,ns)
		nface = nface+CountTriangles(surf)
		nvert = nvert +CountVertices(surf)
	Next

	fbank = CreateBank(nface*4*3)
	nf = 0
	vbank = CreateBank(nvert*4*3)
	nv = 0
	For ns = 1 To nsurf
		surf = GetSurface(mesh,ns)
		nfv = CountTriangles(surf)
		For nfc = 0 To nfv -1
			PokeInt fbank,nf*12+0,TriangleVertex(surf,nfc,0)
			PokeInt fbank,nf*12+4,TriangleVertex(surf,nfc,1)
			PokeInt fbank,nf*12+8,TriangleVertex(surf,nfc,2)
			nf=nf+1
		Next

		nvv = CountVertices(surf)
		For nvc = 0 To nvv - 1
			PokeFloat vbank,nv*12+0,VertexX(surf,nvc)
			PokeFloat vbank,nv*12+4,VertexY(surf,nvc)
			PokeFloat vbank,nv*12+8,VertexZ(surf,nvc)
			nv = nv+1
		Next
	Next
	bbb%=pxCreateTriMesh(vbank, fbank, nvert, nface, 0)
	FreeBank vbank
	FreeBank fbank
	Return bbb%
End Function

 Function MeshSetToWheel (mesh%, body%)
	pxWheelUpdateSpec(body,1)
	posX# = pxWheelGetPositionXSpec#(body%)
	posY# = pxWheelGetPositionYSpec#(body%)
	posZ# = pxWheelGetPositionZSpec#(body%)
	rotX# = pxWheelGetRotationPitchSpec(body%)
	rotY# = pxWheelGetRotationYawSpec(body%)
	rotZ# = pxWheelGetRotationRollSpec(body%)
	
	PositionEntity mesh, posX,posY,posZ
	RotateEntity mesh, rotX,rotY,rotZ
End Function
Только потом, все, что связанно с типом car, не считая того что в функции создания написанно, пишет что этот тип не найден

Последний раз редактировалось Sashka007, 10.01.2009 в 22:49.
(Offline)
 
Ответить с цитированием
Старый 10.01.2009, 22:11   #2
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Не могу разобраться с TYPE

ээ чувак, ты б попроще пример собрал)
весь твой код вряд ли кто смотреть будет, урежь всё, что не связано с проблемой.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
ABTOMAT (12.01.2009), avel (21.01.2009), Sashka007 (10.01.2009)
Старый 10.01.2009, 22:19   #3
Sashka007
ПроЭктировщик
 
Аватар для Sashka007
 
Регистрация: 11.11.2008
Адрес: Тольятти
Сообщений: 153
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Не могу разобраться с TYPE

Нет проблем
(Offline)
 
Ответить с цитированием
Старый 11.01.2009, 21:23   #4
Sashka007
ПроЭктировщик
 
Аватар для Sashka007
 
Регистрация: 11.11.2008
Адрес: Тольятти
Сообщений: 153
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Не могу разобраться с TYPE

А кто админ в этом разделе? Если не трудно, удалите первый пост, а то у меня не удаляет
Решил первую проблему, а как дапустим сделать так, есть герой и несколько тайпов car, как определить тот тайп, рядом с которым находишься и потом работать с ним?
(Offline)
 
Ответить с цитированием
Старый 11.01.2009, 21:27   #5
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Не могу разобраться с TYPE

используй before и after, подробнее в справке. А хотя щас догнал в чем вопрос, тут нужно проверять по дистанции перебором по всем car'ам приблизился ли игрок на нужную дистанцию к машине. Если приблизился, тогда производить нужные действия, все проста.
(Offline)
 
Ответить с цитированием
Старый 11.01.2009, 21:31   #6
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Не могу разобраться с TYPE

2 H@NON:
несколько тайпов car
Насколько помню, After/Before перебирает не тайпы а объекты внутри одного тайпа

Самое очевидное решение - полный перебор, но это тормозззззааааа...
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 11.01.2009, 21:49   #7
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Не могу разобраться с TYPE

Сообщение от Sashka007 Посмотреть сообщение
А кто админ в этом разделе? Если не трудно, удалите первый пост, а то у меня не удаляет
Нажми в посте кнопку "правка" и удали что тебе надо.. Удалить весь первый пост можно только с темой.
__________________
(Offline)
 
Ответить с цитированием
Старый 11.01.2009, 22:13   #8
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Не могу разобраться с TYPE

Сообщение от Ize'g0re Посмотреть сообщение
2 H@NON:

Насколько помню, After/Before перебирает не тайпы а объекты внутри одного тайпа

Самое очевидное решение - полный перебор, но это тормозззззааааа...
спасибо за разьяснение, я сначало так и понял что у него герой и машинка в одном типе (бегло просматривал), но пригляделся и исправился На счет очевидного, перебор не всегда тормоза, можно ведь растянуть его и проверять всего несколько объектов за итерацию.
(Offline)
 
Ответить с цитированием
Старый 11.01.2009, 22:27   #9
Sashka007
ПроЭктировщик
 
Аватар для Sashka007
 
Регистрация: 11.11.2008
Адрес: Тольятти
Сообщений: 153
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Не могу разобраться с TYPE

Ну машин около героя максимум 20 будет, т. к. я делаю как в гта, генерацию машин, если я ухожу от машины далеко, она исчезает и генерируется другая рядом, а можно подробнее об тех командах и примерчик
(Offline)
 
Ответить с цитированием
Старый 11.01.2009, 23:13   #10
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Re: Не могу разобраться с TYPE

for car.vehicle = each vehicle
if entitydistance player,car\mesh=<5
...
endif
next
(Offline)
 
Ответить с цитированием
Старый 12.01.2009, 19:06   #11
Sashka007
ПроЭктировщик
 
Аватар для Sashka007
 
Регистрация: 11.11.2008
Адрес: Тольятти
Сообщений: 153
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Не могу разобраться с TYPE

У меня будет несколько машин, NiTE, а в твоем коде:
For car.vehicles = each car
If entitydistan player,car\mesh <5
...
EndIf
Next
Блитц обращается ко всем тайпам car, а мне надо что бы он обращался только к однай машине, которая рядам, как это сделать?
(Offline)
 
Ответить с цитированием
Старый 12.01.2009, 19:52   #12
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Не могу разобраться с TYPE

Сообщение от Sashka007 Посмотреть сообщение
У меня будет несколько машин, NiTE, а в твоем коде:
For car.vehicles = each car
If entitydistan player,car\mesh <5
...
EndIf
Next
Блитц обращается ко всем тайпам car, а мне надо что бы он обращался только к однай машине, которая рядам, как это сделать?

строка:

If entitydistan player,car\mesh <5
тебе ни о чём не говорит?
Не нравится что обратится ко всем что меньше 5 - так сравнивай расстояние и в конце обратись к той машине, расстояние до которой наименьшее.
Уйти от полного перебора в данном случае - никак.

Прежде чем делать "как в ГТА", изучи азы, чтобы не задавать тупые вопросы при создании сложных вещей!

Уже давно хотел высказаться по поводу твоего незнания основ, да всё думал, что ума наберёшься.
Простите за грубость
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tormoz (12.01.2009)
Старый 12.01.2009, 21:53   #13
Sashka007
ПроЭктировщик
 
Аватар для Sashka007
 
Регистрация: 11.11.2008
Адрес: Тольятти
Сообщений: 153
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Не могу разобраться с TYPE

Ну я не делаю гта, просто, я рандоную генерацию машин делаю как там, а вот на счет того, что блитц мне еще учить и учить я согласен
(Offline)
 
Ответить с цитированием
Старый 12.01.2009, 22:28   #14
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Не могу разобраться с TYPE

Не блиц. практически в любом языке программирования тебе бы пришлось делать то же самое.
самое простое в твоем случае:
selected_car.vehicle = NULL
mindist# = 5

for car.vehicle = each vehicle
 if entitydistance(player,car\mesh)<mindist
  selected_car = car
  mindist = entitydistance(player,car\mesh)
 endif
next

if selected_Car<> NULL
 selected_car\use = 1 ; или как там у тебя посадить 
игрока в машину
endif
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Sashka007 (12.01.2009)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Type in Type Taugeshtu 2D-программирование 7 18.09.2009 08:36
Не могу разобраться Unodeya 3D-программирование 11 27.06.2009 13:23
Type and etc... ELIAS 2D-программирование 8 05.02.2009 19:34
Вопросик про TYPE TEHb08 Blitz3D 15 09.01.2009 23:06
Dim vs Type HolyDel 3D-программирование 13 08.10.2006 14:30


Часовой пояс GMT +4, время: 15:36.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com