Cpp:Building A Simple Tile Engine:Part 5
From GDWiki
[edit] Part 5: Creating units
I haven't got the time to finish this article right now, so until I have here's a stub box for you to look at:
- This article is a stub. You can help out by expanding it.
[edit] File: Unit.h
#ifndef UNIT_H #define UNIT_H #include "Entity.h" /** Unit entity */ class CUnit: public CEntity { private: int m_iPlayer; public: CUnit(); virtual ~CUnit(); virtual void VThink ( const int& iElapsedTime ); virtual void VRender ( SDL_Surface* pDestSurface ); virtual bool VLoad ( TiXmlElement* pXMLData ); virtual TiXmlElement VGetSaveData(); }; #endif // UNIT_H
[edit] File: Unit.cpp
#include "Unit.h" CUnit::CUnit() { } CUnit::~CUnit() { } bool CUnit::VLoad( TiXmlElement* pXMLData ) { CEntity::VLoad( pXMLData ); m_iPlayer = atoi( pXMLData->Attribute( "player" ) ); TiXmlElement* XMLPosition = pXMLData->FirstChildElement( "position" ); int iTileX = atoi( XMLPosition->FirstChild( "x" )->FirstChild()->Value() ); int iTileY = atoi( XMLPosition->FirstChild( "y" )->FirstChild()->Value() ); SetTile( iTileX, iTileY ); return true; } TiXmlElement CUnit::VGetSaveData() { TiXmlElement UnitElm( "unit" ); UnitElm.SetAttribute( "player", m_iPlayer ); UnitElm.InsertEndChild( CEntity::VGetSaveData() ); TiXmlElement PositionElm( "position" ); char buf[8]; TiXmlElement PosXElm( "x" ); sprintf( buf, "%d", GetTileX() ); TiXmlText PosXTxt( buf ); PosXElm.InsertEndChild( PosXTxt ); PositionElm.InsertEndChild( PosXElm ); TiXmlElement PosYElm( "y" ); sprintf( buf, "%d", GetTileY() ); TiXmlText PosYTxt( buf ); PosYElm.InsertEndChild( PosYTxt ); PositionElm.InsertEndChild( PosYElm ); UnitElm.InsertEndChild( PositionElm ); return UnitElm; } void CUnit::VThink( const int& iElapsedTime ) { CEntity::VThink( iElapsedTime ); } void CUnit::VRender( SDL_Surface* pDestSurface ) { CEntity::VRender( pDestSurface ); }
Proceed to Part 6: Creating the unit manager
Table of Content - Part 1 - Part 2 - Part 3 - Part 4 - Part 5 - Part 6 - Part 7 - Part 8 - Part X

