Frage zu entitycollided

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

sven123

Betreff: Frage zu entitycollided

BeitragSa, Dez 11, 2004 0:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich möchte das wenn meine Flugzeug(die Cam) gegen das Terrain fliegt der Text sie haben verloren oder so erscheint und man den Flieger nicht mehr Steuern kann.Ich habe jetzt mal hier den Code dazu geschrieben aber es funktioniert nicht warum?
BlitzBasic: [AUSKLAPPEN]

Graphics3D 800,600,0,1
AppTitle \"Rammjäger\"
HidePointer
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Locate 350,250
Print \"Load...\"
;Laden der Texturen und Meshs
terrain=LoadTerrain(\"f:\Grassclip.bmp\")
text1=LoadTexture(\"f:\Gras.jpg\")
metallpyramide=LoadMesh(\"f:\pyramide.x\")
Gebaude=LoadMesh(\"f:\house.x\")
Gebaude2=LoadMesh(\"f:\house.x\")
Burg=LoadMesh(\"f:\Burg.x\")
himmel=LoadTexture(\"f:\himmel2.jpg\")
Baumstumpf=LoadMesh(\"f:\Baumstumpf.x\")
cockpit=LoadImage(\"f:\rearcockpit1.bmp\")
Fadenkreutz=LoadImage(\"f:\Fadenkreutz.bmp\")
sprite=LoadSprite(\"f:\Blitz.jpg\")
Zielscheibe=LoadMesh(\"f:\Plakat.3ds\")
;Sprites
ScaleSprite sprite,15,15
HideEntity sprite
;Type Schuss
Type bullets
Field sprite
Field life
Field speed#
Field max_life
End Type
;Globals
Global angel=270
Global move=0
Global angelsprite=0
;Objekt richtig drehen
sky=CreateSphere(100)
FlipMesh sky
ScaleEntity sky,5500,7000,5500
PositionEntity sky,6500,1000,6800
;Metallpyramide
PositionEntity metallpyramide,5000,20,7800
PositionEntity Zielscheibe,3000,500,4000
;Bäume
PositionEntity Baumstumpf,8000,5,9000
For a=1 To 25
Baum=CopyEntity (Baumstumpf)
PositionEntity Baum,Rnd#(3000,10000),5,Rnd#(2000,10000)
EntityType Baum,6
Next
;
PositionMesh Gebaude,9000,-250,-9000
RotateMesh Gebaude,180,0,0
PositionMesh Gebaude2,9050,-250,-9450
RotateMesh Gebaude2,180,0,0
EntityType Gebaude,7
EntityType Gebaude2,7

;Burg
PositionEntity Burg,5000,-5,8000
;Das Terrain erstellen und Texturieren
EntityTexture terrain,text1,0,0
ScaleEntity terrain,50,60,50
ScaleTexture text1,20,20
;Spielfigur posizionieren
TerrainDetail terrain,8000,True
;Die Textur des Himmels bearbeiten und verwenden
EntityTexture sky,himmel
;;;;;;;;;;;;;;;;;;;;;;;;;;------Die Eintsellung der Kamera auf Firstpersonsicht sicht
;;
;;
;Kameravoreinstellungen
cam=CreateCamera()
PositionEntity cam,5100,2050,8075
;
CameraRange cam,1,80000
light=CreateLight()
LightRange light,80000
TurnEntity light,45,45,45
EntityParent light,cam
TurnEntity cam,10,106,0
PositionEntity cam,3007,4025,5845
TurnEntity cam,270,0,270
;Kollisionsabfrage
EntityType terrain,2
EntityType cam,1
EntityType Burg,3
EntityType metallpyramide,4
EntityType sky,5
EntityRadius Zielscheibe,0.1
EntityType Zielscheibe,10
;
Collisions 1,2,2,1
Collisions 1,3,2,1
Collisions 1,4,2,1
Collisions 1,5,2,1
Collisions 1,6,2,1
Collisions 1,7,2,1
Collisions 10,5,2,0
;
EntityOrder sky,1
If EntityCollided(cam,2)<>1 Then ;Hier ist die Fragliche Codestelle!!!!!
Text 300,250,\"Sie sind Tod\",1,0
steuerung=1
EndIf
;Steuerung des Spielers
;;;;;;;;;;;;;;;;;;;;-------Hauptschleife
While Not KeyHit(1)
RotateEntity Zielscheibe,0,angel,0
If an=0 Then
MoveEntity Zielscheibe,-5,0,0
move=move+1
EndIf
If move=1200 Then angel=180
If move=2100 Then angel=-270
If move=3000 Then angel=360
If move=4000 Then angel=-90
If move=5000 Then angel=180 an=1
;Mausabfrage
If steuerung=0 Then
RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0
If Not KeyDown(200)=1 Then MoveEntity cam,0,-15,0
If KeyDown(200)=1 Then MoveEntity cam,0,0,20
If KeyDown(203)=1 Then MoveEntity cam,-20,0,0
If KeyDown(205)=1 Then MoveEntity cam,20,0,0
EndIf
Cls
If MouseHit(1) Then add_bullet(sprite,40,40,cam)
;Bewegung der Schüsse
move_bullets()
If KeyDown(1) Then End
UpdateWorld
RenderWorld
MaskImage cockpit,128,128,255
DrawImage Fadenkreutz,375,279
DrawImage cockpit,0,380
If KeyHit(35)=1 Then
tasten=1
SaveBuffer BackBuffer(),\"F:\Screenshot.bmp\"
tasten=0
EndIf
Flip
Wend
ClearWorld
End
;Funktionen
Function add_bullet(sprite,max_life,speed#,cam) ;erstellt ein sprite
b.bullets=New bullets
b\sprite=CopyEntity (sprite)
EntityFX sprite,16
EntityType b\sprite,11
EntityRadius b\sprite,0.2
b\max_life=max_life
b\speed#=speed#
PositionEntity b\sprite,EntityX(cam),EntityY(cam),EntityZ(cam)
RotateEntity b\sprite,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam)
RotateSprite b\sprite,angelsprite
If angelsprite > 360 Then angelsprite=0
angelsprite=angelsprite+20
ShowEntity b\sprite
End Function

Function move_bullets() ;bewegt die sprites
For b.bullets=Each bullets
MoveEntity b\sprite,0,0,b\speed#
b\life=b\life+1
If b\life>b\max_life Then FreeEntity b\sprite : Delete b
Next
End Function
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken
 

Dreamora

BeitragSa, Dez 11, 2004 0:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil der Code nicht in der Hauptschleife ist und somit garnie eintreffen kann.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

sven123

BeitragSa, Dez 11, 2004 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt habe ichden Code in die Hauptschleife verschoben geht aber trotzdem nicht.Ganz im Gegenteil das Flugzeug(Die Kamera) bleibt einfach immer stehen ich kann immer nicht steuern!Woran liegt das.
BlitzBasic: [AUSKLAPPEN]
While Not KeyHit(1)
If EntityCollided(cam,2)<>1 Then
Text 300,250,\"Sie sind Tod\",1,0
steuerung=1
EndIf
RotateEntity Zielscheibe,0,angel,0
If an=0 Then
MoveEntity Zielscheibe,-5,0,0
move=move+1
EndIf
If move=1200 Then angel=180
If move=2100 Then angel=-270
If move=3000 Then angel=360
If move=4000 Then angel=-90
If move=5000 Then angel=180 an=1
;Mausabfrage
If steuerung=0 Then
RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0
If Not KeyDown(200)=1 Then MoveEntity cam,0,-15,0
If KeyDown(200)=1 Then MoveEntity cam,0,0,20
If KeyDown(203)=1 Then MoveEntity cam,-20,0,0
If KeyDown(205)=1 Then MoveEntity cam,20,0,0
EndIf
Cls
If MouseHit(1) Then add_bullet(sprite,40,40,cam)
;Bewegung der Schüsse
move_bullets()
If KeyDown(1) Then End
UpdateWorld
RenderWorld
MaskImage cockpit,128,128,255
DrawImage Fadenkreutz,375,279
DrawImage cockpit,0,380
If KeyHit(35)=1 Then
tasten=1
SaveBuffer BackBuffer(),\"F:\Screenshot.bmp\"
tasten=0
EndIf
Flip
Wend
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

BladeRunner

Moderator

BeitragSa, Dez 11, 2004 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Sven, ich will dir echt nicht zu nahe treten, aber bei der Masse an 3D-Problemen die du bislang hattest (und der Masse an unübersichtlichem Code die Du hier reinpostest) solltest du dir vielleicht überlegen auf etwas simpleres umzusteigen.
Bislang läuft es ja so dass du deinen Code hier reinschreibst, jemand einen Flicken draufsetzt und du 2 Tage später ein neues Problem reingehämmert hast.

Meine Tipps für dich:
1. Fang von vorne an.
2. Strukturiere deinen Code (Einrückungen, Sinnabschnitte zu Blocks zusammenfassen; reichlich Kommentare)
3. jedes neue Feature gut durchdenken. Wenn es nicht klappt, versuch es in einem seperaten Programm zum Laufen zu bringen ohne in deinem Hauptcode rumzupfuschen.
4. Wenn es weiterhin nicht geht (da anscheinend teilweise ja auch Verstänmdnisdefizite gegeben sind) : mach was einfacheres.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group