Aktuelle Zeit: 28.03.2024, 10:33

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 73 Beiträge ]  Gehe zu Seite Vorherige  1 ... 3, 4, 5, 6, 7  Nächste
Autor Nachricht
BeitragVerfasst: 30.03.2010, 06:29 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Guten Morgen,

ich hab gestern eine neue Version hochgeladen. Es gibt einige Änderungen bei den IrrOdeEvents fürs Netzwerk (und die Replay Funktion) in Stunt Marble Racers:

- die Objekte können sich jetzt (de)serialisieren
- das Event CIrrOdeEventCollision wurde entfernt. Die Informationen über Kollisionen sind jetzt in CIrrOdeEventBodyMoved integriert
- die IDs der Events haben sich geändert, sie stammen jetzt aus einer enum anstatt nach der "Irrlicht-Methode" erzeugt zu werden
- die Funktionalität, die geänderte Positionen von in der ODE-Schicht bewegten Objekte in der Irrlicht Schicht abbildet wurde vom IrrOdeDevice in die IrrOdeWorld verlagert. Auf diese Weise werden die Positionen geupdated, egal von wo das IrrOdeBodyMoved event kommt (das kann entweder die ODE Schicht, die Netzwerkschicht oder ein Replayer sein)

Sobald ich mit Stunt Marble Racers soweit fertig bin will ich ein neues Projekt "IrrOdeNet" anfangen, bei dem ich die ganze Netzwerk und Replay Funktionalität aus Stunt Marble Racers rausschneide und in ein eigenes Projekt verpackt. Damit kann dann jeder diese Funktionen relativ einfach nutzen (OK, in erster Linie will ich die Funktionen einfach nutzen ;) ).

_________________
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 21.04.2010, 06:30 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Hallo,

es gibt jetzt wieder eine neue Version. Ich hab ein kleines Tool geschrieben, über das ich schon länger nachgedacht hab. Es heißt "IrrOdeSurfaceEdit". Damit kann man sich die Oberflächeneigenschaften von seinen Objekten bearbeiten und in einer zentralen XML Datei speichern. Diese Datei kann man dann in IrrEdit in seiner CIrrOdeWorld Instanz referenzieren (Attribute "name(_mat<number>)" und "useDefined") oder über die API vom CIrrOdeManager abfragen ("CIrrOdeManager::getSurfaceParameter") und bei seinen Objekten benutzen. Damit kann man in einem Spiel dafür sorgen, dass die Eigenschaften der Oberflächen wirklich immer gleich sind, ohne jedesmal alle Parameter dafür festzulegen. Hier ist noch ein Screenshot:

Bild

_________________
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 28.04.2010, 06:25 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Es gibt jetzt wieder mal ein neues Feature: man kann einen Body als "fast moving" markieren. Wenn dies geschehen ist, dann wird nach jedem Step der Simulation ein Ray von der alten zur neuen Position gerechnet, und falls dieser mit einem anderen Body kollidiert wird das Ganze geändert, dass die Kollision erkannt wird. Zum Testen kann man den Panzer in IrrOdeCar ausprobieren, die Kugeln sind jetzt deutlich schneller und treffen normalerweise auch. Allerdings gibts ein paar Nachteile des Systems:

- im Augenblick werden nur Body-Body Kollisionen erkannt
- das Ganze funktioniert nur bei linearer Bewegung. Bei schneller Drehung passiert es immer noch, dass die Kollisionen nicht erkannt werden
- die Kollision zwischen zwei schnellen Objekten wird (normalerweise) nicht erkannt (ausser es passiert zufällig eine "richtige" ODE Kollision).

_________________
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 03.05.2010, 06:36 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Hallo,

hab gestern ein kleines Update hochgeladen. Im IrrOdeCar demo hab ich am Wochenende das Flugzeug aktiviert, das schon länger (ungenutzt) dabei ist. Zur Steuerung einfach "F1" für den Hilfebildschirm drücken. Ist zwar weit davon entfernt, realistisch zu sein, aber es macht Spaß. Ich glaub, es ist eher ein bisschen wie ein Modellflugzeug als wie ein Echtes ;)

Alle Fahrzeuge bis auf das Auto sind jetzt bewaffnet. Der Panzer konnte ja schon immer schießen, aber seit Neuestem kann der Hubschrauber Raketen abfeuern und das Flugzeug kann Bombem abwerfen. Macht ziemlich viel Spaß.

Nächster Schritt: die Methode für das Flugzeug und für die Rakten rausziehen und in die IrrOde lib integrieren.

Eine Sache ist mir auch noch aufgefallen: die Geschosse werden jetzt nach der ersten Kollision mit einem anderen Objekt entfernt. Hab zuerst versucht, das beim IrrOdeEventBodyMoved Event zu machen, aber dann beschwert sich ODE. Man darf während eines Steps keine Objekte entfernen, also markier ich die Geschosse, die eine Kollision hatten, und entferne sie dann beim IrrOdeEventStep Event, der gepostet wird, nachdem der Simulationsschritt durchgeführt wurde.

Viel Spaß damit.

_________________
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 02.06.2010, 23:36 
Offline

Registriert: 02.06.2010, 23:23
Beiträge: 1
Hallo Brainsaw,

danke für den ODE Wrapper! Ich habe versucht, die irrODE Library auf MacOSX zu portieren. Das Erstellen der Library und des HelloWorld Beispiels ist mir auch geglückt, aber es gibt Probleme beim Start des Programms.

Es tauchen immer wieder solche Fehler auf: "error for object 0xb30584: incorrect checksum for freed object - object was probably modified after being freed"

Kannst du mir sagen, was das bedeutet, bzw. hast du diese Meldungen schon mal bekommen? Ich habe nur gelesen, dass ODE auf MacOSX nicht gut funktioniert (z.B. http://brockwoolf.com/blog/compile-ode-0-11-0-on-mac-os-x-10-6), habe aber leider nicht viel Erfahrung damit. Kann das mit der ODE Bibliothek zu tun haben?

Vielleicht kannst du mir weiterhelfen?

Hier ist das console-log:
Code:
choose your static collision object:

(1) use box
(2) use quake3 level
(3) exit

..1
Irrlicht Engine version 1.7.1
Darwin Kernel Version 10.3.0: Fri Feb 26 11:58:09 PST 2010; root:xnu-1504.3.12~1/RELEASE_I386
Using renderer: OpenGL 2.1
NVIDIA GeForce 9400M OpenGL Engine: NVIDIA Corporation
OpenGL driver version is 1.2 or better.
GLSL version: 1.2
hello world!
Loaded texture: e7walldesign01b.jpg
Loaded texture: e7steptop2.jpg
Loaded texture: e7dimfloor.jpg
Loaded texture: e7brickfloor01.jpg
Loaded texture: e7bmtrim.jpg
Loaded texture: e7sbrickfloor.jpg
Loaded texture: e7brnmetal.jpg
Loaded texture: e7beam02_red.jpg
Loaded texture: e7swindow.jpg
Loaded texture: e7bigwall.jpg
Loaded texture: e7panelwood.jpg
Loaded texture: e7beam01.jpg
Loaded texture: xstepborder5.jpg
Loaded texture: lavahell.jpg
Loaded texture: e7steptop.jpg
Loaded texture: metalblackwave01.jpg
Loaded texture: pjrock1.jpg
Loaded texture: timlamp.tga
Loaded texture: gratetorch2.jpg
Loaded texture: gratetorch2b.tga
Loaded mesh: 20kdm2.bsp
Load material chunk.
Load color chunk.
Load percentage chunk.
Load color chunk.
Load percentage chunk.
Load color chunk.
Load object chunk.
Load object chunk.
Load vertices.
Load texture coords.
Load indices.
Load object chunk.
Load material group.
Could not load a texture for entry in 3ds file: cube1_au.bmp
Loaded mesh: ../../data/box.3ds
Loaded texture: /Users/guidopinkas/Work/FreePilot/irrOde/MacOSX/data/box0.jpg
IrrOdeHello(62962,0xa0bab4e0) malloc: *** error for object 0xa36674: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
IrrOdeHello(62962,0xa0bab4e0) malloc: *** error for object 0xa36764: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Load material chunk.
Load color chunk.
Load percentage chunk.
Load color chunk.
Load percentage chunk.
Load color chunk.
Load object chunk.
Load object chunk.
Load vertices.
Load texture coords.
Load indices.
Load object chunk.
Load material group.
Could not load a texture for entry in 3ds file: sphere1_.bmp
Loaded mesh: ../../data/sphere.3ds
Loaded texture: /Users/guidopinkas/Work/FreePilot/irrOde/MacOSX/data/sphere0.jpg
IrrOdeHello(62962,0xa0bab4e0) malloc: *** error for object 0xb30584: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
IrrOdeHello(62962,0xa0bab4e0) malloc: *** error for object 0xb37924: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
IrrOdeHello(62962,0xa0bab4e0) malloc: *** error for object 0xb37a54: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
IrrOdeHello(62962,0xa0bab4e0) malloc: *** error for object 0xb37c84: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
IrrOdeHello(62962,0xa0bab4e0) malloc: *** error for object 0xb37d94: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
CIrrOdeGeomBox::initPhysics: getting size from parent node
CIrrOdeGeomBox::initPhysics: size=(30.00, 3.00, 30.00)

ODE INTERNAL ERROR 2: Bad argument(s) in dxBox()
Program received signal:  “SIGABRT”.
sharedlibrary apply-load-rules all
IrrOdeHello(62962,0xa0bab4e0) malloc: *** error for object 0xb37f04: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug


Nach oben
 Profil  
 
BeitragVerfasst: 04.06.2010, 06:45 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Hmm ... sorry, aber das sagt mir nichts. Unter Windows funktionieren alle Beispiele ohne Probleme (auch ohne (größere) Traces in der Konsole), aber da ich keinen Mac hab kann ich das leider nicht testen. Vielleicht gibts in der ODE newsgroup (http://groups.google.com/group/ode-users) ja Hilfe bezüglich dieses Themas.

_________________
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 17.06.2010, 17:39 
Offline

Registriert: 17.06.2010, 17:23
Beiträge: 2
Hi!
Ich bin ganz neu bei der Irrlicht Engine, und C++ kann ich auch noch nicht so gut, deswegen ist das vielleicht ein blöde Frage, aber warum gibt mir GCC (mit Code::Blocks) folgendes zurück, wenn ich alles ganz genau so mache wie in diesem Tutorial?:

Code:
||=== ODEtutorial, Debug ===|
C:\irrOde\bin\gcc-win32\libIrrOde.a(CIrrOdeWorld.o):CIrrOdeWorld.cpp:(.text$_ZN3irr5scene10ISceneNode11getMaterialEj[irr::scene::ISceneNode::getMaterial(unsigned int)]+0x4)||undefined reference to `_imp___ZN3irr5video16IdentityMaterialE'|
||=== Build finished: 1 errors, 0 warnings ===|


Ein Schreibfehler meinerseits ist es nicht, ich habe alles direkt aus dem Tutorial rauskopiert (bis auf eine kleine Änderung, dimension2d(640,480) gibt eine Fehlermeldung, müsste heißen dimension2d<u32>(640,480) )
Die Linker Settings und dergleichen habe ich auch schon mehrmals überprüft :(


Nach oben
 Profil  
 
BeitragVerfasst: 18.06.2010, 06:04 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Verdammt ... diese Problem hatte ich auch, als ich von Irrlicht 1.6 auf 1.7 umgestiegen bin. Bist du sicher, dass die lib korrekt ist (Irrlicht 1.7.1)? Ansonsten muss ich auf das englische Forum verweisen, da hab ich damals einen Lösungsansatz gefunden.

_________________
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 19.06.2010, 17:41 
Offline

Registriert: 17.06.2010, 17:23
Beiträge: 2
yup, bin mir sicher, habe grad nochmal nachgeguckt... die engine hab ich ja auch direkt von sourceforge runtergeladen, aktuellste Datei, der ordnername ist auch "irrlicht-1.7.1", müsste also 1.7.1 sein... naja, wollte mich sowieso mal im englischen forum umsehen, das hier scheint ja etwas... tot zu sein :?


Nach oben
 Profil  
 
BeitragVerfasst: 20.06.2010, 09:50 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
naja, tot nicht wirklich, aber etwas schwach besucht^^


Nach oben
 Profil  
 
BeitragVerfasst: 21.06.2010, 06:14 
Offline
Benutzeravatar

Registriert: 16.10.2007, 07:56
Beiträge: 229
Wohnort: Regensburg
Stimmt ... viel ist hier leider nicht los. Sag aber trotzdem hier Bescheid, wenn du das Problem gelöst hast, damit ich (bei künftigen Nachfragen) weiß, wo ich eine Lösung finde.

_________________
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 23.09.2010, 11:16 
Offline

Registriert: 21.09.2010, 09:51
Beiträge: 2
Hi.
Erstmal find ich die Idee klasse!
Aber: Das Archiv auf deiner HomePage ist anscheinend fehlerhaft, es fehlt z.B. der komplette Ordner "observer".
Hab den Quellcode dann direkt vom SVN Repository von SourceForge heruntergeladen und funktioniert jetzt einwandfrei, bis auf eine Kleinigkeit: Ich musste den Ordner "observer" manuell in das VC2008-Projekt miteinbinden (ansonst kriegt man unaufgeloeste Abhaengigkeiten, wenn man irgendein Example linkt).
Hab jetzt alles zum laufen gebracht, doch leider funktionieren die Beispiele "IrrOdeCar" und "IrrOdeMarble" nur seeehr langsam bei mir (1-3 FPS), waehrend die anderen Beispiele alle einwandfrei funktionieren. Liegt es wohl an meinem Netbook? (Acer Aspire One, Intel Atom 1.6Ghz - 1GB RAM)

EDIT: Hab gemerkt, dass alle Beispiele mit der Release-Version einwandfrei funktionieren (bei "IrrOdeCar" muss man aber trotzdem einige Optionen streichen, damits funktioniert).


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 73 Beiträge ]  Gehe zu Seite Vorherige  1 ... 3, 4, 5, 6, 7  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de