Roboter kollidiert nicht mit der Camera!

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Surat

Betreff: Roboter kollidiert nicht mit der Camera!

BeitragDi, März 28, 2006 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!!!
Ich habe folgendes Problem.
Ich habe der Entity "roboterwache" einen Typ zugewiesen.
Wenn ich jetzt mit diesem Typ kollidiern will, dann wird keine
Kollision angezeigt!

Ich bin für jede Hilfe dankbar! Very Happy




Code: [AUSKLAPPEN]

Const width=640,height=480,depth=16   

Graphics3D width,height,depth
SetBuffer BackBuffer()

Const type_camera=1,type_blood=2   ; Source
Const type_scenery=3,type_ladders=4   ; Destination

Global cam_x#,cam_z#,cam_pitch#,cam_yaw#                  ; Current
Global dest_cam_x#,dest_cam_z#,dest_cam_pitch#,dest_cam_yaw#

Global picked

Type spark
   Field entity,alpha#
End Type

camera=CreateCamera()
CameraRange camera,1,600
EntityRadius camera,7.5
EntityType camera,type_camera
PositionEntity camera,10,10,10

AmbientLight 191,191,191                  
Global light=CreateLight()
LightColor light,31,31,31
RotateEntity light,45,0,0

Global Level=LoadMesh("reallevel.3ds")
PositionEntity Level,0,-85,0
ScaleEntity Level,500,300,500
EntityType Level,type_scenery
EntityPickMode Level,2

himmel=CreatePlane()
PositionEntity himmel,0,60,0
RotateEntity himmel,0,0,180
EntityType himmel,type_scenery
EntityPickMode himmel,2

plasmaschuss=LoadSound("plasmaschuss.wav")
treffe_robo=LoadSound("explode1.wav")




wolken_tex=LoadTexture("wolken001.jpg")
EntityTexture himmel,wolken_tex
grass_tex=LoadTexture("mauer003.jpg")
feuer=LoadTexture("feuer002.jpg")

dino=LoadAnimMesh("robo.3ds")
PositionEntity dino,0,-10,100
ScaleEntity dino,30,30,30
EntityPickMode dino,3
EntityBox dino,-5,0,-5,10,20,10



robowache=LoadAnimMesh("robo.3ds")
EntityType robowache,9
PositionEntity robowache,-20,-5,200
ScaleEntity robowache,30,30,30
EntityPickMode robowache,3
EntityBox robowache,-5,0,-5,10,20,10
TurnEntity robowache,0,180,0
robowache_energie=100




feuerbarrikade=CreateCube()
ScaleEntity feuerbarrikade,50,50,1
EntityTexture feuerbarrikade,feuer

EntityType feuerbarrikade,type_scenery
EntityPickMode feuerbarrikade,2
PositionEntity feuerbarrikade,0,0,300
EntityAlpha feuerbarrikade,0.5

feuerschalter=CreateCube()
ScaleEntity feuerschalter,8,8,8
EntityColor feuerschalter,255,0,0
EntityPickMode feuerschalter,2
PositionEntity feuerschalter,-70,8,230
EntityAlpha feuerschalter,0.8
EntityShininess feuerschalter,1
EntityType feuerschalter,4



EntityTexture Level,grass_tex


sound=LoadSound("Kingdom Hearts.wav")
PlaySound sound
LoopSound sound

Global target=LoadSprite("target.bmp",1,camera)
MoveEntity target,0,0,75
EntityOrder target,-2



Global spark=LoadSprite("bigspark.bmp")   
ScaleSprite spark,2,2
EntityOrder spark,-1
HideEntity spark

Collisions type_camera,type_scenery,2,3
Collisions type_blood,type_scenery,2,1
Collisions type_blood,type_camera,1,1
Collisions type_camera,type_ladders,2,2



While Not KeyHit(1)

If MouseHit(1)=True
PlaySound plasmaschuss
  picked=CameraPick(camera,width/2,height/2)
  s.spark=New spark
  s\entity=CopyEntity(spark)
 s\alpha=1
PositionEntity s\entity,PickedX(),PickedY(),PickedZ()      
EndIf

PointEntity dino,camera
If erfordert=1 Then MoveEntity dino,0,0,0.5

PointEntity robowache,camera
If EntityDistance (robowache,camera)<80 Then
angriff1=1
EndIf

If angriff1=1 Then MoveEntity robowache,0,0,0.5


TurnEntity feuerschalter,1,1,1

If EntityCollided(camera,4) Then
blau=1
HideEntity feuerbarrikade
EndIf


If blau=1 Then EntityColor feuerschalter,0,0,255






   mxs=MouseXSpeed()
   mys=MouseYSpeed()
   

   mouse_shake=Abs(((mxs+mys)/2)/1000.0)


   dest_cam_yaw#=dest_cam_yaw#-mxs
   dest_cam_pitch#=dest_cam_pitch#+mys


   cam_yaw=cam_yaw+((dest_cam_yaw-cam_yaw)/5)
   cam_pitch=cam_pitch+((dest_cam_pitch-cam_pitch)/5)
   
   RotateEntity camera,cam_pitch#,cam_yaw#,0

   MoveMouse width/2,height/2

   If KeyDown(200)=True Or MouseDown(2)=True Then dest_cam_z=1
   If KeyDown(208)=True Then dest_cam_z#=-1


   If KeyDown(205)=True Then dest_cam_x=1
   If KeyDown(203)=True Then dest_cam_x=-1
   

   cam_z=cam_z+((dest_cam_z-cam_z)/5)
   cam_x=cam_x+((dest_cam_x-cam_x)/5)

   MoveEntity camera,cam_x,0,cam_z
   dest_cam_x=0 : dest_cam_z=0

   If EntityCollided(camera,type_ladders)<>0 Then TranslateEntity camera,0,1,0

   TranslateEntity camera,0,-1,0

   For s.spark=Each spark
      EntityAlpha s\entity,s\alpha
      s\alpha=s\alpha-0.02
      If s\alpha<=0 Then FreeEntity s\entity : Delete s
   Next

   If picked=dino Then
   PlaySound treffe_robo
      picked=0
   EndIf

If picked=robowache Then
   PlaySound treffe_robo
      picked=0
      robowache_energie=robowache_energie-10
   EndIf

If robowache_energie<=0 Then
HideEntity robowache
EndIf


If EntityCollided(camera,9) Then End



UpdateWorld
RenderWorld
Text 0,0,"Benutze Cursortasten..."
Text 300,0,"1. Kollision mit:"+EntityCollided(camera,2)
Flip
Wend
End

~EDITIERT~

Codetags nachgefügt. Benutz sie bitte in Zukunft selbstständig.
MfG BladeRunner
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)

StepTiger

BeitragDi, März 28, 2006 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich sehe gerade kein collisions type_cam,9,3,2

ich dachte das braucht man da
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Dreamora

BeitragDi, März 28, 2006 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist, dass Collisions in der Schleife sein muss, nicht davor. Sonst wird nur beim ersten Durchlauf auf kollision geprüft und das wars dann ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group