Fragen zum 3D Beispiel FPSFirstPerson.pb

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Makke »

Hallo zusammen,

ich habe mir das Beispiel angesehen und dazu ein Paar Fragen. Augenscheinlich ist die Physic-Engine aktiviert, obwohl nirgend wo der Befehl: EnableWorldPhysics(1) auftaucht (auch nicht in der ScreenRequester.pbi), erkennen kann man es wohl an folgenden Zeilen im Code:

Code: Alles auswählen

RenderWorld(60) ; = ElapsedPhysicTime 
und

Code: Alles auswählen

Procedure OnGround(*Entity.s_Entity)
  ProcedureReturn RayCollide(NodeX(*Entity\MainNode),  NodeY(*Entity\MainNode)+1, NodeZ(*Entity\MainNode), NodeX(*Entity\MainNode), NodeY(*Entity\MainNode)-3,  NodeZ(*Entity\MainNode)) 
EndProcedure
RayCollide() funktioniert nach Beschreibung mit aktivierter Physic Engine.

Heißt für mich die Physic Engine ist immer an, wenn ich beispielsweise in einem Code: EnableWorldPhysics(0) einbaue, ist die Physic-Engine anscheinend trotzdem noch an, da mit World-Debug die Hitboxen noch angezeigt werden und wenn ich mit einem Entity eine Steigung oder ein Gefälle von sagen wir zwei Planes ablaufe, fällt das Entity beim Übergang hinunter.

EIne weitere Frage die mich beschäftigt,an welcher Stelle sorgt der Code, wie in dem Beispiel Waterworld.mesh, dafür, das das Spieler-Entity nicht durch Wände gehen kann.

In dem Beispiel-Code wird zuerst das Entity bewegt und rotiert und dann kommen die Nodes nach, bei mir ist es genauso, aber ich habe keine Nodes. Wenn ich meine Leveldatei in das Beispiel einbinde, kann das Spieler-Entity nicht durch die Wände gehen.

Wäre nett wenn mir hier einer Tips geben könnte.
---
Windows 11 (64 bit)
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Chimorin »

Zeile 127:

Code: Alles auswählen

EntityPhysicBody(2, #PB_Entity_StaticBody)
Waterworld ist Nummero 2 (Ich hasse das mit den Nummern, warum können die Beispielersteller nicht Konstanten oder Variablen nehmen?!).

In der Hilfe steht, dass die Physik und die Kollisionen standartmäßig an sind (Siehe: EnableWorldCollisions() + EnableWorldCollisions(Status)
). Halte ich für nicht ganz gelungen... Ich hätte den Standartwert auf #False gesetzt.
Zuletzt geändert von Chimorin am 25.07.2013 11:55, insgesamt 2-mal geändert.
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Makke »

In meinem Beispiel habe ich der Level-Datei auch einen Statischen Körper verpasst. Trotzdem kann ich durch Wände gehen. Noch eine Idee ?

Und noch etwas merwürdiges, wie kann ich beim Entity den Schattenwurf ausstellen, der ist auch standardmäßig immer an.
---
Windows 11 (64 bit)
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Chimorin »

Siehe diesen Thread wegen den Schatten:
http://www.purebasic.fr/german/viewtopi ... =4&t=27035
Vllt kannst du mir ja auch helfen ;)

Hast du deiner Figur (was auch immer) auch einen Körper verpasst?
Gibts Code?
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Makke »

Hi, den Code für die Steuerung usw. kannst Du von diesem Thread nehmen: http://www.purebasic.fr/german/viewtopi ... =4&t=27028

Bevor ich die Player_Create() Funktion aufgerufen habe, habe ich mit folgendem Code das Level geladen:

Code: Alles auswählen

;--- create level
SkyBox("evening.png")
CreateEntity(#Entity_Level, LoadMesh(0, "level_desert.mesh"), #PB_Material_None, 0, 0, 0, #Mask_Entity_Level)
ScaleEntity(#Entity_Level, 0.015, 0.015, 0.015)
EntityPhysicBody(#Entity_Level, #PB_Entity_StaticBody)
EntityRenderMode(#Entity_Level, #PB_Entity_CastShadow)
CreateLight(#Light_Sun_Level, RGB(200, 90, 10), 4000, 2000, 0, #PB_Light_Directional)
LightLookAt(#Light_Sun_Level, 0, 0, 0)
AmbientColor(RGB(50, 22, 2))
Ich kann in dem Level durch Wände gehen usw. obwohl ich also nichts anders gemacht habe als in dem Beispiel, bin ziemlich ratlos.
---
Windows 11 (64 bit)
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Chimorin »

Nein, ich meine, ob das Entity, welches du rumfahren lässt, was hat das für einen Physik Körper?
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Makke »

Das hat folgenden: #PB_Entity_ConvexHullBody

Wenn ich mir mit WorldDebug die physischen Körper anzeigen lasse, wird das Spieler-Entity auch mit dem Körper (#PB_Entity_ConvexHullBody) angezeigt.
---
Windows 11 (64 bit)
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Chimorin »

Hmm, ich bin mir nicht sicher, aber ich meine mal das Problem gehabt zu haben. Es lag schließlich daran, wie ich die Figur bewegt habe. Auf Relative gabs dann keine Probleme mehr...

Du hast das selber programmiert? Könntest du uns den Code geben oder einen Teil dessen, welcher lauffähig ist?
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Makke »

Bananenfreak hat geschrieben:...Auf Relative gabs dann keine Probleme mehr...

Du hast das selber programmiert? Könntest du uns den Code geben oder einen Teil dessen, welcher lauffähig ist?
Ich benutze nicht die Relative Bewegung, sondern eine Absolute ... und den Code kannst Du hier einsehen: http://www.purebasic.fr/german/viewtopi ... =4&t=27028

Ich bin jetzt aber soweit, dass ich eine eigene Kollisionsabfrage inkl. kleiner Hitbox für die Spielfigur gebastelt habe, eine Hitbox (Kopf, Brust Arme und Beine) ist für einen Shooter eh sinniger.
---
Windows 11 (64 bit)
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Fragen zum 3D Beispiel FPSFirstPerson.pb

Beitrag von Chimorin »

Code: Alles auswählen

MoveEntity(Player\entity, x, y, z, #PB_Absolute)
Ich hab mich nicht richtig eingelesen, aber probiere diese Zeile in #PB_Relative umzuschreiben, dann wird es funktionieren :)

Kannst du mir erklären, wie du das mit der Hitbox hinkriegst? Ich meine, wenn das Entity animiert wird, muss sich die Hitbox doch auch verändern...
Bild

- formerly known as Bananenfreak -
Antworten