Kollision terrain-mesh

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

smackers

Betreff: Kollision terrain-mesh

BeitragSa, Aug 06, 2011 0:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute.
Ich weiss dass es schon viele Themen Über die Kollision von mesh mit terrain gibt aber die haben mir nicht weitergeholfen.
Also ich hab hier jetzt ein Programm gemacht in dem man mit einem Flugzeug in einem Terretorium rumfligen kann.
So wie xfighter.
Aber ich kann problemlos durch berge und wände fliegen.
Wie kann ich das ändern.
Hier mal der ganze Code:

BlitzBasic: [AUSKLAPPEN]


Graphics3D 800,600,32,1

SetBuffer BackBuffer()




plane=LoadMesh( "biplane.x" )

Flugzeugfarbe=LoadTexture("Flugzeugfarbe.bmp")

PositionEntity plane,0,0,0

EntityTexture plane,Flugzeugfarbe,0,0

ScaleMesh plane,0.2,0.2,0.2

ScaleTexture Flugzeugfarbe,1,1



LP = LoadSound("madcon-glow.mp3")



cam=CreateCamera(plane)



CameraFogMode cam,1

CameraRange cam,1,30000

CameraFogRange cam,10000,400000

CameraFogColor cam,40,140,255

CameraClsColor cam,40,140,255

PositionEntity cam,0,0,3
light=CreateLight()

TurnEntity light,45,45,0


;Load terrain
terr=LoadTerrain( "Höhenmap.bmp" )
ScaleEntity terr,20,800,20
PositionEntity terr,-20*512,0,-20*512
EntityFX terr,1
EntityType terr,10

;apply textures to terrain
tex1=LoadTexture( "textur1.bmp",1 )
ScaleTexture tex1,10,10
tex2=LoadTexture( "textur2.bmp" )
ScaleTexture tex2,TerrainSize(terr),TerrainSize(terr)
EntityTexture terr,tex1,0,0
EntityTexture terr,tex2,0,1





tex=LoadTexture( "Wasser.bmp",3 )
ScaleTexture tex,10,10
p=CreatePlane()
EntityTexture p,tex
EntityBlend p,1
EntityAlpha p,.75
PositionEntity p,0,10,0
EntityFX p,1


RotateEntity cam,0,180,0

Print "Press H for Help"
Cls
While Not KeyHit(1)

If KeyDown(35) Then Print "Space=Move forward w,a,s,d=up,right,down,left y=backward e=show grid r=hide grid "

If KeyDown(57) Then MoveEntity plane,0,0,-10

If KeyDown(44) Then MoveEntity plane,0,0,1

If KeyDown(17) Then TurnEntity plane,1,0,0

If KeyDown(30) Then TurnEntity plane,0,1,0

If KeyDown(31) Then TurnEntity plane,-1,0,0

If KeyDown(32) Then TurnEntity plane,0,-1,0



If KeyDown(18) Then WireFrame(1)

If KeyDown(19) Then WireFrame(0)






RenderWorld

Flip

Wend
ClearWorld

WaitKey

End
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei.

Xeres

Moderator

BeitragSa, Aug 06, 2011 0:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Du brauchst EntityType, Collisions und UpdateWorld - so wie es bestimmt in vielen Themen zu finden wäre...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

smackers

Betreff: ok danke

BeitragSa, Aug 06, 2011 0:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ok ich versuchs mal.
ich schreib ob ichs hinbekommen hab.
Wiedermal danke Xeres
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei.

smackers

Betreff: hmm versucht hat aber nicht geklappt

BeitragSa, Aug 06, 2011 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
hier der code
BlitzBasic: [AUSKLAPPEN]


Graphics3D 800,600,32,1

SetBuffer BackBuffer()




plane=LoadMesh( "biplane.x" )

Flugzeugfarbe=LoadTexture("Flugzeugfarbe.bmp")

PositionEntity plane,0,0,0

EntityTexture plane,Flugzeugfarbe,0,0

ScaleMesh plane,0.2,0.2,0.2

ScaleTexture Flugzeugfarbe,1,1

EntityType plane, 2
EntityRadius plane, 1

LP = LoadSound("madcon-glow.mp3")



cam=CreateCamera(plane)



CameraFogMode cam,1

CameraRange cam,1,30000

CameraFogRange cam,10000,400000

CameraFogColor cam,40,140,255

CameraClsColor cam,40,140,255

PositionEntity cam,0,0,3
light=CreateLight()

TurnEntity light,45,45,0


;Load terrain
terr=LoadTerrain( "Höhenmap.bmp" )
ScaleEntity terr,20,800,20
PositionEntity terr,-20*512,0,-20*512
EntityFX terr,1
EntityType terr,1

EntityRadius terr, 1
;apply textures to terrain
tex1=LoadTexture( "textur1.bmp",1 )
ScaleTexture tex1,10,10
tex2=LoadTexture( "textur2.bmp" )
ScaleTexture tex2,TerrainSize(terr),TerrainSize(terr)
EntityTexture terr,tex1,0,0
EntityTexture terr,tex2,0,1





tex=LoadTexture( "Wasser.bmp",3 )
ScaleTexture tex,10,10
p=CreatePlane()
EntityTexture p,tex
EntityBlend p,1
EntityAlpha p,.75
PositionEntity p,0,10,0
EntityFX p,1


RotateEntity cam,0,180,0

Print "Press H for Help"
Cls


Collisions 1, 2, 2, 2
While Not KeyHit(1)

If KeyDown(35) Then Print "Space=Move forward w,a,s,d=up,right,down,left y=backward e=show grid r=hide grid "

If KeyDown(57) Then MoveEntity plane,0,0,-10

If KeyDown(44) Then MoveEntity plane,0,0,1

