[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Show и Hide Entity
CostUmДата: Понедельник, 13 Апреля 2009, 19:29 | Сообщение # 1
MegaNoob on Igrostroenie.ru
Группа: Участники
Сообщений: 269
Награды: 0
Замечания: 40%
Статус:
кароч такая тема, хател сделать чёто типа оружия, спрятать и фсё такое, но выдаёд ошибку Ентити Даз Нот Ексит, вот код кнопок:
If KeyHit(2) Then showObject=1
If KeyHit(3) Then showObject=2
If KeyHit(4) Then showObject=3

If showObject=1 ShowEntity cone HideEntity cube HideEntity sphere
If showObject=2 HideEntity cone ShowEntity cube HideEntity sphere
If showObject=3 HideEntity cone HideEntity cube ShowEntity sphere

и showObject=1 стоит в Глобале, хатя думаю эт без разницы, если её убрать то запускаеца норм, но када нажимаеш на любую из 3 тажа ошибка, х3 чё такое, помогите плиз

 
ПрохожийДата: Понедельник, 13 Апреля 2009, 19:49 | Сообщение # 2
Группа: Гости





CostUm, конус, суб, сферу в глобал тоже.
И вапще через Selec Case делай.
 
CostUmДата: Понедельник, 13 Апреля 2009, 19:53 | Сообщение # 3
MegaNoob on Igrostroenie.ru
Группа: Участники
Сообщений: 269
Награды: 0
Замечания: 40%
Статус:
фсё в Глобал не помогло, а Селек Кас первый раз вижу
 
tjslashДата: Понедельник, 13 Апреля 2009, 19:53 | Сообщение # 4
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Вы в универе изучаете надежность САР? Мне довелось изучать этот предмет, поэтому, исходя из надежности, я бы написал так:

Code

If KeyHit(2)
    ShowEntity cone
    HideEntity cube
    HideEntity sphere
ElseIf KeyHit(3)  
    HideEntity cone
    ShowEntity cube
    HideEntity sphere
ElseIf KeyHit(4)  
    HideEntity cone
    HideEntity cube
    ShowEntity sphere
EndIf

ЗЫ:
Работоспособность твоего кода не пробовал, но, вроде, все поддается логике...

 
tjslashДата: Понедельник, 13 Апреля 2009, 19:55 | Сообщение # 5
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Code

Select True
Case KeyHit(2)   
     ShowEntity cone  
     HideEntity cube  
     HideEntity sphere  
Case KeyHit(3)   
     HideEntity cone  
     ShowEntity cube  
     HideEntity sphere  
Case KeyHit(4)   
     HideEntity cone  
     HideEntity cube  
     ShowEntity sphere  
End Select
 
CostUmДата: Понедельник, 04 Мая 2009, 22:55 | Сообщение # 6
MegaNoob on Igrostroenie.ru
Группа: Участники
Сообщений: 269
Награды: 0
Замечания: 40%
Статус:
серавно пишет Ентити Даз Нот Ексит, однако фсё что надо есть в коде, хз чё за нах..
 
CostUmДата: Понедельник, 04 Мая 2009, 23:06 | Сообщение # 7
MegaNoob on Igrostroenie.ru
Группа: Участники
Сообщений: 269
Награды: 0
Замечания: 40%
Статус:
Мая цитата: однако фсё что надо есть в коде.. код
Code
Graphics3D 1280,1024,32,1
SetBuffer BackBuffer()

Global user
Global camera
Global fntArial

fntArial=LoadFont("Arial Cry",24,False,False,False)

Const G#=0.001

Const USERT=1;for user
Const TERRT=2;for terrain
Const SHOTT=3;for shot
Const BOTT=4;for bot
Const BORDERT=5;for box

Global jump_bool
Global user_time
Global user_vy#

Global pricel=LoadImage("FPS-Crosshair.png")
Global shot_sprite=LoadSprite("FPS-Shot.png")

zdorov=100

Type shot
   Field entity
   Field dist#
   Field time
End Type

Type bot
   Field entity
   Field time
   Field Survivability
End Type

;???????? ??????
Function create_user(x#=0,y#=10,z#=0)

   MidHandle pricel
   MaskImage pricel,255,255,255
    
   user=CreateSphere()
   k#=3
   ScaleEntity user,k#,k#,k#
   EntityRadius user,k#
   camera=CreateCamera(user)
   CameraRange camera,0.1,10000
   PositionEntity user,x#,y#,z#
   EntityType user,USERT

sphere=CreateSphere ()
HideEntity sphere

cone=CreateCone ()
HideEntity cone

cube=CreateCube ()
HideEntity cube

End Function

;?????????? ??????
Function update_user()
   ;=
   If user_time=0 user_time=MilliSecs()
   new_time=MilliSecs()
   delta_t=new_time-user_time
   user_time=new_time
   ;=
   V#=0.02*delta_t
   u#=70;?????????? ????
   TurnEntity camera,MouseYSpeed(),0,0
   TurnEntity user,0,-MouseXSpeed(),0
   If KeyDown(30)=1 Then MoveEntity user,-V#,0,0
   If KeyDown(32)=1 Then MoveEntity user,V#,0,0
   If KeyDown(17)=1 Then MoveEntity user,0,0,+V#  
   If KeyDown(31)=1 Then MoveEntity user,0,0,-V#
   MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5
   If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
    
   If MouseHit(1) create_shot(EntityX(user),EntityY(user),EntityZ(user),EntityPitch(camera),EntityYaw(user),0)
   If MouseDown(2) create_shot(EntityX(user),EntityY(user),EntityZ(user),EntityPitch(camera),EntityYaw(user),0)
    

If KeyHit(2)  
     ShowEntity cone  
     HideEntity cube  
     HideEntity sphere  
ElseIf KeyHit(3)   
     HideEntity cone  
     ShowEntity cube  
     HideEntity sphere  
ElseIf KeyHit(4)   
     HideEntity cone  
     HideEntity cube  
     ShowEntity sphere  
EndIf  

   ;??????
    
    
   pick_ent=LinePick(EntityX(user,1),EntityY(user,1),EntityZ(user,1),0,-3.6,0)
    
   TranslateEntity user,0,user_vy#*delta_t,user_vy#*0.01,True
    
   If pick_ent
     jump_bool=False
     user_vy=0
     TranslateEntity user,0,-1,0,True
   Else
     jump_bool=True
     user_vy#=user_vy#-G#*delta_t;v1=v2-a*t
   EndIf

   ;;;
   If KeyHit(57) And jump_bool=False Then user_vy#=1
End Function

Function create_Shot(x#,y#,z#,pitch#,yaw#,roll#)
   s.shot=New shot
   s\entity=CopyEntity(shot_sprite)
   EntityType s\entity,SHOTT
   PositionEntity s\entity,x#,y#,z#,1
   RotateEntity s\entity,pitch#,yaw#,roll#,1
   Return True
End Function

Function update_shot()
   v#=0.1
   max_dist#=1000
   For a.shot=Each shot
     ;=
     If a\time=0 a\time=MilliSecs()
     new_time=MilliSecs()
     delta_t=new_time-a\time
     a\time=new_time
     vs#=v*delta_t
     ;=
     MoveEntity a\entity,0,0,vs#
     a\dist#=a\dist#+vs#
     bot_h=EntityCollided(a\entity,BOTT)
     If a\dist#>max_dist#
       FreeEntity a\entity
       Delete a
     ElseIf EntityCollided(a\entity,TERRT)<>0
       FreeEntity a\entity
       Delete a
     ElseIf bot_h<>0
       FreeEntity a\entity
       Delete a
       bhandle=EntityName(bot_h)
       bc.bot=Object.bot(bhandle)
       bc\Survivability=bc\Survivability-16
       If bc\Survivability<=0
         Delete bc
         FreeEntity bot_h
         create_bot(EntityX(user)+Rnd(-100,100),2,EntityZ(user)+Rnd(-100,100))
       EndIf
     EndIf
   Next
End Function

Function create_bot(x#,y#,z#)
   b.bot=New bot
   b\Survivability=100
   b\entity=CreateSphere()
   EntityType b\entity,BOTT
   PositionEntity b\entity,x#,y#,z#
   NameEntity b\entity,Handle(b)
   Return True
End Function

Function update_bot()
   v#=0.01
   For a.bot=Each bot
     ;=
     If a\time=0 a\time=MilliSecs()
     new_time=MilliSecs()
     delta_t=new_time-a\time
     a\time=new_time
     ;=
     PointEntity a\entity,user
     MoveEntity a\entity,0,0,v#*delta_t
     ;??????
     TranslateEntity user,0,-G#*delta_t,0
   Next
End Function

;???????? ???????? ????
Function create_world()
   light=CreateLight()
   RotateEntity light,90,0,0
   HideEntity shot_sprite
   terrain=CreatePlane()
   tertex=LoadTexture("FPS-Terrain.jpg")
   ScaleTexture tertex,10,10
   EntityTexture terrain,tertex
   FreeTexture tertex
   EntityType terrain,TERRT
   EntityPickMode terrain,2
   create_user()
    
   sky=MakeSkyBox("FPS-Sky")
   ScaleEntity sky,150,150,150
   border=MakeBox()
   ScaleEntity border,140,140,140
   EntityAlpha border,0
   EntityType border,BORDERT
    
   c_bot=Input("input Amount")
   For i=1 To c_bot
     create_bot(Rnd(-100,100),2,Rnd(-100,100))
   Next
    
   Collisions USERT,BORDERT,2,1
    
   Collisions USERT,TERRT,2,3
   Collisions SHOTT,TERRT,2,1
    
   Collisions BOTT,TERRT,2,3
   Collisions BOTT,USERT,2,3
   Collisions BOTT,BOTT,2,3
    
   Collisions USERT,BOTT,2,3
    
   Collisions SHOTT,BOTT,2,1
End Function

Function MakeSkyBox( file$ )

   m=CreateMesh()
   ;front face
   b=LoadBrush( file$+"FR.jpg",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.jpg",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.jpg",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.jpg",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.jpg",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

Function MakeBox()

   m=CreateMesh()
   ;front face
   s=CreateSurface( m )
   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
   ;right face
   s=CreateSurface( m )
   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
   ;back face
   s=CreateSurface( m )
   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
   ;left face
   s=CreateSurface( m )
   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
   ;top face
   s=CreateSurface( m)
   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

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

;??????? ???????????   
;--------------------------------
create_world()

;MAIN LOOP
While Not KeyHit(1)=1
   update_user()
   update_shot()
   update_bot()
   UpdateWorld()
   RenderWorld()
   DrawImage pricel,MouseX(),MouseY()
   Text 10,10,"jump_bool="+jump_bool
If EntityCollided (user,bott) zdorov=zdorov-1
  SetFont fntArial
  Text 280,47,"Health="+zdorov
  If zdorov<105
  Else
End
  EndIf

Flip

Wend

End
 
AndroidДата: Вторник, 05 Мая 2009, 08:30 | Сообщение # 8
Продвинутый
Группа: Участники
Сообщений: 154
Награды: 0
Замечания: 0%
Статус:
CostUm, епт тебе же сказали, создавай объекты в глобале!!
 
CostUmДата: Вторник, 05 Мая 2009, 15:04 | Сообщение # 9
MegaNoob on Igrostroenie.ru
Группа: Участники
Сообщений: 269
Награды: 0
Замечания: 40%
Статус:
блин, я думал при создании обьекта ево сразу глобалить, ща написал отдельно Глобалы фсё ок!))

Сообщение отредактировал CostUm - Вторник, 05 Мая 2009, 15:05
 
  • Страница 1 из 1
  • 1
Поиск: