Aktuelle Zeit: 10.01.2025, 16:59

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 13.06.2007, 14:42 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Ich habe vor einer Woche einen neunen PC bekommen, so nun wollte ich an meinem Spiel weitermachen!
Dazu habe ich alle alten dateien rüberkopiert und Dev-C++ neu installiert! So nun habe ich die datei geöffnet kann sie auch ohne Fehler compilieren, das spiel wird dann zwar gestartet es kommt für ne halbe sec en blackscreen und dann sehe ich wieder meinen Desktop! Das Spiel ist nun unten in der Taskleiste aber ich kann es nicht vergrößern. Im Taskmanager heißt es keine Rückmeldung!
Weiß jemand warum das so ist?? Leigt es eventuell an ATI? hatte vorger Nvidia!

MFG ReduX

P.S: Arbeite unter Windows!


Nach oben
 Profil  
 
BeitragVerfasst: 13.06.2007, 16:05 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Kannst du die .exe-Dateien starten, die mit der Engine mitgeliefert werden? Wenn ja, liegts an dir, wenn nein, ist dein System wohl noch nicht richtig konfiguriert.

Zitat:
Dev-C++ neu installiert!

Hmmmpf... Dev-C++ ist doch so langsam ein Dinosaurier... Code::Blocks ftw!

Zitat:
P.S: Arbeite unter Windows!

P.S: Selber schuld! ;)

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 13.06.2007, 17:06 
Offline
Benutzeravatar

Registriert: 10.06.2007, 12:31
Beiträge: 13
Wohnort: Aachen
Hi,
wie sieht's mit der Aktualität deiner Treiber aus? Sind die auf dem neusten Stand?

Falls ja, schau doch mal nach was im Debugmode ausgegeben wird, ob irgendwas vielleicht falsch geladen wurde o.Ä.!

Gruß,
methos

_________________
Unmögliches wird sofort erledigt,
Wunder dauern etwas länger! ;-)

Using Irrlicht since: 09.06.2007 :)


Nach oben
 Profil  
 
BeitragVerfasst: 14.06.2007, 12:49 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Habe jetzt mal Code::Blocks installiert es kommt beim kompilieren nur ein Fehler und zwar:
Zitat:
D:\Programme\CodeBlocks\bin\..\lib\gcc\mingw32\3.4.4\..\..\..\..\mingw32\bin\ld.exe: cannot find -lirrlicht
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)

ld.exe ist doch der Linker bei CB?
Aber ich hab dort nur das Irrlicht.a File und das irrklang.a File eingebunden und beide haben einen Existierenden Pfad?!?! Anonsten habe ich beim Linker nichts eingetragen!

MFG ReduX


Nach oben
 Profil  
 
BeitragVerfasst: 14.06.2007, 13:01 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Du musst irgendwo in den Einstellungen (Linker Path?) noch den Linkerpfad eintragen, dann sollte das funktionieren. (Zusätzlich sollte es sogar reichen, die DLL in den Programmpfad zu kopieren und mit der direkt zu linken, habe ich aber mit Irrlicht unter Windows nicht ausprobiert)

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 14.06.2007, 14:13 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Habe es jetzt mit Code::Bloks hinbekommen hab die irrlicht.dll ins bin verzeichnis kopiert jedoch muss man sie dort in lirrlicht.dll umbenennen!
Hab mich nun ein bisschen in CB eingelebt jedoch hab ich das gleiche Problem wie vorher hat sich nichts drann geändert!
Wäre es sinnvoll eventuell den source code hier zu posten?

MFG ReduX


Nach oben
 Profil  
 
BeitragVerfasst: 14.06.2007, 14:25 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
ähh wie man kann mit einer dll direkt linken..?
den code zu posten ist immer gut.. ;) naja kommt drauf an ob du es "geheim" halten willst oder obs dir egal ist das andere dein werk bestaunen.

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


Nach oben
 Profil  
 
