moeilijkheden met mijn game

Status
Niet open voor verdere reacties.

jimowns

Gebruiker
Lid geworden
2 sep 2006
Berichten
341
hey
ik ben nu namelijk bezig met mijn eigen game te maken :)
maar ik heb een probleem ik wil mijn game debuggen maar geeft 6 errors aan en kan ze niet fixen .
ik vermoet dat de fout in mijn FPS zit maar ik kan de fout niet vinden .

ik hoop dat iemand mij kan helpen .

hier is mijn code
Code:
//--------------------------------------------------------------
//  Headers:
//--------------------------------------------------------------
#include <irrlicht.h>
#include "game.h"

//--------------------------------------------------------------
//  Namespace:
//--------------------------------------------------------------
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

//--------------------------------------------------------------
//  Libs:
//--------------------------------------------------------------
#pragma comment(lib, "Irrlicht.lib")

//--------------------------------------------------------------
//  Source code KEY pressed
//--------------------------------------------------------------

//--------------------------------------------------------------
//  Souce code:
//--------------------------------------------------------------
int main()
{
	IrrlichtDevice *device =
    device = irr::createDevice(EDT_DIRECT3D9, core::dimension2d<s32>(1280, 1024), 32, true); // voor full screen 

	// device->setWindowCaption(L"Test met wapen een AK47");  

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

	guienv->addStaticText(L"Counter strike 9.0",
		rect<int>(20,20,260,322), true );


//-------- dit is voor BMP 3D bij te voegen ----------

    // IAnimatedMesh* mesh = smgr->getMesh("Maps/lol.3DS"); 
    //IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh ); 
	// ISceneNode* node = 0;

               device->getFileSystem()->addZipFileArchive("Maps/map-20kdm2.pk3"); // deze code is voor .dat en .pk3 bestanden 
               scene::IAnimatedMesh* mesh = smgr->getMesh("20kdm2.bsp");
	           scene::ISceneNode* node = 0;
	
	if (mesh)
		node = smgr->addOctTreeSceneNode(mesh->getMesh(0));

	if (node)
		node->setPosition(core::vector3df(-1300,-144,-1249));
        smgr->addCameraSceneNodeFPS();
	    device->getCursorControl()->setVisible(false);

/*
			   
   if (node) 
   { 
      node->setMaterialFlag(EMF_LIGHTING, false); 
      node->setMD2Animation ( scene::EMAT_STAND ); 
      node->setMaterialTexture( 0, driver->getTexture("kluer/aim_map_paal.bmp") ); 
   } 
   	*/ 
                                 // ( ,50, = het draaien van screen 
	 // smgr->addCameraSceneNode(0, vector3df(50,50,-40), vector3df(0,5,0));

 //---------------------------------------  dit is voor FPS 
int lastFPS = -1;

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

		int fps = driver->getFPS();

		if (lastFPS != fps)
		{
			core::string str = L"Counter strike 9.0                  [ ";
			str += driver->getName();
			str += "] FPS:";
			str += fps;

			device->setWindowCaption(str.c_str());
			lastFPS = fps;
		}
	}
	device->drop();
	
	return 0;
}


hier is mijn error
Code:
------ Build started: Project: Project1, Configuration: Debug Win32 ------
Compiling...
game.cpp
.\game.cpp(94) : error C2955: 'irr::core::string' : use of class template requires template argument list
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(745) : see declaration of 'irr::core::string'
.\game.cpp(94) : error C2514: 'irr::core::string' : class has no constructors
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(745) : see declaration of 'irr::core::string'
.\game.cpp(95) : error C2678: binary '+=' : no operator found which takes a left-hand operand of type 'irr::core::string' (or there is no acceptable conversion)
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(641): could be 'void irr::core::string<T,TAlloc>::operator +=(T)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(646): or 'void irr::core::string<T,TAlloc>::operator +=(const T *)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(651): or 'void irr::core::string<T,TAlloc>::operator +=(const irr::core::string<T> &)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(656): or 'void irr::core::string<T,TAlloc>::operator +=(int)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(661): or 'void irr::core::string<T,TAlloc>::operator +=(double)'
        while trying to match the argument list '(irr::core::string, const wchar_t *)'
