explosion wie?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen

 

masterman123

Betreff: explosion wie?

BeitragFr, Jan 01, 2010 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,ich hab ein problem,ein flugzeug soll wenn es mit dem terrain kollidiert explodieren aber nur wie?

ich hab noch nicht viel erfahrung und freue mich über verbesserungen des codes Very Happy

Code: [AUSKLAPPEN]
Graphics3D 800,600,32,2;SETZT UMGEBUNG IN 3D (800=HÖHE,600=BREITE,32=BITANZAHL,1=GROßBILDSCHIRM
SetBuffer BackBuffer();ÄNDERT BUFFER IN HINTERGRUNDBUFFER

;Type Schuss
;Field Entity
;End Type
;Global Magazin = 100

Global wievielgegner
Global gegneranzahl=2

Const map=1
Const player=2
Const gegner=3
Const shot=4

;;;;terrain
terrain=LoadTerrain("heightmap.bmp");LADET TERRAIN
text1=LoadTexture("gras.bmp");LADET TEXTUR
text2=LoadTexture ("terrain text2.bmp");WIE OBEN
text3=LoadTexture("mapt1.bmp");WIE OBEN
EntityType terrain,map
EntityTexture terrain,text1;VERBINDET TEXTUR(ERSTE SCHICHT)
EntityTexture terrain,text2,0,1;WIE OBEN(ZWEITE SCHICHT)
EntityTexture terrain,text3,0,2;WIE OBEN(DRITTE SCHICHT)
ScaleEntity terrain,50,290,50;ÄNDERT SKALLIERUNG EINES 3D OBJEKTS
ScaleTexture text2,3,3;WIE OBEN BLOß EINER TEXTUR

;;;;wasser
water=CreatePlane();MACHT EINE EBENE
watertext=LoadTexture ("water2.bmp",2);TEXTUR LADEN
EntityTexture water, watertext;VERBINDET TEXTUR
ScaleTexture watertext,100,100;ÄNDERT TEXTUR
MoveEntity water,0,10,0;BEWEGT DAS 3D OBJEKT ZU DEN KOORDINATEN
EntityAlpha water,0.5;MACHT DAS 3D OBJEKT UNSICHTBAR(0=UNSICHTBAR;1=SICHTBAR

;;;;camera
cam=CreateCamera();MACHT EINE KAMERA
PositionEntity cam,1000,400,1000
CameraFogMode cam,1;NEBEL AN/AUS
CameraRange cam,1,900000;MIN/MAX KAMERAENTFERNUNG
CameraFogRange cam,100,4000;NEBEL ENTFERNUNG EINER KAMERA
CameraFogColor cam,40,140,255;FARBE DES NEBELS
CameraClsColor cam,40,140,255;ÄNDERT HINTERGRUNDFARBE DER KAMERA


;;;;;licht
light=CreateLight();MACHT EIN LICHT
TurnEntity light,45,45,0;DREHT DAS OBJEKT UM EINEN RELATIVEN WINKEL

;;;;;plane
Global plane1=LoadMesh("biplane.x");flugzeug laden
PositionEntity plane1,1000,400,1050;positionieren
TurnEntity plane1,0,180,0
EntityType plane1,player
hi=LoadTexture("wings.bmp");texture laden
hallo=LoadTexture("bihull.bmp");wie oben
EntityTexture plane1,hi,0,0
EntityTexture plane1,hallo,0,1

;;;;;pivot
Piv=CreatePivot(plane1):PositionEntity Piv,0,0,10;macht einen pivot und positioniert ihn

;;;gegner
Global gegner1=LoadMesh("biplane.x")
PositionEntity gegner1,1000,400,1100
EntityTexture gegner1,hi,0,0
EntityTexture gegner1,hallo,0,1
;;;;;gegner2
Global gegner2=LoadMesh("biplane.x")
PositionEntity gegner2,2000,400,1300
EntityTexture gegner2,hi,0,0
EntityTexture gegner2,hallo,0,1

;;;;;funktion
;Function NeuerSchuss()
;S.Schuss = New Schuss
;S\Entity =LoadMesh("biplane.x")
;ScaleEntity S\Entity, 0.1, 0.1, 0.5
;PositionEntity S\Entity,EntityX#(plane1),EntityY#(plane1),EntityZ#(plane1)
;RotateEntity S\Entity,EntityPitch#(plane1), EntityYaw#(plane1), EntityRoll#(plane1)
;EntityRadius S\Entity, 0.1
;EntityType S\Entity,shot
;Magazin = Magazin - 1
;End Function

Collisions player,map,2,2
;Collisions shot,gegner,2,1


While Not KeyHit(1);WENN DER  KNOPF NICHT GEDRÜCKT WIRD DANN


If KeyDown(200) Then TurnEntity plane1,1,0,0;wie oben
   If KeyDown(208) Then TurnEntity plane1,-1,0,0;wie oben bloß unten
   If KeyDown(205) Then TurnEntity plane1,0,0,2;rechts oder links
   If KeyDown(203) Then TurnEntity plane1,0,0,-2;wie oben
   If KeyDown(57) Then MoveEntity plane1,0,0,-1
   ;If KeyHit(57) Then ;wenn leertaste gedrückt wird dann
   ;If Magazin > 0 Then NeuerSchuss();ist das magazin >0 dann neuerschuss(funktion)
   ;If Magazin=0 Then Magazin=100;ist das magazin=0 dann ist das magazin=100
;EndIf

   camsp#=.05;nur eine zahl ,dadurch muss man nicht immer die zahl eingeben
   dx#=(EntityX(Piv,1)-EntityX(cam,1))*camsp#;dx# =von piv die x koordinaten- die von der cam *camsp
   dy#=(EntityY(Piv,1)-EntityY(cam,1))*camsp#;das gleiche bloß mit y
   dz#=(EntityZ(Piv,1)-EntityZ(cam,1))*camsp#;das gleiche bloß mit z
   TranslateEntity cam,dx#,dy#,dz#;verschiebt das objekt um die koordienaten
   Yaw#=DeltaYaw(cam,plane1)*camsp#;liefert den y winkel zwischen den objekten *camsp
   Pitch#=DeltaPitch(cam,plane1)*camsp#;wie oben bloß x winkel *camsp
   TurnEntity cam,Pitch#,Yaw#,0;dreht die cam in den errechneten winkel
   
;For T.Schuss = Each Schuss
;   MoveEntity T\Entity,0,0, 1.5;bewegt das objekt
;   RotateEntity T\Entity,180,0,0
;   EntityParent T\Entity, plane1
   
;If EntityDistance (T\Entity,  plane1) > 100 Then;ist der abstand vom schuss und dem flugzeug höher als 100 dann
;   HideEntity T\Entity;versteckt das objekt
;   Delete T.Schuss;löscht das objekt
;EndIf
;Next


   UpdateWorld()
   
For i=1 To CountCollisions(plane1)
   CollisionEntity(plane1,i)
   CollisionSurface(plane1,i)
   CollisionTriangle(plane1,i)
Next

   RenderWorld()

;Color 0,255,0 :Text 20,300, Magazin
;Text 20,70, wievielgegner+"=wie viel du schon hast"
;Text 20,50, gegneranzahl + "=wie viel gegner du einfangen musst"


;If MeshesIntersect (plane1,gegner1) Then
;HideEntity gegner1
;wievielgegner=1
;EndIf

;If MeshesIntersect (plane1,gegner2) Then
;HideEntity gegner2
;wievielgegner=2
;EndIf

;If wievielgegner=2 Then Text 300,300,"Du hast gewonnen,press escape!!!"


Flip
Wend
ClearWorld
End

   
If CollisionEntity(plane1, i)= terrain
DebugLog "Absturz"
HideEntity plane1
EndIf
  • Zuletzt bearbeitet von masterman123 am Sa, Jan 02, 2010 15:40, insgesamt einmal bearbeitet

hazumu-kun

BeitragFr, Jan 01, 2010 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf jedenfall Kommentierst du zuviel, und lass die Großbuchstaben weg, ich kann den Code SO nicht lesen, tut mir leid.
Achja, und mehr einrücken,
Nach jeden While/Repeat/for usw nen neuen einrückungsblock anfangen.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent
 

masterman123

BeitragFr, Jan 01, 2010 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ok wert ich mache Smile

Midimaster

BeitragFr, Jan 01, 2010 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Da fehlt komplett die Kollisionsprüfung hinter UpdateWorld()

CountCollisions()
CollisionEntity()

Sie mal in dem Beispiel zur Hilfe "Collisions" nach:

https://www.blitzforum.de/help/Collisions
 

masterman123

BeitragFr, Jan 01, 2010 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
die hab ich doch vor der mainloop Very Happy
sorry falsch geguckt hehe:)

wie muss ich das dann machen Question
 

masterman123

BeitragFr, Jan 01, 2010 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
also so z.b.
Code: [AUSKLAPPEN]
collision=countcollision(plane1)

aber das mit collisionentity versteh ich net:)

