Aktuelle Zeit: 26.12.2024, 08:21

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Kamera Frage
BeitragVerfasst: 18.05.2007, 14:38 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Habe nun mit Tut 4 und 7 gearebeitet.
Wenn man die Funktion der 4er in die 7er übernimmt kann man ja dann mit der Tastatur die Figur bewegen.
Nun möchte ich aber noch die Figur mit der Mause bewegen so wie in einem 3D Shooter! Die Kamera muss auch im Kopf der Figur sein weil immoment kann ich ja mit der Kamera machen was ich will.
Gibt es dazu irgendwie ein Tutorial???

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18.05.2007, 15:22 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Code:
ISceneManager::addCameraSceneNodeFPS();


Damit erstellst du eine EgoShooter-Kamera, die du dann noch per Hand in den Kopf der Figur setzten musst. Wenn du jetzt die Figur als Child der Kamera erstellst, bewegt sich die figur mit der Kamera mit.

Dazu sei allerdings zu sagen, dass es unnötig ist die figur zu rendern, da du sie ja sowieso nicht sehen wirst.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18.05.2007, 15:35 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Danke für deine Antwort!
Ist die Figur danach auch gleich animiert? weil es soll ein 2spieler game werden deshalb sieht der andere Spieler die Figur, in dem Tut ist die Figur ja animiert!

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18.05.2007, 15:57 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Trotzdem ists unnötig die figur zu rendern... guck dir zum beispiel counterstrike oder quake oder ut an.. schonmal deine füße gesehen? ich nicht.

Um die animation musst du dich selber kümmern. Die Figur wird jediglich der Kamera folgen, wenn sie ein Child dieser ist.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18.05.2007, 16:53 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Und wie erstell ich die Fihur als Child hab gerade nochmal die Tuts durchgeblättert da steht das nitt drin :cry:

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18.05.2007, 17:42 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
wenn du die figur erstellst einfach die kamera als parent angeben

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18.05.2007, 17:46 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
in etwa so:
Code:
camnode->addChild(playerNode);
playerNode->setVisible(false); //nicht rendern

@sylence oder so.. :D


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18.05.2007, 18:48 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Wenn ich es so mache wie frodenius dann bekomm ich folgende Fehler:
Zitat:
main.cpp: In function `int main()':
main.cpp:55: error: no matching function for call to `irr::scene::IAnimatedMeshSceneNode::addChild(irr::scene::IAnimatedMesh*&)'
R:/irrlicht-1.3/include/ISceneNode.h:223: note: candidates are: virtual void irr::scene::ISceneNode::addChild(irr::scene::ISceneNode*)

Hier mal der Quellcode:
Code:
#include <irrlicht.h>
#include <iostream>

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

#pragma comment(lib, "Irrlicht.lib")

int main()
{

   IrrlichtDevice *device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(1280, 1024),32, true, true,true,0);

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

device->setWindowCaption(L"Test");

  device->getFileSystem()->addZipFileArchive
      ("./Data/map1.pk3");

   
   scene::IAnimatedMesh* q3levelmesh = smgr->getMesh("20kdm2.bsp");
   scene::ISceneNode* q3node = 0;
   
   if (q3levelmesh)
      q3node = smgr->addOctTreeSceneNode(q3levelmesh->getMesh(0));
     
      scene::ITriangleSelector* selector = 0;
   
   if (q3node)
   {     
      q3node->setPosition(core::vector3df(-1370,-130,-1400));
   }
   

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


   video::SMaterial material;
   material.Textures[0] = driver->getTexture("./Data/faerie2.bmp");
   material.Lighting = true;

   scene::IAnimatedMeshSceneNode* node = 0;
   scene::IAnimatedMesh* faerie = smgr->getMesh("./Data/faerie.md2");

      node = smgr->addAnimatedMeshSceneNode(faerie);
      node->setPosition(core::vector3df(-70,0,-90));
      node->setMD2Animation(scene::EMAT_RUN);
      node->addChild(faerie);
      node->setVisible(false);
      node->getMaterial(0) = material;

   material.Textures[0] = 0;
   material.Lighting = true;



   smgr->addLightSceneNode(0, core::vector3df(-60,100,400),
      video::SColorf(1.0f,1.0f,1.0f,1.0f),
      600.0f);
     
       scene::ISceneNode* selectedSceneNode = 0;
   scene::ISceneNode* lastSelectedSceneNode = 0;

   
   int lastFPS = -1;

   while(device->run())
  if (device->isWindowActive())
   {
      driver->beginScene(true, true, 0);

      smgr->drawAll();
       core::line3d<f32> line;

      core::vector3df intersection;
      core::triangle3df tri;

      smgr->getSceneCollisionManager()->getCollisionPoint(line, selector, intersection, tri);           
         driver->setTransform(video::ETS_WORLD, core::matrix4());
         driver->setMaterial(material);     
       driver->endScene();

   }

   device->drop();
   
   return 0;


Der Code sieht ein bisschen komisch aus da ich mit dem Code aus den Tutorials rumspiele!

Danke für euere Hilfe,
MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18.05.2007, 18:58 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
du musst die camera erstellen und diese dann bei addChild() angeben

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 19.05.2007, 13:57 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
also
Code:
  node->addChild(faerie);

ist erst mal ziemlich sinnfrei, weil ja der node schon eine verkörperung des models faerie ist... (wurde ja so konstruiert)

stattdessen musst du folgendes machen:
Code:
ICameraSceneNode* cam = smgr->addCameraSceneNodeFPS();
cam->addChild(node);


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 19.05.2007, 20:58 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Funktioniert jetzt!
Nur meine Frage wie kann ich die steuerung von den Pfeiltasten auf W;A;S;D umlegen und die Bewegung verkleiner weill wenn man nach forne drückt ist man ja gliech durch die ganze Map gelaufen!

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 19.05.2007, 21:02 
Offline
Moderator

Registriert: 25.02.2007, 14:35
Beiträge: 323
Wohnort: Münster
Guck dir mal die Parameter von addCameraSceneNodeFPS an


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 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 1 Gast


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