.\game.cpp(96) : error C2678: binary '+=' : no operator found which takes a left-hand operand of type 'irr::core::string' (or there is no acceptable conversion)
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(641): could be 'void irr::core::string<T,TAlloc>::operator +=(T)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(646): or 'void irr::core::string<T,TAlloc>::operator +=(const T *)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(651): or 'void irr::core::string<T,TAlloc>::operator +=(const irr::core::string<T> &)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(656): or 'void irr::core::string<T,TAlloc>::operator +=(int)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(661): or 'void irr::core::string<T,TAlloc>::operator +=(double)'
        while trying to match the argument list '(irr::core::string, const char [7])'
.\game.cpp(97) : error C2678: binary '+=' : no operator found which takes a left-hand operand of type 'irr::core::string' (or there is no acceptable conversion)
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(641): could be 'void irr::core::string<T,TAlloc>::operator +=(T)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(646): or 'void irr::core::string<T,TAlloc>::operator +=(const T *)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(651): or 'void irr::core::string<T,TAlloc>::operator +=(const irr::core::string<T> &)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(656): or 'void irr::core::string<T,TAlloc>::operator +=(int)'
        c:\irrlicht-1.2\irrlicht-1.2\include\irrString.h(661): or 'void irr::core::string<T,TAlloc>::operator +=(double)'
        while trying to match the argument list '(irr::core::string, int)'
.\game.cpp(99) : error C2662: 'irr::core::string<T,TAlloc>::c_str' : cannot convert 'this' pointer from 'irr::core::string' to 'const irr::core::string<T,TAlloc> &'
        Reason: cannot convert from 'irr::core::string' to 'const irr::core::string<T,TAlloc>'
        Conversion requires a second user-defined-conversion operator or constructor
Build log was saved at "file://c:\Documents and Settings\Eigenaar\Bureaublad\Counter strike 9.0 my game\Project1\Debug\BuildLog.htm"
Project1 - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========





dank bij voorbaat
 
Laatst bewerkt:
ik heb het al gevonden
er zat wel een kleine fout in mijn FPS
Code:
int lastFPS = -1;

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

		int fps = driver->getFPS();

		if (lastFPS != fps)
		{
			core::stringw str = L"Counter strike 9.0                  [ ";
			str += driver->getName();
			str += "] FPS:";
			str += fps;

			device->setWindowCaption(str.c_str());
			lastFPS = fps;
		}
	}
	device->drop();
	
	return 0;
}

dit
Code:
core::string str =
moest dit worden
Code:
core::stringw str =
wel een stomme fout .


Dus vraag is opgelost :D
 
wat doe je hier ?? modelletje in laden ?? (had ff naar de code kunnen kijken, maar ff geen zin in :) ) of ben je zelf met lightmaps bezig geweest ?
 
dit is een FPS (Frames Per Second) .
zelf gemaakt :) , ziet er wel goed uit , maar eigenlijk was dat voor mijn game .
en soms ben ik bezig met maps te maken , en erin te loaden .
maar ik ben gestopt met mijn game verder af te maken .
ik kost namelijk nietmeer verder , zat kompleet vast .
maarja :)
 
ok.....
dus het stukje code hier is slechts voor je framerate...
de code van getFPS () vind ik niet hier niet terug, alleen de toepassing ervan...
maar ik vermoed dat je zoiets heb geschreven ..

float FRAMERATE::GetFPS()
{
Tick = (float) GetTickCount();
Count++;
if ((Tick-1000)>OldFPS)
{
FPS = float(Count/((Tick-OldFPS)/1000));
OldFPS = (float) GetTickCount();
Count = 0;
}
return FPS;
}

maar ik doelde op die download van je, dat kasteeltje..... das waar het interessant wordt, vooral als je zelf die lightmaps aanbrengt... en zelf je maps schrijft, maar ik begrijp dat je een bestaande editor gebruikt ?

