[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Проблема с функцией
nuclearДата: Четверг, 17 Июля 2008, 15:07 | Сообщение # 1
Бывалый
Группа: Участники
Сообщений: 73
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Code
Graphics3D 1024,768,32,1
SetBuffer BackBuffer ()

PxCreateWorld(1, "кей")
pxSetGravity(0,-9.8,0)

Global pobeda_1=LoadMesh(".\Cars\pobeda.b3d")

cam=CreateCamera ()
PositionEntity cam,0,40,-40
RotateEntity cam,20,0,0
sun=CreateLight()
PositionEntity sun,15,66,15
plane=CreatePlane()

Function createcar()
pobeda_entity=CopyMesh(pobeda_1)
ScaleMesh pobeda_entity,5,5,5
RotateEntity pobeda_entity ,0,90,0
PositionEntity pobeda_entity ,0,7,0
pobeda_phys_entity=LoadMesh(".\Cars\pobeda_phys.b3d")
ScaleMesh pobeda_phys_entity,5,5,5
RotateEntity pobeda_phys_entity ,0,90,0
PositionEntity pobeda_phys_entity ,0,7,0
EntityAlpha pobeda_phys_entity,0
pobeda_body=BodyCreateHull(pobeda_phys_entity, 100)
pxBodySetPosition (pobeda_body, 0, 14 ,0)
pxBodySetRotation (pobeda_body, 0, 90, 0)
pxBodySetCMassLocalPosition(pobeda_body, 0, -4, 0)

;------- front wheel-----------
Wheel_fr1_body = pxWheelAddToBody(pobeda_body, -4, -2, 8.5)
pxWheelSetRadius(Wheel_fr1_body,  2)
pxWheelSetSuspension(Wheel_fr1_body,  1,  200,  0.5)
wheel_fr1_mesh = LoadMesh (".\cars\pobeda_wheel.b3d")
RotateMesh wheel_fr1_mesh,0,180,0
ScaleEntity wheel_fr1_mesh,5,5,5

Wheel_fr2_body = pxWheelAddToBody(pobeda_body, 4, -2, 8.5)
pxWheelSetRadius(Wheel_fr2_body,  2)
pxWheelSetSuspension(Wheel_fr2_body,  1, 200,  0.5)
wheel_fr2_mesh = LoadMesh (".\cars\pobeda_wheel.b3d")
ScaleEntity wheel_fr2_mesh,5,5,5

;-------back wheel------------
Wheel_bac1_body = pxWheelAddToBody(pobeda_body, -4, -2, -6.5)
pxWheelSetRadius(Wheel_bac1_body,  2)
pxWheelSetSuspension(Wheel_bac1_body,  1, 200,  0.5)
wheel_bac1_mesh = LoadMesh (".\cars\pobeda_wheel.b3d")
RotateMesh wheel_bac1_mesh,0,180,0
ScaleEntity wheel_bac1_mesh,5,5,5

Wheel_bac2_body = pxWheelAddToBody(pobeda_body, 4, -2, -6.5)
pxWheelSetRadius(Wheel_bac2_body,  2)
pxWheelSetSuspension(Wheel_bac2_body,  1, 200,  0.5)
wheel_bac2_mesh =  LoadMesh (".\cars\pobeda_wheel.b3d")
ScaleEntity wheel_bac2_mesh,5,5,5

pxWheelSetFrictionToSide(Wheel_bac1_body, 50000)
pxWheelSetFrictionToSide(Wheel_bac2_body, 50000)
End Function
createcar()   

;;create_map functions
Dim cubes(30)
For i=1 To 30
cubes(i)=CreateCube()
PositionEntity cubes(i),1+i*-5,3,10
Next

cp1=CreateCube()
MoveEntity cp1,-70,3,0
EntityColor cp1,255,0,0
Function create_map_1()
End Function

;;other functions

;;END FUNCTIONS;;

;;run functions
create_map_1()

ramp=CreateCube()
ScaleEntity ramp,10,2,20
ramp_phys=pxbodycreatecube(10,2,20,0)
pxbodysetposition(ramp_phys,-90,0,5)
pxbodysetrotation(ramp_phys,0,2,-30)

;;end run
Repeat
;;;Cicle!!!;;;
If EntityDistance (pobeda_entity,cp1)<10 Textcp1=1

PointEntity cam,pobeda_entity
pxBodySetEntity(pobeda_entity, pobeda_body)
pxbodysetentity(ramp,ramp_phys)

If KeyDown (205) ang = ang+1
If Not KeyDown (205)
If ang>0 ang=ang-1
EndIf

If KeyDown (203) ang = ang-1 ;Else ang=ang+1
If Not KeyDown (203)
If ang<0 ang=ang+1
   EndIf
If KeyDown (200) motor = motor+5
If Not KeyDown (200)
If motor>0 motor=0 ;motor=motor-1
   EndIf

If KeyDown (208) motor = motor-5
If Not KeyDown (208)
If motor<0 motor=0 ;motor+1
   EndIf
If motor>400 motor = 400
If motor<-200motor = -200
pxWheelSetMotorTorque(wheel_bac1_body, motor)
pxWheelSetMotorTorque(wheel_bac2_body, motor)
pxWheelSetMotorTorque(Wheel_fr1_body, motor)
pxWheelSetMotorTorque(Wheel_fr2_body, motor)

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

   pxWheelSetBrakeTorque(wheel_bac1_body,  1 )
   pxWheelSetBrakeTorque(wheel_bac2_body,  1)
     
If KeyDown (57)
   pxWheelSetBrakeTorque(wheel_bac1_body,  500)
   pxWheelSetBrakeTorque(wheel_bac2_body,  500)
   motor=0
EndIf

time=MilliSecs ()
pxRenderPhysic(60,0)    
pxBodySetEntity(pobeda_entity, pobeda_body)

pxWheelSetEntity(wheel_fr1_mesh, wheel_fr1_body, 1)
pxWheelSetEntity(wheel_fr2_mesh, wheel_fr2_body, 1)
pxWheelSetEntity(wheel_bac1_mesh, wheel_bac1_body, 1)
pxWheelSetEntity(wheel_bac2_mesh, wheel_bac2_body, 1)

;Update_Px_Cube()
New_time=MilliSecs ()-time

UpdateWorld()
RenderWorld()
     frames=frames+1    
     If MilliSecs()-render_time=>1000  fps1=frames : frames=0 : render_time=MilliSecs()
    ;SetFont fntArial   
   Text 10,10,"FPS: "+fps1+"  dll time: "+New_time
   Text 10,30,"angle= "+ang+ "  motor=  "+ motor
   If Textcp1=1 Text 50,100,"Checkpoint 1"
Flip 1

Until KeyHit(88)
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

если делаю без функции(createcar() ) то все ок,а если с функцией (как написано выше) то выводит ошибку при обращении к pobeda_entity в цикле,что pobeda_entity не найдена
Че делать то?Обьясните ламаку smile


Сообщение отредактировал nuclear - Пятница, 18 Июля 2008, 12:31
 
nuclearДата: Четверг, 17 Июля 2008, 15:28 | Сообщение # 2
Бывалый
Группа: Участники
Сообщений: 73
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
спасиба добрый челавег
Ступил,признаю,в начале вписал Global pobeda_entity и все ок
 
nuclearДата: Четверг, 17 Июля 2008, 16:26 | Сообщение # 3
Бывалый
Группа: Участники
Сообщений: 73
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Code
Graphics3d 640,480,32,1
setBuffer backbuffer()

cam=createcamera()

l=createlight()

[b]cub_1=createcube()[/b]

n=input()

repeat
[b]
pointentity cam,cub_+n[/b]
updateworld ... и тд)