D2006

Administrator

BeitragFr, Jan 01, 2010 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte vermeide Doppelposts - also mehrer Beiträge hintereinander - und nutze stattdessen den EDIT-Button rechts oberhalb deiner Beiträge, wenn du etwas nachträglich hinzufügen möchtest.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

masterman123

BeitragFr, Jan 01, 2010 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
ok mach ich Smile
weiß jemand wie man ein objekt ,das man z.b. mit den tasten bewegt, stoppen kann,auch wenn man die taste weiter drückt ?

Chester

BeitragFr, Jan 01, 2010 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine weitere Bedingung für die Bewegung setzten?

Midimaster

BeitragFr, Jan 01, 2010 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
UpdateWorld() prüft alle Objekte, die Du bei Collisions() angegeben hast, auf Kollisionen.

Danach steht in CoutCollisions(player) wieviele Kollisionen es in dieser Runde mit dem player gegeben hat.

Durch die anschließende For I=1 to CoutCollisions(player) steppst Du durch alle Kollision und erfährst mit ...

CollisionEntity(player, i)
CollisionSurface(player, i)
CollisionTriangle(player, i)

...welches Objekt mit Player zusammengestoßen ist.

Mit...

If CollisionEntity(player, i)=map

kannst Du dann auf den Abturz mit einer Explosion oder was auch immer reagieren.