If KeyDown(17) Then TurnEntity plane,1,0,0

If KeyDown(30) Then TurnEntity plane,0,1,0

If KeyDown(31) Then TurnEntity plane,-1,0,0

If KeyDown(32) Then TurnEntity plane,0,-1,0



If KeyDown(18) Then WireFrame(1)

If KeyDown(19) Then WireFrame(0)





UpdateWorld
RenderWorld

Flip

Wend
ClearWorld

WaitKey

End


http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei.

Xeres

Moderator

BeitragSa, Aug 06, 2011 1:23
Antworten mit Zitat
Benutzer-Profile anzeigen
"Klappt nicht" ist keine Fehlerbeschreibung mit der dir weiter geholfen werden kann... Besser wird's auch nicht, wenn du nochmal einen Thread mit exakt dem selben Code eröffnest.
Wenn du Hilfe erwartest, wäre es angebracht etwas mehr Eigeninitiative zu zeigen, als den Code hin zu posten, ohne Hinweis, was du gesucht und ausprobiert hast, oder wo du den Fehler vermutest.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

smackers

BeitragSa, Aug 06, 2011 1:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Xeres hat Folgendes geschrieben:
"Klappt nicht" ist keine Fehlerbeschreibung mit der dir weiter geholfen werden kann... Besser wird's auch nicht, wenn du nochmal einen Thread mit exakt dem selben Code eröffnest.
Wenn du Hilfe erwartest, wäre es angebracht etwas mehr Eigeninitiative zu zeigen, als den Code hin zu posten, ohne Hinweis, was du gesucht und ausprobiert hast, oder wo du den Fehler vermutest.


Ja mit es klappt nicht, meine ich dass ich immernoch durch das Terrain fliegen kann.
Wo der Fehler ist??
Keine Ahnung.(deshalb frage ich ja)
Und das mit dem Doppelpst, sry, aber hier hat nmd mehr geantwortet und es war ja nicht das selbe.
Das hier war was ich tun soll ,damit ich es hinbekomme und der andere war warum ,mein Getanes nicht klappt.
naja egal.
Also was würdest du sagen stimmt nicht an dem Code warum die Kollision nicht klappt?
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei.

Xeres

Moderator

BeitragSa, Aug 06, 2011 1:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Je einfacher du es uns machst, desto eher und schneller wird dir geholfen: Dein Code enthält unnötiges Zeug und Ressourcen die hier keiner hat. Schritt eins wäre also, LoadMesh mit CreateCube o.ä. zu ersetzen und alles, was nicht direkt gebraucht wird, um die Kollision zu testen, zu entfernen.
Tritt das Problem noch auf? Den kurzen Code posten und du bekommst schnell eine Antwort.
Tritt das Problem da nicht mehr auf? Vergleiche deinen Code und überlege, woran's liegen könnte.
Viel Erfolg beim debuggen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

smackers

BeitragSa, Aug 06, 2011 1:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Xeres hat Folgendes geschrieben:
Je einfacher du es uns machst, desto eher und schneller wird dir geholfen: Dein Code enthält unnötiges Zeug und Ressourcen die hier keiner hat. Schritt eins wäre also, LoadMesh mit CreateCube o.ä. zu ersetzen und alles, was nicht direkt gebraucht wird, um die Kollision zu testen, zu entfernen.
Tritt das Problem noch auf? Den kurzen Code posten und du bekommst schnell eine Antwort.
Tritt das Problem da nicht mehr auf? Vergleiche deinen Code und überlege, woran's liegen könnte.
Viel Erfolg beim debuggen.

Ok danke für deinen Tipp.
Ich werde gleich einmal alle unnötigen Sachen entfernen.
ty für die schnellen Antworten
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei.

smackers

Betreff: terrain

BeitragSa, Aug 06, 2011 1:57
Antworten mit Zitat
Benutzer-Profile anzeigen
smackers hat Folgendes geschrieben:
Xeres hat Folgendes geschrieben:
Je einfacher du es uns machst, desto eher und schneller wird dir geholfen: Dein Code enthält unnötiges Zeug und Ressourcen die hier keiner hat. Schritt eins wäre also, LoadMesh mit CreateCube o.ä. zu ersetzen und alles, was nicht direkt gebraucht wird, um die Kollision zu testen, zu entfernen.
Tritt das Problem noch auf? Den kurzen Code posten und du bekommst schnell eine Antwort.
Tritt das Problem da nicht mehr auf? Vergleiche deinen Code und überlege, woran's liegen könnte.
Viel Erfolg beim debuggen.

Ok danke für deinen Tipp.
Ich werde gleich einmal alle unnötigen Sachen entfernen.
ty für die schnellen Antworten

Ok ich hab jetzt mein mesh dur eine Kugel(sphere) ersetzt und die Texturen entfernt.
Aber durch was soll ich das Terrain ersetzen?
Weil die Highmap hast du ja nicht.
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei.

smackers

Betreff: klappt

BeitragSa, Aug 06, 2011 2:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok gut ich habs.
es lag daran dass ich den beiden Kollisionspartnern die gleiche Integerzahl zugeordnet habe.
Also danke nochmal dass du mir immer so schnell antwortest und mir erklärst wie ich hier am besten zu einer Antwort komme.
Ty Razz
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei.

Xeres

Moderator

BeitragSa, Aug 06, 2011 2:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte hör' erst mal auf alle vorhergehenden Posts zu zitieren - es ist ziemlich unzweideutig auf was du dich beziehst - und doppelposts sollten ebenfalls vermieden werden - Editier eher deinen letzten Beitrag, wenn du was hinzu zu fügen hast.

Ich würde CreateTerrain oder CreatePlane empfehlen - die richtige Geometrie sollte eigentlich nicht von belang sein.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group