BeitragVerfasst: 14.06.2007, 14:31 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
"lirrlicht.dll"? Du musst in den Linkeroptionen einfach "Irrlicht" eingeben. Dann sucht der automatisch nach "libIrrlicht.a/.dll".

Laufen bei dir die vorkompilierten Beispiele?

@frodenius:
Bin Linux-Benutzer, aber afaik habe ich unter Windows quasi immer direkt mit der DLL gelinkt... der macht dann ja nichts anderes, als die Symbole aus der DLL raussuchen und die dann im Programm ansprechen, in der .a sind nicht viel andere Informationen vorhanden, .a-Dateien kann man aus den DLLs erstellen lassen.
Unter Linux wird grundsätzlich direkt die .so verlinkt...

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 14.06.2007, 15:45 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Also mit dem Linken funktioniert es wenn ich im Linker bei zusätzlichen optionen "Irrlicht" eingeben, es funktioniert aber auch wenn man die .dll in das bin verzeichniss kopiert und dann zu "lirrlicht.dll" umbenennt!

Wenn jemand meinen Code kopiert ists mir egal ist sowieso zu 40% fertig
Hier mal der Source code:
Code:
#include <windows.h>
#include <time.h>
#include <irrlicht.h>
#include <irrKlang.h>
#include <winsock.h>
#include "GL\PostProcessBloom.h"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
using namespace audio;

IrrlichtDevice *device = 0;
s32 cnt = 0;
IGUIListBox* listbox = 0;



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();
ISoundEngine* engine = createIrrKlangDevice();
device->setWindowCaption(L"Spiel");
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));
      selector = smgr->createOctTreeTriangleSelector(
            q3levelmesh->getMesh(0), q3node, 128);
      q3node->setTriangleSelector(selector);

      selector->drop();
   }
            IPostProcessBloom *Bloom = new IPostProcessBloom(smgr->getRootSceneNode(), smgr, 666);
    PPE_Bloom_Setup setup;

    setup.sampleDist=0.008;
    setup.strength=3;
    setup.multiplier=5;
    Bloom->initiate(1280,1024,setup,smgr);

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

   scene::IBillboardSceneNode * bill = smgr->addBillboardSceneNode();
   bill->setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR );

   bill->setMaterialFlag(video::EMF_LIGHTING, false);
   bill->setSize(core::dimension2d<f32>(20.0f, 20.0f));

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

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

SKeyMap keyMap[10];
                 keyMap[0].Action = EKA_MOVE_FORWARD;
                 keyMap[0].KeyCode = KEY_KEY_W;

                 keyMap[1].Action = EKA_MOVE_BACKWARD;
                 keyMap[1].KeyCode = KEY_KEY_S;

                 keyMap[2].Action = EKA_STRAFE_LEFT;
                 keyMap[2].KeyCode = KEY_KEY_A;

                 keyMap[3].Action = EKA_STRAFE_RIGHT;
                 keyMap[3].KeyCode = KEY_KEY_D;

                 keyMap[4].Action = EKA_JUMP_UP;
                 keyMap[4].KeyCode = KEY_SPACE;

IAnimatedMeshSceneNode *object1 = smgr->addAnimatedMeshSceneNode(faerie);
      object1->setPosition(core::vector3df(-70,0,-90));
      object1->setMD2Animation(scene::EMAT_RUN);
      ICameraSceneNode* cam = smgr->addCameraSceneNodeFPS(0, 100, 500, -1, keyMap, 10,true,0.5f);
cam->addChild(object1);
      object1->setVisible(false);
      object1->getMaterial(0) = material;
         scene::ISceneNodeAnimator* anim =
    smgr->createCollisionResponseAnimator(
      selector, cam, core::vector3df(30,30,30),
      core::vector3df(0,-3,0),
      core::vector3df(0,30,0));

   cam->addAnimator(anim);
   anim->drop();