Aber das steht eigentlich genauso in der Hilfe hier!!!
 

masterman123

BeitragSa, Jan 02, 2010 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
danke jetzt hab ichs kapiert Embarassed

muss ich das dann so machen
Code: [AUSKLAPPEN]
UpdateWorld()
   
   For i=1 To CountCollisions(player)
   CollisionEntity(player,i)
   CollisionSurface(player,i)
   CollisionTriangle(player,i)
   Next
   
   RenderWorld()

denn er zeigt immer fehler an entity does not exist

hab den fehler gefunden es muss ein entity sein also plane1


jetzt kommt das nächste problem:

Code: [AUSKLAPPEN]
If CollisionEntity(player, i)=map Then
HideEntity plane1
EndIf


dann komm auch entity does not exist

also hab ich wieder plane1 genommen so:
Code: [AUSKLAPPEN]
If CollisionEntity(plane1, i)=map Then
HideEntity plane1
EndIf

dann kam collisions index out of range
aber auch wenn ich =map weg lasse kommt das

chester:wie meinst du das?

kann die blitzbasic 3d demo .3ds dateien verwenden

Midimaster

BeitragSa, Jan 02, 2010 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
da hab ich wohl etwas oberflächlich in deinen Code gesehen. Ich dachte Player und Map sind die zwei Entitys. Aber die Entitys heißen ja PLANE1 und TERRAIN, sorry.

Also muss es so heißen:

BlitzBasic: [AUSKLAPPEN]
If CollisionEntity(Plane1, i)=Terrain
DebugLog "Absturz"
;HideEntity plane1
EndIf


Probier erst mal das, bevor Du in diesen Code weitere Aktionen reinschreibst.

Dein Problem passt übrigens genau zu meinem Tutorial:

Zitat:
If CollisionEntity(player, i)=map Then
HideEntity plane1
EndIf


Du vermutest den Fehler bei Plane1. Mit einem DEBUGLOG "Absturz" wäre klar, dass die Kollisionsfrage scheitert. siehe:

https://www.blitzforum.de/foru...620#354620
 

masterman123

BeitragSa, Jan 02, 2010 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
wo muss ich das dann hin schreiben in der mainloop oder ausserhalb


If CollisionEntity(Plane1, i)=Terrain
DebugLog "Absturz"
;HideEntity plane1
endif

denn er zeigt immer noch collision index out of range an:)

Midimaster

BeitragSa, Jan 02, 2010 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich checke es grad mal durch, stelle mal in der zwischenzeit den neuesten code in deinen ersten beitrag vom Fr 15:18 Uhr (mit EDIT)

folgendes ist mir jetzt schon aufgefallen:
1.
Graphics3D 800,600,32,2
nimm Mode 2 wegen des Debuglog

