kollisionen
Übersicht

![]() |
smackersBetreff: kollisionen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo leute.
Ich habe ein Problem: Bei mir funktionieren die kollisionen zwischen den Umgebungsmeshes und dem Spieler nicht. Ich hoffe ihr könnt mir helfen: Code: [AUSKLAPPEN] Graphics3D 1920,1080,32,1
SetBuffer BackBuffer() sphere = CreateSphere() ScaleEntity sphere,0.000001,0.000001,0.000001 player=LoadMesh("meshes/figur.3ds") EntityType player, 1 EntityRadius player,1;!!!!!!!!!!!!!!!!!!!!! PositionEntity sphere,0,2,0 Global light=CreateLight() Global camera=CreateCamera() PositionEntity camera,0,2,-2 links=LoadMesh("meshes/links.3ds"); PositionEntity links,0,-0.5,0 EntityType links,2 rechts=LoadMesh("meshes/rechts.3ds"); PositionEntity rechts,0,-0.5,0 EntityType rechts,2 türme=LoadMesh("meshes/4tower.3ds"); PositionEntity türme,0,-0.5,0 EntityType türme,2 mitte1=LoadMesh("meshes/mitte1.3ds"); PositionEntity mitte1,0,-0.5,0 EntityType mitte1,2 mitte2=LoadMesh("meshes/mitte2.3ds"); PositionEntity mitte2,0,-0.5,0 EntityType mitte2,2 Collisions 1,2,2,2 Global steuerungsvariable = 1 While Not KeyHit(1) If KeyHit(42) If steuerungsvariable = 1 steuerungsvariable = 2 Else steuerungsvariable = 1 End If End If If steuerungsvariable = 1 mausx = -MouseX() +100;!!!!!! EntityParent camera,sphere EntityParent sphere,player RotateEntity sphere,MouseY(),mausx,0 Else If steuerungsvariable = 2 mausx = -MouseX() +100;!!!!!! EntityParent camera,player RotateEntity player,0,mausx,0 End If If KeyDown(200) Or KeyDown(17) ;hoch/W MoveEntity player,0,0,0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(203) Or KeyDown(30) ;links/A MoveEntity player,-0.1,0,0 ;rechts/links hoch/runter vor/zurück End If If KeyDown(208) Or KeyDown(31) ;links/S MoveEntity player,0,0,-0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(205) Or KeyDown(32) ;links/S MoveEntity player,0.1,0,0 ;rechts/links hoch/runter vor/zurück End If RenderWorld VWait:Flip False Wend End Sorry dass der code so schlecht formatiert ist, aber ich habe gerade wenig Zeit. Danke schonmal Lg smackers |
||
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei. |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das einzige, was fehlt, ist ein updateworld vor renderworld. ![]() |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
verwende vor Renderworld![]() ![]() ![]() EDIT: Zitat: Die Anweisung UpdateWorld animiert alle Objekte und überprüft die auf Kollision.
|
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
smackersBetreff: leider nicht |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein das hat acuh nix gebracht
code sieht jetzt so aus(gleicher code nur mit update world) Benutze ich es evtl falsch? Code: [AUSKLAPPEN] Graphics3D 1920,1080,32,1
SetBuffer BackBuffer() sphere = CreateSphere() ScaleEntity sphere,0.000001,0.000001,0.000001 player=LoadMesh("meshes/figur.3ds") EntityType player, 1 EntityRadius player,1;!!!!!!!!!!!!!!!!!!!!! PositionEntity sphere,0,2,0 Global light=CreateLight() Global camera=CreateCamera() PositionEntity camera,0,2,-2 links=LoadMesh("meshes/links.3ds"); PositionEntity links,0,-0.5,0 EntityType links,2 rechts=LoadMesh("meshes/rechts.3ds"); PositionEntity rechts,0,-0.5,0 EntityType rechts,2 türme=LoadMesh("meshes/4tower.3ds"); PositionEntity türme,0,-0.5,0 EntityType türme,2 mitte1=LoadMesh("meshes/mitte1.3ds"); PositionEntity mitte1,0,-0.5,0 EntityType mitte1,2 mitte2=LoadMesh("meshes/mitte2.3ds"); PositionEntity mitte2,0,-0.5,0 EntityType mitte2,2 Collisions 1,2,2,2 Global steuerungsvariable = 1 While Not KeyHit(1) If KeyHit(42) If steuerungsvariable = 1 steuerungsvariable = 2 Else steuerungsvariable = 1 End If End If If steuerungsvariable = 1 mausx = -MouseX() +100;!!!!!! EntityParent camera,sphere EntityParent sphere,player RotateEntity sphere,MouseY(),mausx,0 Else If steuerungsvariable = 2 mausx = -MouseX() +100;!!!!!! EntityParent camera,player RotateEntity player,0,mausx,0 End If If KeyDown(200) Or KeyDown(17) ;hoch/W MoveEntity player,0,0,0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(203) Or KeyDown(30) ;links/A MoveEntity player,-0.1,0,0 ;rechts/links hoch/runter vor/zurück End If If KeyDown(208) Or KeyDown(31) ;links/S MoveEntity player,0,0,-0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(205) Or KeyDown(32) ;links/S MoveEntity player,0.1,0,0 ;rechts/links hoch/runter vor/zurück End If UpdateWorld RenderWorld Flip Wend End weitere vorschläge? |
||
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei. |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du musst mit entityradius noch den objekten den passenden radius geben.
anfangs sind die schon ineinander soweit ich sehen kann. |
||
![]() |
smackers |
![]() Antworten mit Zitat ![]() |
---|---|---|
bjh hat Folgendes geschrieben: du musst mit entityradius noch den objekten den passenden radius geben.
anfangs sind die schon ineinander soweit ich sehen kann. Also ich habe jetzt jedem objekt einen entityradius von 1 gegeben aber es klappt immernoch nicht. ![]() Code: [AUSKLAPPEN] Graphics3D 1920,1080,32,1
SetBuffer BackBuffer() sphere = CreateSphere() ScaleEntity sphere,0.000001,0.000001,0.000001 player=LoadMesh("meshes/figur.3ds") EntityType player, 1 EntityRadius player,1;!!!!!!!!!!!!!!!!!!!!! PositionEntity sphere,0,2,0 Global light=CreateLight() Global camera=CreateCamera() PositionEntity camera,0,2,-2 links=LoadMesh("meshes/links.3ds"); PositionEntity links,0,-0.5,0 EntityType links,2 EntityRadius links,1 rechts=LoadMesh("meshes/rechts.3ds"); PositionEntity rechts,0,-0.5,0 EntityType rechts,2 EntityRadius rechts,1 türme=LoadMesh("meshes/4tower.3ds"); PositionEntity türme,0,-0.5,0 EntityType türme,2 EntityRadius türme,1 mitte1=LoadMesh("meshes/mitte1.3ds"); PositionEntity mitte1,0,-0.5,0 EntityType mitte1,2 EntityRadius mitte1,1 mitte2=LoadMesh("meshes/mitte2.3ds"); PositionEntity mitte2,0,-0.5,0 EntityType mitte2,2 EntityRadius mitte2,1 Collisions 1,2,2,2 Global steuerungsvariable = 1 While Not KeyHit(1) If KeyHit(42) If steuerungsvariable = 1 steuerungsvariable = 2 Else steuerungsvariable = 1 End If End If If steuerungsvariable = 1 mausx = -MouseX() +100;!!!!!! EntityParent camera,sphere EntityParent sphere,player RotateEntity sphere,MouseY(),mausx,0 Else If steuerungsvariable = 2 mausx = -MouseX() +100;!!!!!! EntityParent camera,player RotateEntity player,0,mausx,0 End If code: If KeyDown(200) Or KeyDown(17) ;hoch/W MoveEntity player,0,0,0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(203) Or KeyDown(30) ;links/A MoveEntity player,-0.1,0,0 ;rechts/links hoch/runter vor/zurück End If If KeyDown(208) Or KeyDown(31) ;links/S MoveEntity player,0,0,-0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(205) Or KeyDown(32) ;links/S MoveEntity player,0.1,0,0 ;rechts/links hoch/runter vor/zurück End If UpdateWorld RenderWorld Flip Wend End |
||
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei. |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst du den Code bitte richtig einrücken? So macht's keinen Spaß ihn zu korrigieren. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
smackers |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist eine schlechte Angewohntheit.
Ich habe es von Anfang an so gemacht und wenn ich es versuche mir abzugewöhnen, dann filde ich es immer ungewohnt und dadurch auch unübersichtlich. Aber ich arbeite dran ![]() |
||
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei. |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dann versuchs mit nem kleinerem wert z.b. 0,1 | ||
![]() |
smackers |
![]() Antworten mit Zitat ![]() |
---|---|---|
bjh hat Folgendes geschrieben: dann versuchs mit nem kleinerem wert z.b. 0,1
nein dass hat auch nicht geklappt. Also ich habe den code nun mal auf das wesentliche reduziert und finde immernoch nichts. An den modellen liegt es nicht, da es, wenn ich die modelle im B3d Kollisionsbsp einfüge, klappt. Aber ich finde nciht, was ich anders gemacht habe, im Gegensatz zum Beispiel. reduzierter code(sogar ein wenig eingerückt) : Code: [AUSKLAPPEN] Graphics3D 640, 480 SetBuffer BackBuffer() player=LoadMesh("meshes/figur.3ds") EntityType player, 1 EntityRadius player,0.1 Global light=CreateLight() Global camera=CreateCamera() PositionEntity camera,0,2,-2 links=LoadMesh("meshes/links.3ds"); PositionEntity links,0,-0.5,0 EntityType links,2 Collisions 1,2,2,2 While Not KeyHit(1) If KeyDown(200) Or KeyDown(17) ;hoch/W MoveEntity player,0,0,0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(203) Or KeyDown(30) ;links/A MoveEntity player,-0.1,0,0 ;rechts/links hoch/runter vor/zurück End If If KeyDown(208) Or KeyDown(31) ;links/S MoveEntity player,0,0,-0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(205) Or KeyDown(32) ;links/S MoveEntity player,0.1,0,0 ;rechts/links hoch/runter vor/zurück End If UpdateWorld RenderWorld Flip Wend End |
||
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
In deinem letzten Code hast du "links" kein EntityRadius![]() ![]() |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
smackers |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ich gemacht, aber es klappt immernoch nicht.
Auserdem wird in dem B3D Beispiel ja auch nicht jedem objekt ein Entityradius zugeordnet, sondern nur dem beweglichen Objekt. nochmal der verbesserte code mit entityradius bei links: Code: [AUSKLAPPEN] Graphics3D 640, 480 SetBuffer BackBuffer() player=LoadMesh("meshes/figur.3ds") EntityType player, 1 EntityRadius player,0.1 Global light=CreateLight() Global camera=CreateCamera() PositionEntity camera,0,2,-2 links=LoadMesh("meshes/links.3ds"); PositionEntity links,0,-0.5,0 EntityType links,2 EntityRadius links,1 Collisions 1,2,2,2 While Not KeyHit(1) If KeyDown(200) Or KeyDown(17) ;hoch/W MoveEntity player,0,0,0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(203) Or KeyDown(30) ;links/A MoveEntity player,-0.1,0,0 ;rechts/links hoch/runter vor/zurück End If If KeyDown(208) Or KeyDown(31) ;links/S MoveEntity player,0,0,-0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(205) Or KeyDown(32) ;links/S MoveEntity player,0.1,0,0 ;rechts/links hoch/runter vor/zurück End If UpdateWorld RenderWorld Flip Wend End |
||
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mache es uns einfacher, indem du selbst den Grafikmodus zu Fenster setzt und die Meshes, die wir nicht besitzen und damit den Code nicht starten können, durch CreateCube![]() Wenn ich das tue, gibt es eindeutig Kollision. |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
smackers |
![]() Antworten mit Zitat ![]() |
---|---|---|
Xeres hat Folgendes geschrieben: Mache es uns einfacher, indem du selbst den Grafikmodus zu Fenster setzt und die Meshes, die wir nicht besitzen und damit den Code nicht starten können, durch CreateCube
![]() Wenn ich das tue, gibt es eindeutig Kollision. Grafikmodus zu Fenster setzen? Wie ist das gemeint? also hier habe ich die meshes mit sphere(player) und einem cube(umgebung) ausgetauscht und bei mir klappts nicht. Code: [AUSKLAPPEN] Graphics3D 640, 480 SetBuffer BackBuffer() player=CreateSphere() EntityType player, 1 EntityRadius player,0.1 Global light=CreateLight() Global camera=CreateCamera() PositionEntity camera,0,2,-2 links=CreateCube() PositionEntity links,0,-0.5,0 EntityType links,2 EntityRadius links,1 Collisions 1,2,2,2 While Not KeyHit(1) If KeyDown(200) Or KeyDown(17) ;hoch/W MoveEntity player,0,0,0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(203) Or KeyDown(30) ;links/A MoveEntity player,-0.1,0,0 ;rechts/links hoch/runter vor/zurück End If If KeyDown(208) Or KeyDown(31) ;links/S MoveEntity player,0,0,-0.1 ;rechts/links hoch/runter vor/zurück End If If KeyDown(205) Or KeyDown(32) ;links/S MoveEntity player,0.1,0,0 ;rechts/links hoch/runter vor/zurück End If UpdateWorld RenderWorld Flip Wend End |
||
http://www.raetselstunde.de/lo...etsel.html
Also ich war nach 45min bei den 2% dabei. |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
graphics3d 640,480,32,2
bei mir funktioinert die kollision du musst erst mal nach hinten fahren und dann wieder nach vorne und dann klappts |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir funktioniert die Collision auch. Ein logischer Code-Fehler ist es also nicht. | ||
Twitter
Download Jewel Snake! Windows|Android |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group