IAnimatedMeshSceneNode *object2 = smgr->addAnimatedMeshSceneNode(faerie);
ITriangleSelector* triangel = smgr->createTriangleSelector(faerie->getMesh(0, 255, -1, -1),object2);
      object2->setPosition(core::vector3df(-70,0,-90));
      object2->setMD2Animation(scene::EMAT_RUN);
object2->setTriangleSelector(triangel);
      object2->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;

time_t last = 0;
time_t yet = 0;
   while(device->run())
  if (device->isWindowActive())
   {


driver->beginScene(true, true, 0);
driver->setRenderTarget(Bloom->rt0, true, true, video::SColor(0,0,0,0));
      smgr->drawAll();
      driver->setRenderTarget(0);
    Bloom->render();

      core::line3d<f32> line;
      line.start = cam->getPosition();
      line.end = line.start +
         (cam->getTarget() - line.start).normalize();

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

      if (smgr->getSceneCollisionManager()->getCollisionPoint(
         line, selector, intersection, tri))
      {

         driver->setTransform(video::ETS_WORLD, core::matrix4());
         driver->setMaterial(material);
      }
            core::vector3df intersection2;
      core::triangle3df tri2;

                         if(GetAsyncKeyState(VK_ESCAPE)) {
if( IDYES == MessageBox(GetFocus(),"Wollen sie dieses Programm wirklich beenden?", "Programm beenden?", MB_YESNO) )
{
return 1;
}
              }
     if(GetAsyncKeyState(VK_LBUTTON)) {
    yet = timeGetTime();
     time_t current = yet - last;
     if(current >= 1000) {
     last = timeGetTime();
   engine->play2D("./Data/shoot.ogg");
      line.start = cam->getPosition();
      line.end = line.start + (cam->getTarget() - line.start).normalize() * 1000.0f;


      if (smgr->getSceneCollisionManager()->getCollisionPoint(
         line, selector, intersection2, tri2))
      {
         bill->setPosition(intersection2);

         driver->setTransform(video::ETS_WORLD, core::matrix4());
         driver->setMaterial(material);
      }
      }
      }
      object2->setPosition(core::vector3df(-70,0,-90));

      driver->endScene();
}
engine->drop();
   device->drop();

   return 0;

}

Ich weiß nicht ob es darran liegt, es kann sein das beim kopieren was schiefging den die alte HDD war defekt und es schwer an die Daten ran zu kommen! Aber dieser Code lief auf dem alten Rechner!

MFG ReduX


Nach oben
 Profil  
 
BeitragVerfasst: 17.06.2007, 13:41 
Offline
Newsposter
Benutzeravatar

Registriert: 12.03.2007, 10:42
Beiträge: 338
Wohnort: Berlin
@frodenius: ja man kann .lib's auch direkt linken ohne eine header und bibliotheks datei,
das würde dann inetwa so aussehen:
Code:
//Dll Datei laden
HMODULE hDLL = LoadLibrary("WinMM.dll");
if(!hDLL)
{
//fehler
}
//Funktion Laden oder Suchen
BOOL (__stdcall* pFunc)(LPCSTR, UINT);
pFunc = (BOOL (__stdcall*)(LPCSTR, UINT))(GetProcAddress(hDLL, "sndPlaySoundA"));
if(!pFunc)
{
//fehler
}
//Funktion Aufrufen
pFunc("C:\\Windows\\Media\\Ding.wav", SND_SYNC);
//DLL Freigeben
FreeLibrary(hDLL);


fasl ich da was falsch verstanden hatte sry^^


Nach oben
 Profil  
 
BeitragVerfasst: 17.06.2007, 14:08 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Danke für eure Hilfe!
Es funktioniert nun endlich :D
Ich habe ja TGM's Shader Pack benutzt und dort gabs irgendwie einen Fehler beim kopieren!
Als ich den Shader Pack neu gezogen hatte liefs auf einmal wieder!

MFG ReduX


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 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:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de