2.
collision=CountCollisions(plane1)
bei Dir steht CountCollision ohne "s"
ändere das gleich ma ab!

3.
nimm die Funktion wirklich an das Ende des Codes nach "END"

gleich noch mehr...




Also, wenn Du etwas neues zum ersten Mal ausprobierst, ist es immer sinnvoll, zunächst nur den relevanten Teil in ein neues Programm zu extrahieren. Dort entfernst Du so viel Code wie Du kannst, damit mögliche andere Fehlerquellen reduziert werden:

Bilder und Texturen raus
Dritt-Meshes raus
Schiessen raus
Camera und Licht-Features auf das nötigste beschränken

Dann kommt ein Code raus, der etwa so aussieht:

BlitzBasic: [AUSKLAPPEN]
Graphics3D 800,600,32,2

terrain=CreateTerrain(256)
EntityColor Terrain,155,111,0
EntityType Terrain,1

camera=CreateCamera()
light=CreateLight()
MoveEntity Camera, 5,5,-5

Global plane1=CreateCube()
PositionEntity plane1,0,3,5
EntityType plane1,2

Collisions 2,1,2,2
Repeat
Cls
MoveEntity Plane1, 0.1,-0.03,0
collision=CountCollisions(Plane1)
UpdateWorld()
For i=1 To CountCollisions(Plane1)
If CollisionEntity(Plane1, i)=Terrain
DebugLog "Absturz"
WaitKey()
EndIf
Next
RenderWorld()
Flip
Until KeyHit(1)



Das Flugzeug ist ein Cube, die Landschaft ein plattes Terrain. Damit kannst Du besser experimentieren und die Wirkungen studieren.

Also bei mir läuft die Kollisionserkennung. Im Moment des Crashs leifert der DEBUGGER "Absturz". Weiter geht es mit Tastendruck.


Versuchs mal!
 

masterman123

BeitragSa, Jan 02, 2010 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke für deine hilfe aber irgend wie geht es nich er zeigt es gar nicht an "absturz"
ok ich habs hingekriegt hier der code