en vast zitten ? dan moet je t oplossen toch ! :) niks leuker dan 3D game programeren als je t mij vraagt

en ohja, hoe sluit je je fullscreen af ??? moest alt-tabben ;)
 
Laatst bewerkt:
ja programmeren is wel leuk .
maar echt wel moeilijk , ik ben gestopt .
omdat ik door muuren liep en niet kost oplossen , en nog veel meer .
maar ik heb hier en daar terug bezig met de dingetjes te maken in C++ zelf :) .
ik ga nog 4 maand gewoon kleine projectjes programmeren , en dan begin ik erweer aan :) .
en hoopen dat het af geraakt word .


en het afsluien masheert ook niet , dat weet ik maar dat komt nog wel :)
 
Laatst bewerkt:
door muren heen = collision detection, idd vak apart.... en er zijn idd veel van dat soort dingen in games. physics bv.... maar dat zijn juist de leuke en interessante onderwerken.
het niet door muren heen kunnne is echter vrij simpel op te lossen met een extra 2d map erbij (compleet 3d is net iets anders verhaal, maar zelfde flavour ), een plattegrond feitelijk. dit kan je zelf tekenen of laten genereren obv van je castlemodel.
gewoon bitmapje maken met zwart wit ofzo, en zeggen als het zwart is kom er niet.
je moet dus alleen de eerste positie dan wel in het wit zetten.
je peilt dan je positie in-game, die weet je altijd als het goed is, dan weet je ook de positie in de plattegrond, als op die positie een witte pixel ligt -> ok, anders de positie weigeren te veranderen. En dan idealiter als er wordt bewogen een klein stukje vooruitkijken in die richting....
dis misschien een heel simpele implementatie, maar prima om mee te beginnen en op voort te borduren. Hoewel het geen echte 'collision detection' is.....
 
ik dacht dat ik moest gebruik maken van een triangleselector .
maar ik zal wel 4 maand ongeveer verder doen met kleien projecten :) .
dat zal wel het beste zijn , want echt goed in games maken ben ik namelijk niet .
 
je 'moet' niks, er zijn zoveel implementaties, en triangle sectors is er gewoon 1.... alst maar werkt, om mee te beginnen, en daarna effieciency eisen stellen en kijken naar exceptions...
en goed ben je niet, dat wordt je ;)

maar hey, niks mis met kleine projecten :) krijg je iig dingen af ipv van altijd maar hetzelfde bezig te zijn
 
Laatst bewerkt:
de goedheid komt met dertijd wel ;)
maar dit is hier mijn traingleselector tothiertoe .
is nog niet af denk ik .

ik heb hier aan ongeveer 3 weken aangezeeten , is wel veel te lang .
de normaale game programmuers zitten hieraan ongeveer 1 dag of 2 dagen .
maarja komt alemaal wel goed ;)

Code:
    selector = CGameMain::getSceneManager()->createOctTreeTriangleSelector(CEnvironment::getGroundMesh()->getMesh(0), CEnvironment::getGroundNode(), 256); 
          CEnvironment::getGroundNode()->setTriangleSelector(selector); 
          triselector->addTriangleSelector(selector); 
          selector->drop();
 
ja tuurlijk....
geen programmeur die het in zijn eerste keer ff eruit blaat......
wat betreft je code, kan ik weinig uit opmaken, zie je functie uitwerkingen niet...
maar octrees zijn op zich een mooi iets, en hebben ook vele toepassingen.
Ik gebruik het in mijn nature editor om te bepalen wat wel en niet in beeld is (maar zou eigenlijk frustum culling moeten gaan toepassen), maar zodoende kan ik miljoenen plantjes en grassprietjes etc op mijn terrein ploppen en slecht 15-25% ervan ook echt renderen (alleen hetgeen wat dus in beeld is). Je kan het ook gebruiken om nabijheid van characters te scannen etc etc etc...
 
de funtie uitwerking en dergelijke komen nog wel ;) maar wel later .
en dan kan ik nog een server maken voor mijn game en klaar is die :) .
pakt dan wel binnen 2 of 3 jaar dat het volledig af is met servers enzo .
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan