Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Dieser code funktioniert nicht weil die variable "camera" nicht bekannt ist.

wollte den move() teil unten eigentlich in eine extra .h datei tun aber das geht ja auch nicht.

gibts eine lösung für mein problem?

würde gern eigene funktionen so schreiben und diese auch in extra dateien auslagern, oder wenigstens seperat im code.

wenn jedoch immer die betreffenden variablen nicht bekannt sind, dann weiß ich auch nicht weiter...

so hier erstmal der code

#include "stdafx.h"

#include "test.h"

#include <xors3d.h>

#include <iostream>

#include "defs.h"

#include "movement.h"



int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)

{


   xGraphics3D(1366, 768, 32, false, true);

   xHidePointer();

   int camera = xCreateCamera();  

   xPositionEntity(camera, 70, 60, 80);

   int light = xCreateLight();

   xPositionEntity(light, 50, 60, 60);

   xRotateEntity(light, 45, 45, 45);

   int terrain = xLoadMesh("media/terrain.b3d");

   xPositionEntity(terrain, 0, 0, 0);

   int hud_left = xLoadImage("media/hud-left.png");


 while(!xKeyDown(KEY_ESCAPE))

   {

      move();

      xRenderWorld();

	  xDrawImage(hud_left, -25, 575);

      xFlip();

   }

   return 0;

}



int move()

{

         if(xKeyDown(KEY_W)) xMoveEntity(camera, 0, 0, 1);

	  if(xKeyDown(KEY_S)) xMoveEntity(camera, 0, 0, -1);

	  if(xKeyDown(KEY_A)) xMoveEntity(camera, -1, 0, 0);

	  if(xKeyDown(KEY_D)) xMoveEntity(camera, 1, 0, 0);

	  return 0;

}

und hier ist camera nicht bekannt und deshalb gehts nicht.

gibts eine einfache lösung ohne class/singleton?

muss doch einfacher gehen...globale variable muss doch irgendwie gehen

Geschrieben

das mit der übergabe hab ich so versucht vorhin...ging aber nicht...

hier seht...und ja ich bin noch am lernen dabei...aber würde dennoch fragen ob mir da jmd auf die sprünge helfen kann...

main.cpp

#include "stdafx.h"

#include "test.h"

#include <xors3d.h>

#include <iostream>

#include "defs.h"

#include "movement.h"




int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)

{

  xGraphics3D(1366, 768, 32, false, true);

   xHidePointer();

   int camera = xCreateCamera();  

   xPositionEntity(camera, 70, 60, 80);

   int light = xCreateLight();

   xPositionEntity(light, 50, 60, 60);

   xRotateEntity(light, 45, 45, 45);

   int terrain = xLoadMesh("media/terrain.b3d");

   xPositionEntity(terrain, 0, 0, 0);

   int hud_left = xLoadImage("media/hud-left.png");

   while(!xKeyDown(KEY_ESCAPE))

   {

      move(camera);

      xRenderWorld();

	  xDrawImage(hud_left, -25, 575);

      xFlip();

   }

   return 0;

}

movement.h
int move(int cam)

{


	  if(xKeyDown(KEY_W)) xMoveEntity(camera, 0, 0, 1);

	  if(xKeyDown(KEY_S)) xMoveEntity(camera, 0, 0, -1);

	  if(xKeyDown(KEY_A)) xMoveEntity(camera, -1, 0, 0);

	  if(xKeyDown(KEY_D)) xMoveEntity(camera, 1, 0, 0);

	  return 0;

}

Geschrieben

Wenn du den Parameter in move cam nennst, solltest du dort auch diesen Bezeichner benutzen, und nicht weiterhin camera.

Funktionsdefinitionen in Headerdateien sind übrigens heikel. Sobald du die Datei in mehr als eine Quellcodedatei einbindest, gibt es Linkerfehler.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...