при запуске ввожу 1 а он говорит ентити не существует,в чем трабла?
 
nuclearДата: Четверг, 17 Июля 2008, 20:49 | Сообщение # 4
Бывалый
Группа: Участники
Сообщений: 73
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
ты о кое каких вещах не вкурсе
А вообще,лучше скажи как правильно
 
ASXCДата: Четверг, 17 Июля 2008, 21:12 | Сообщение # 5
Бывалый
Группа: Участники
Сообщений: 93
Награды: 0
Замечания: 0%
Статус:
нафиг тебе надо n напиши сразу pointentity cam,cub_1
 
nuclearДата: Пятница, 18 Июля 2008, 07:48 | Сообщение # 6
Бывалый
Группа: Участники
Сообщений: 73
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
ASXC хватит флудить
 
ASXCДата: Пятница, 18 Июля 2008, 09:28 | Сообщение # 7
Бывалый
Группа: Участники
Сообщений: 93
Награды: 0
Замечания: 0%
Статус:
Глюг smile
 
nuclearДата: Пятница, 18 Июля 2008, 16:08 | Сообщение # 8
Бывалый
Группа: Участники
Сообщений: 73
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Сразу гавараю,если я щяс туплю - не бейти,у меня башка чет ваще не варит седня)
Code
Graphics3d 640,480,32,1
setBuffer backbuffer()

cam=createcamera()

l=createlight()

cube=createcube()
moveentity cube,0,0,10

check=createsphere()

repeat

if entitydistance(cube,check)<5 checkpoint=checkpoint+1

updateworld ... и тд)

Вотс,когда кубик рядом с checkpoint увеличивается оч быстро.А мне надо чтоб когда entitydistance(cube,check)<5 то чекпоинт был checkpoint=checkpoint+1,если мы еще раз приближаемся то снова checkpoint=checkpoint+1.Теперь на примере:кубиком подьехали к сфере чекпоинт стало 1,уехали,снова приехали чекпоинт стало 2 и тд.Как сделать?

 
nuclearДата: Пятница, 18 Июля 2008, 17:02 | Сообщение # 9
Бывалый
Группа: Участники
Сообщений: 73
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
HolyDel, супеееер,спс огромное smile Экстра-помощь )
 
  • Страница 1 из 1
  • 1
Поиск: