Aktuelle Zeit: 29.03.2024, 14:38

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 16.03.2007, 10:50 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
Dieses Tutorial zeigt wie man eine Quake 3 map lädt, einen SceneNode erstellt um das Rendering zu beschleunigen und wie man eine vom User gesteuerte Kamera erstellt. Bitte beachtet das ihr die Grundkenntnisse über die Engine bereits beherschen müsst um mit diesem Tutorial starten zu können. Bitte seht euch erst das erste Tutorial (HelloWorld) an fals ihr dies noch nicht getan habt.
Aussehen wird das ganze dann so:
Bild

Das Tutorial befindet sich nun zugunsten der Wartbarkeit (änderungen bei updates) im wiki welches unter der Rubrik Hilfe zu finden ist, oder ihr klickt einfach auf folgenden link:

Tutorial 2


Zuletzt geändert von psyco001 am 17.01.2010, 13:36, insgesamt 8-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 17.03.2007, 20:34 
Offline
Benutzeravatar

Registriert: 13.03.2007, 11:37
Beiträge: 7
Wohnort: Erfurt
Fehler:
1.
Code:
// erstelle das device oder beende fals das device nicht erstellt werden konnte 
IrrlichtDevice *device = createDevice(driverType, core::dimension2d (640,480));


Es fehlt das template-argument dimension2d<s32>

2.
Code:
int lastFPS = --1;
 
while(device-%gt; run())
driver->beginScene(true, true, video::SColor(0,200,200,200));
smgr->drawAll();
   driver->endScene();
 
int fps = driver-&gtgetFPS();
 
if (lastFPS != fps)
…



Code:
int lastFPS = -1;   //nur ein minus
while(device->run())    //???  %gt;  ???
{//fehlt
  driver->beginScene(true, true, video::SColor(0,200,200,200));
  smgr->drawAll();
  driver->endScene();
 
  int fps = driver->getFPS();   //???  &gt  ???
 
  if (lastFPS != fps)
…


copy&paste muss gelernt sein *ggg*

_________________
"Die folgende Aussage ist falsch. Die vorherige Aussage ist richtig."


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 01.07.2007, 18:03 
Offline
Moderator

Registriert: 25.02.2007, 14:35
Beiträge: 323
Wohnort: Münster
Irgendwie und aus irgendeinem Grund hat Niko in Version 1.3 von EDT_SOFTWARE2 auf EDT_BURNINGSVIDEO gewechselt. Wär gut, wenn du das ändern könntest...


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 24.11.2007, 11:13 
Offline

Registriert: 21.09.2007, 13:52
Beiträge: 30
An der folgenden Stelle
Code:
//Versetzen der Map auf den Originalpunkt (0,0,0)
if (node)
    node->setPosition(core::vector3df(-1300,-144,-1249));

bekomme ich mit VC++ 2005 Express den Fehler

error C2227: Links von "->setPosition" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.

node ist so deklariert:
Code:
scene::IsceneNode* node = 0;


Versteh ich gerade nicht so ganz. Vllt. kann ja jemand helfen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 24.11.2007, 11:16 
Offline
Moderator

Registriert: 26.03.2007, 20:06
Beiträge: 114
Hast du die Definition von Node drin?
Also das was im Tutorial so steht:
Code:
if (mesh)
   node = smgr->addOctTreeSceneNode(mesh->getMesh(0));


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 24.11.2007, 11:19 
Offline

Registriert: 21.09.2007, 13:52
Beiträge: 30
Ja is drin


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 24.11.2007, 11:25 
Offline

Registriert: 21.09.2007, 13:52
Beiträge: 30
Peinlich Peinlich Peinlich, nicht IsceneNode sondern ISceneNode :?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 24.11.2007, 11:33 
Offline

Registriert: 21.09.2007, 13:52
Beiträge: 30
Allerdings bekomme ich bei Ausführung nur nen grauen Hintergrund. Im CMD Fenster sagt er mir aber er habe die Meshs korrekt geladen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 24.11.2007, 11:57 
Offline
Moderator

Registriert: 25.02.2007, 14:35
Beiträge: 323
Wohnort: Münster
Renderst du auch richtig?

Also:

Code:
while(device->run())
{
  driver->beginScene(true, true, video::SColor(0,200,200,200));
  smgr->drawAll();
  driver->endScene();
}


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 30.01.2009, 12:59 
Offline
Benutzeravatar

Registriert: 28.01.2009, 12:47
Beiträge: 26
:lol: hiho :(

#Visual studio c++ gestartet und ein neues projekt ( demo2 ) angelegt
#projekt ohne eine änderung nackig laufen lassen das mir die compelierte exe erstellt wird.
#in den ordner zur exe gewechselt und diese dateien hineinkopiert

map-20kdm2.pk3 aus dem ordner ( c:\irrlicht-1.5\media\ )
Irrlicht.dll aus dem ordner (c:\irrlicht-1.5\bin\Win32-VisualStudio\)

#ich habe die "map-20kdm2.pk3" umbenannt als zip dann geöffnet und die "20kdm2.bsp" entpackt da sie nicht im original "irrlicht-1.5.zip" drin war.

dann den quellcode der anwendung erstellt nach obriger anleitung

Code:

#include <stdafx.h>
#include <irrlicht.h>
#include <iostream>
using namespace irr;

#ifdef _MSC_VER
#pragma comment(lib, "Irrlicht.lib")
#endif

int main()
{
   video::E_DRIVER_TYPE driverType;

   printf("Please select the driver you want for this example:\n"\
      " (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n"\
      " (d) Software Renderer\n (e) Burning's Software Renderer\n"\
      " (f) NullDevice\n (otherKey) exit\n\n");

   char i;
   std::cin >> i;

   switch(i)
   {
      case 'a': driverType = video::EDT_DIRECT3D9;break;
      case 'b': driverType = video::EDT_DIRECT3D8;break;
      case 'c': driverType = video::EDT_OPENGL;   break;
      case 'd': driverType = video::EDT_SOFTWARE; break;
      case 'e': driverType = video::EDT_BURNINGSVIDEO;break;
      case 'f': driverType = video::EDT_NULL;     break;
      default: return 1;
   }   

   

   IrrlichtDevice *device =
      createDevice(driverType, core::dimension2d<s32>(640, 480));

   if (device == 0)
      return 1;

   
   video::IVideoDriver* driver = device->getVideoDriver();
   scene::ISceneManager* smgr = device->getSceneManager();

   device->getFileSystem()->addZipFileArchive("../../media/map-20kdm2.pk3");

   
   scene::IAnimatedMesh* mesh = smgr->getMesh("20kdm2.bsp");
   scene::ISceneNode* node = 0;
   
   if (mesh)
      node = smgr->addOctTreeSceneNode(mesh->getMesh(0), 0, -1, 1024);

   if (node)
      node->setPosition(core::vector3df(-1300,-144,-1249));

   
   smgr->addCameraSceneNodeFPS();

   
   device->getCursorControl()->setVisible(false);

   
   int lastFPS = -1;

   while(device->run())
   {
      if (device->isWindowActive())
      {
         driver->beginScene(true, true, video::SColor(255,200,200,200));
         smgr->drawAll();
         driver->endScene();

         int fps = driver->getFPS();

         if (lastFPS != fps)
         {
            core::stringw str = L"Irrlicht Engine - Quake 3 Map example [";
            str += driver->getName();
            str += "] FPS:";
            str += fps;

            device->setWindowCaption(str.c_str());
            lastFPS = fps;
         }
      }
      else
         device->yield();
   }

   
   device->drop();
   return 0;
}





aber er feuert mir diesen fehler raus

Bild

_________________
ich bin nich gut aber ich weis was ich haben will *g


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 30.01.2009, 13:52 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
... das ist das selbe problem wie hier: viewtopic.php?p=5535#p5535

_________________
yo. life's so bloody short.
Ihr dachtet Schulfernsehn sei die ultimative Folter? Falsch: Fahrstuhlmusik, extra leise.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: [Leicht] Tutorial 2: Quake 3 Map
BeitragVerfasst: 30.01.2009, 14:57 
Offline
Benutzeravatar

Registriert: 28.01.2009, 12:47
Beiträge: 26
die dll pfade im c++ stehen drin und die dateien sind in beiden ordnern

drum verstehe ich das ja nich :?

_________________
ich bin nich gut aber ich weis was ich haben will *g


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  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