Code: [AUSKLAPPEN]
Graphics3D 800,600,32,2;SETZT UMGEBUNG IN 3D (800=HÖHE,600=BREITE,32=BITANZAHL,1=GROßBILDSCHIRM
SetBuffer BackBuffer();ÄNDERT BUFFER IN HINTERGRUNDBUFFER

;Type Schuss
;Field Entity
;End Type
;Global Magazin = 100

Global wievielgegner
Global gegneranzahl=2

Const map=1
Const player=2
Const gegner=3
Const shot=4

;;;;terrain
terrain=LoadTerrain("heightmap.bmp");LADET TERRAIN
text1=LoadTexture("gras.bmp");LADET TEXTUR
text2=LoadTexture ("terrain text2.bmp");WIE OBEN
text3=LoadTexture("mapt1.bmp");WIE OBEN
EntityType terrain,map
EntityTexture terrain,text1;VERBINDET TEXTUR(ERSTE SCHICHT)
EntityTexture terrain,text2,0,1;WIE OBEN(ZWEITE SCHICHT)
EntityTexture terrain,text3,0,2;WIE OBEN(DRITTE SCHICHT)
ScaleEntity terrain,50,290,50;ÄNDERT SKALLIERUNG EINES 3D OBJEKTS
ScaleTexture text2,3,3;WIE OBEN BLOß EINER TEXTUR

;;;;wasser
water=CreatePlane();MACHT EINE EBENE
watertext=LoadTexture ("water2.bmp",2);TEXTUR LADEN
EntityTexture water, watertext;VERBINDET TEXTUR
ScaleTexture watertext,100,100;ÄNDERT TEXTUR
MoveEntity water,0,10,0;BEWEGT DAS 3D OBJEKT ZU DEN KOORDINATEN
EntityAlpha water,0.5;MACHT DAS 3D OBJEKT UNSICHTBAR(0=UNSICHTBAR;1=SICHTBAR

;;;;camera
cam=CreateCamera();MACHT EINE KAMERA
PositionEntity cam,1000,400,1000
CameraFogMode cam,1;NEBEL AN/AUS
CameraRange cam,1,900000;MIN/MAX KAMERAENTFERNUNG
CameraFogRange cam,100,4000;NEBEL ENTFERNUNG EINER KAMERA
CameraFogColor cam,40,140,255;FARBE DES NEBELS
CameraClsColor cam,40,140,255;ÄNDERT HINTERGRUNDFARBE DER KAMERA


;;;;;licht
light=CreateLight();MACHT EIN LICHT
TurnEntity light,45,45,0;DREHT DAS OBJEKT UM EINEN RELATIVEN WINKEL

;;;;;plane
Global plane1=LoadMesh("biplane.x");flugzeug laden
PositionEntity plane1,1000,400,1050;positionieren
TurnEntity plane1,0,180,0
EntityType plane1,player
hi=LoadTexture("wings.bmp");texture laden
hallo=LoadTexture("bihull.bmp");wie oben
EntityTexture plane1,hi,0,0
EntityTexture plane1,hallo,0,1

;;;;;pivot
Piv=CreatePivot(plane1):PositionEntity Piv,0,0,10;macht einen pivot und positioniert ihn

;;;gegner
Global gegner1=LoadMesh("biplane.x")
PositionEntity gegner1,1000,400,1100
EntityTexture gegner1,hi,0,0
EntityTexture gegner1,hallo,0,1
;;;;;gegner2
Global gegner2=LoadMesh("biplane.x")
PositionEntity gegner2,2000,400,1300
EntityTexture gegner2,hi,0,0
EntityTexture gegner2,hallo,0,1

;;;;;funktion
;Function NeuerSchuss()
;S.Schuss = New Schuss
;S\Entity =LoadMesh("biplane.x")
;ScaleEntity S\Entity, 0.1, 0.1, 0.5
;PositionEntity S\Entity,EntityX#(plane1),EntityY#(plane1),EntityZ#(plane1)
;RotateEntity S\Entity,EntityPitch#(plane1), EntityYaw#(plane1), EntityRoll#(plane1)
;EntityRadius S\Entity, 0.1
;EntityType S\Entity,shot
;Magazin = Magazin - 1
;End Function

Collisions player,map,2,2
;Collisions shot,gegner,2,1


While Not KeyHit(1);WENN DER  KNOPF NICHT GEDRÜCKT WIRD DANN


If KeyDown(200) Then TurnEntity plane1,1,0,0;wie oben
   If KeyDown(208) Then TurnEntity plane1,-1,0,0;wie oben bloß unten
   If KeyDown(205) Then TurnEntity plane1,0,0,2;rechts oder links
   If KeyDown(203) Then TurnEntity plane1,0,0,-2;wie oben
   If KeyDown(57) Then MoveEntity plane1,0,0,-1
   ;If KeyHit(57) Then ;wenn leertaste gedrückt wird dann
   ;If Magazin > 0 Then NeuerSchuss();ist das magazin >0 dann neuerschuss(funktion)
   ;If Magazin=0 Then Magazin=100;ist das magazin=0 dann ist das magazin=100
;EndIf

   camsp#=.05;nur eine zahl ,dadurch muss man nicht immer die zahl eingeben
   dx#=(EntityX(Piv,1)-EntityX(cam,1))*camsp#;dx# =von piv die x koordinaten- die von der cam *camsp
   dy#=(EntityY(Piv,1)-EntityY(cam,1))*camsp#;das gleiche bloß mit y
   dz#=(EntityZ(Piv,1)-EntityZ(cam,1))*camsp#;das gleiche bloß mit z
   TranslateEntity cam,dx#,dy#,dz#;verschiebt das objekt um die koordienaten
   Yaw#=DeltaYaw(cam,plane1)*camsp#;liefert den y winkel zwischen den objekten *camsp
   Pitch#=DeltaPitch(cam,plane1)*camsp#;wie oben bloß x winkel *camsp
   TurnEntity cam,Pitch#,Yaw#,0;dreht die cam in den errechneten winkel
   
;For T.Schuss = Each Schuss
;   MoveEntity T\Entity,0,0, 1.5;bewegt das objekt
;   RotateEntity T\Entity,180,0,0
;   EntityParent T\Entity, plane1
   
;If EntityDistance (T\Entity,  plane1) > 100 Then;ist der abstand vom schuss und dem flugzeug höher als 100 dann
;   HideEntity T\Entity;versteckt das objekt
;   Delete T.Schuss;löscht das objekt
;EndIf
;Next


   UpdateWorld()
   
For i=1 To CountCollisions(plane1)
   If CollisionEntity(plane1, i)= terrain
   DebugLog "Absturz"
   WaitKey()
   ;HideEntity plane1
   EndIf
Next

   RenderWorld()

;Color 0,255,0 :Text 20,300, Magazin
;Text 20,70, wievielgegner+"=wie viel du schon hast"
;Text 20,50, gegneranzahl + "=wie viel gegner du einfangen musst"


;If MeshesIntersect (plane1,gegner1) Then
;HideEntity gegner1
;wievielgegner=1
;EndIf

;If MeshesIntersect (plane1,gegner2) Then
;HideEntity gegner2
;wievielgegner=2
;EndIf

;If wievielgegner=2 Then Text 300,300,"Du hast gewonnen,press escape!!!"


Flip
Wend
ClearWorld
End

   

Midimaster

BeitragSa, Jan 02, 2010 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
sehr schön, aber jetzt nochwas zu deinem Code-Stil:


Alle Aktionen in einzelne Funktionen

setze solche Aktionen wie die Kollisionsabfrage in eine eigene Funktion:

Zitat:
...
UpdateWorld()
For i=1 To CountCollisions(plane1)
Local i%
If CollisionEntity(plane1, i)= terrain
DebugLog "Absturz"
HideEntity plane1
EndIf
Next
RenderWorld()
...


wird dann zu:
BlitzBasic: [AUSKLAPPEN]
...
UpdateWorld()
KollisionFlugzeug()
RenderWorld()
...
Wend
....
End

Function KollisionFlugzeug()
For i=1 To CountCollisions(plane1)
If CollisionEntity(plane1, i)= terrain
DebugLog "Absturz"
HideEntity plane1
EndIf
Next
End Function


Der Vorteil ist, dass du dann Funktionen kurz ausschalten kannst, ohne jede Zeile der Funktion ausmarkieren zu müssen:
BlitzBasic: [AUSKLAPPEN]
...
UpdateWorld()
;KollisionFlugzeug()
RenderWorld()
...
Wend
....
End



und nochmal:

Funktionen gehören unten in den Code. Tatsächlich unterhalb von END!!!


Kommentare
Du kommentierst jede Zeile. Das ist zuviel! Wenn Du es wirklich für dich als Verständnis brauchst, dann bleib dabei. Aber für die anderen hier im Forum oder für dich, wenn Du in einem Jahr wieder reinschaust in den Code, ist es zu viel! Die meisten Befehle erklären sich doch von selbst. Und du verwendest ja schon sehr sinnvolle Variablennamen (Lob!!!). Pro 5 Zeilen ein Kommentar genügt.

übles Beispiel wäre: Laughing

Zitat:
A%=A%+5 ; zu der Zahl A% jetzt 5 dazuzählen
 

masterman123

BeitragSa, Jan 02, 2010 17:07
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für alles aber wie macht man jetzt eine explosion

das beispiel ist gut ok ich wert weniger kommentieren

aber wenn ich die funktion benutze geht es nicht mehr

Midimaster

BeitragSa, Jan 02, 2010 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
...aber wie macht man jetzt eine explosion


Mit Sprites: Du zeichnest 4 Bilder, die 4 Stufen einer Explosion (Feuer und Rauch) zeigen und läßt sie wie einen Film an der CrashStelle abspielen.

Zitat:
aber wenn ich die funktion benutze geht es nicht mehr


das allein wäre noch kein grund ohne funktionen zu arbeiten. Wahrscheinlich ist halt ein Fehler drin....

Welche Funktion geht denn nicht? (bitte zum Test einzeln ein-/ausschalten)

Nicdel

BeitragSa, Jan 02, 2010 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
danke für alles aber wie macht man jetzt eine explosion


Da findest du über die Suche vieles. Am Besten du nimmst Sprites (LoadSprite), Kugeln (CreateSphere) gehen auch.

Zitat:
aber wenn ich die funktion benutze geht es nicht mehr


Alles Global, was in der Funktion benutzt wird?
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

masterman123

BeitragSa, Jan 02, 2010 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
midimaster:

die funktion geht nich
Code: [AUSKLAPPEN]
Function KollisionFlugzeug()
For i=1 To CountCollisions(plane1)
If CollisionEntity(plane1, i)= terrain
DebugLog "Absturz"
HideEntity plane1
EndIf
Next
End Function


nicdel danke für die antwort
  • Zuletzt bearbeitet von masterman123 am Sa, Jan 02, 2010 19:38, insgesamt einmal bearbeitet

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group