I went through everything in my sprite.cpp, sprite.h (there is no reference to the main file yet)
I keep getting these errors I know I'm missing something (I looked in my game coding complete book, and look up source references in cplusplus.com)
I just can't place my finger on it, which I find sad since I'm good at classes.
------ Rebuild All started: Project: DirectX9 Window, Configuration: Debug Win32 ------
Deleting intermediate and output files for project 'DirectX9 Window', configuration 'Debug|Win32'
Compiling...
WinMain.cpp
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(26) : error C2143: syntax error : missing ';' before '*'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(26) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(26) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(31) : error C2653: 'std' : is not a class or namespace name
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(31) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(31) : error C2146: syntax error : missing ';' before identifier 'TextureFileName'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(31) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(39) : error C2653: 'std' : is not a class or namespace name
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(39) : error C2146: syntax error : missing ',' before identifier 'TextureFileName'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\winmain.cpp(12) : error C2146: syntax error : missing ';' before identifier 'd3d'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\winmain.cpp(12) : error C2377: 'LPDIRECT3D9' : redefinition; typedef cannot be overloaded with any other symbol
c:\program files\microsoft directx sdk (november 2008)\include\d3d9.h(331) : see declaration of 'LPDIRECT3D9'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\winmain.cpp(12) : error C2512: 'Sprite' : no appropriate default constructor available
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\winmain.cpp(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\winmain.cpp(109) : error C2440: '=' : cannot convert from 'IDirect3D9 *' to 'int'
There is no context in which this conversion is possible
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\winmain.cpp(120) : error C2227: left of '->CreateDevice' must point to class/struct/union/generic type
type is 'int'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\winmain.cpp(153) : error C2227: left of '->Release' must point to class/struct/union/generic type
type is 'int'
Sprite.cpp
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(26) : error C2143: syntax error : missing ';' before '*'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(26) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(26) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(31) : error C2653: 'std' : is not a class or namespace name
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(31) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(31) : error C2146: syntax error : missing ';' before identifier 'TextureFileName'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(31) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(39) : error C2653: 'std' : is not a class or namespace name
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(39) : error C2146: syntax error : missing ',' before identifier 'TextureFileName'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(3) : error C2628: 'Sprite' followed by 'void' is illegal (did you forget a ';'?)
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(4) : error C2556: 'Sprite Sprite::Set_Size(int,int)' : overloaded function differs only by return type from 'void Sprite::Set_Size(int,int)'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(35) : see declaration of 'Sprite::Set_Size'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(4) : error C2371: 'Sprite::Set_Size' : redefinition; different basic types
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.h(35) : see declaration of 'Sprite::Set_Size'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(5) : error C2065: 'Scale' : undeclared identifier
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(5) : error C2228: left of '.x' must have class/struct/union
type is ''unknown-type''
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(6) : error C2065: 'Scale' : undeclared identifier
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(6) : error C2228: left of '.y' must have class/struct/union
type is ''unknown-type''
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(29) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(29) : error C2146: syntax error : missing ',' before identifier 'TextureFileName'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(32) : error C2065: 'd3ddev' : undeclared identifier
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(32) : error C2065: 'm_Sprite' : undeclared identifier
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(34) : error C2065: 'd3ddev' : undeclared identifier
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(35) : error C2065: 'TextureFileName' : undeclared identifier
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(41) : error C2143: syntax error : missing ')' before ';'
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(47) : error C2065: 'm_Sprite' : undeclared identifier
c:\documents and settings\steven\my documents\visual studio 2008\projects\directx9 window\directx9 window\sprite.cpp(47) : error C2059: syntax error : ')'
Generating Code...
Build log was saved at "file://c:\Documents and Settings\Steven\My Documents\Visual Studio 2008\Projects\DirectX9 Window\DirectX9 Window\Debug\BuildLog.htm"
DirectX9 Window - 43 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
I'll keep checking for mistake(s). but I ask those willing to help take a look see for yourself.
here is sprite.h
#ifndef _SPRITE_H
#define _SPRITE_H
#include <d3d9.h>
#include <d3dx9.h>
#include <string.h>
struct Vector2D
{
int x;
int y;
};
struct Box
{
int x1;
int y1;
int x2;
int y2;
};
class Sprite
{
public:
ID3DXSPRITE *m_Sprite;
Vector2D Size;
Vector2D Position;
Vector2D Velocity;
Box Bound;
const std::string TextureFileName;
int RedColorKey, GreenColorKey, BlueColorKey;
void Set_Size(int x, int y);
void Set_Position(int x, int y);
void Set_Velocity(int x, int y);
void Set_Bound(int x1, int y1, int x2, int y2);
void LoadSprite(const std::string TextureFileName, int RedColorKey, int GreenColorKey, int BlueColorKey);
}
#endif
here is sprite.cpp
#include "Sprite.h"
void Sprite::Set_Size(int x, int y)
{
Scale.x = x;
Scale.y = y;
}
void Sprite::Set_Position(int x, int y)
{
Position.x = x;
Position.y = y;
}
void Sprite::Set_Velocity(int x, int y)
{
Velocity.x = x;
Velocity.y = y;
}
void Sprite::Set_Bound(int x1, int y1, int x2, int y2)
{
Bound.x1 = x1;
Bound.y1 = y1;
Bound.x2 = x2;
Bound.y2 = y2;
}
void Sprite::LoadSprite(const string TextureFileName, int RedColorKey, int BlueColorKey, int GreenColorKey)
{
D3DXCreateSprite(d3ddev, &m_Sprite);
D3DXCreateTextureFromFileEx(d3ddev,
TextureFileName,
Size.x,
Size.y,
D3DX_DEFAULT,
NULL,
D3DFMT_A8R8G8B8,
D3DPOOL_MANAGED;
D3DX_DEFAULT,
D3DX_DEFAULT,
D3DCOLOR_XRGB(RedColorKey, GreenColorKey, BlueColorKey),
NULL,
NULL,
&m_Sprite);
}
I will be very appreciated to those who are willing to help