gejben
2013-08-06, 21:35
Hej,
Är väldigt färsk på C++ och går nu en kurs där jag lär mig detta och DirectX.
Jag är tidigare (mer) van vid att programmera i C och Java och jag känner mig lite osäker på när jag ska använda klasser i c++.
Vi håller nu på med ett enkelt projekt, jag ska göra en Space Invaders-klon. Jag har satt upp Win32koden i en WinMain.cpp och ska kalla funktioner som sköter spellogiken.
Hade jag gjort som när jag skriver Java hade jag haft ett Game-objekt som innehöll dessa funktioner, typ såhär:
Game.h:
#ifndef GAME_H
#define GAME_H
#include <Windows.h>
class Game
{
public:
bool Init(HWND);
void Update(HWND);
void End(HWND);
}
#endif
Game.cpp:
#include "WinMain.h"
#include "Directx.h"
#include "Game.h"
using namespace std;
/**Initialize the Game**/
bool Game::Init(HWND hWnd)
{
if(!initD3D(hWnd)) return false;
}
void Game::Update(HWND hWnd)
{
ScreenUpdate();
}
void Game::End(HWND hWnd)
{
ReleaseD3D();
}
Och hade jag gjort på C-vis hade jag gjort såhär:
Game.h:
#ifndef GAME_H
#define GAME_H
#include <Windows.h>
bool GameInit(HWND);
void GameUpdate(HWND);
void GameEnd(HWND);
#endif
Game.cpp:
#include "WinMain.h"
#include "Directx.h"
#include "Game.h"
using namespace std;
/**Initialize the Game**/
bool GameInit(HWND hWnd)
{
if(!initD3D(hWnd)) return false;
}
void GameUpdate(HWND hWnd)
{
ScreenUpdate();
}
void GameEnd(HWND hWnd)
{
ReleaseD3D();
}
Så frågan är: vilket sätt borde jag skriva på, och varför?
Är väldigt färsk på C++ och går nu en kurs där jag lär mig detta och DirectX.
Jag är tidigare (mer) van vid att programmera i C och Java och jag känner mig lite osäker på när jag ska använda klasser i c++.
Vi håller nu på med ett enkelt projekt, jag ska göra en Space Invaders-klon. Jag har satt upp Win32koden i en WinMain.cpp och ska kalla funktioner som sköter spellogiken.
Hade jag gjort som när jag skriver Java hade jag haft ett Game-objekt som innehöll dessa funktioner, typ såhär:
Game.h:
#ifndef GAME_H
#define GAME_H
#include <Windows.h>
class Game
{
public:
bool Init(HWND);
void Update(HWND);
void End(HWND);
}
#endif
Game.cpp:
#include "WinMain.h"
#include "Directx.h"
#include "Game.h"
using namespace std;
/**Initialize the Game**/
bool Game::Init(HWND hWnd)
{
if(!initD3D(hWnd)) return false;
}
void Game::Update(HWND hWnd)
{
ScreenUpdate();
}
void Game::End(HWND hWnd)
{
ReleaseD3D();
}
Och hade jag gjort på C-vis hade jag gjort såhär:
Game.h:
#ifndef GAME_H
#define GAME_H
#include <Windows.h>
bool GameInit(HWND);
void GameUpdate(HWND);
void GameEnd(HWND);
#endif
Game.cpp:
#include "WinMain.h"
#include "Directx.h"
#include "Game.h"
using namespace std;
/**Initialize the Game**/
bool GameInit(HWND hWnd)
{
if(!initD3D(hWnd)) return false;
}
void GameUpdate(HWND hWnd)
{
ScreenUpdate();
}
void GameEnd(HWND hWnd)
{
ReleaseD3D();
}
Så frågan är: vilket sätt borde jag skriva på, och varför?