我开始在SFML中编写基于tile的游戏并遇到了这个问题。我认为我在将纹理和窗口传递给函数时做错了。请帮助我;)。对不起我的英文。
代码:
#include <SFML/Graphics.hpp>
#include <cmath>
using namespace std;
using namespace sf;
class Tile
{
int number,colision;
Sprite sTile;
public:
//void add(int n,int c,Texture &tTile,int x,int y,int x2,int y2) {number=n;colision=c;sTile.setTexture(&tTile);sTile.setTextureRect(IntRect(x,y,x2,y2));}
int getcolision(){return colision;}
int getnumber(){return number;}
void drawTile(int x,int y,RenderWindow &window){sTile.setPosition(x,y);window.draw(sTile);}
};
int g_map[200][200];
int main()
{ for(int x=0;x<200;x++){for(int y=0;y<200;y++){g_map[x][y]=0;}}
RenderWindow window( VideoMode( 800, 600 ), "SFML2.1-window" );
Tile tile[100];
Texture tTile;
tTile.loadFromFile("textures.bmp");
tile[0].drawTile(0,0,window);
while( window.isOpen() )
{
Event event;
while( window.pollEvent( event ) )
{
if( event.type == Event::Closed )
window.close();
} //while
window.clear();
window.display();
} //while
return 0;
}
错误:
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text + 0x136):未定义引用_imp___ZN2sf6StringC1EPKcRKSt6locale'
C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o SFMLproj.cpp:(.text+0x15c): undefined reference to
imp ZN2sf9VideoModeC1Ejjj'
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text + 0x1a0):未定义引用_imp___ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE'
C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o SFMLproj.cpp:(.text+0x1ed): undefined reference to
_ imp _ZN2sf7TextureC1Ev'
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text + 0x238):未定义引用_imp___ZN2sf7Texture12loadFromFileERKSsRKNS_4RectIiEE'
C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o SFMLproj.cpp:(.text+0x293): undefined reference to
imp ZN2sf6Window5closeEv'
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text + 0x2ab):未定义引用_imp___ZN2sf6Window9pollEventERNS_5EventE'
C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o SFMLproj.cpp:(.text+0x2dd): undefined reference to
_ imp _ZN2sf5ColorC1Ehhhh'
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text + 0x2f8):未定义引用_imp___ZN2sf12RenderTarget5clearERKNS_5ColorE'
C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o SFMLproj.cpp:(.text+0x30a): undefined reference to
imp ZN2sf6Window7displayEv'
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text + 0x319):未定义引用_imp___ZNK2sf6Window6isOpenEv'
C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o SFMLproj.cpp:(.text+0x335): undefined reference to
_ imp _ZN2sf7TextureD1Ev'
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text + 0x369):未定义引用_imp___ZN2sf12RenderWindowD1Ev'
C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o SFMLproj.cpp:(.text+0x393): undefined reference to
imp ZN2sf12RenderWindowD1Ev'
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text + 0x421):未定义引用_imp___ZN2sf7TextureD1Ev'
C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o SFMLproj.cpp:(.text+0x461): undefined reference to
_ imp _ZN2sf12RenderWindowD1Ev'
C:\ Users \ Maks \ AppData \ Local \ Temp \ ccoLih4f.o SFMLproj.cpp :(。text $ ZN2sf8DrawableD2Ev [ _ZN2sf8DrawableD2Ev] + 0xfffff6d2):对_imp___ZTVN2sf8DrawableE'
c:\dev-cpp\mingw32\mingw32\bin\ld.exe C:\Users\Maks\AppData\Local\Temp\ccoLih4f.o: bad reloc address 0xe in section
的未定义引用.text $ ZN2sf8DrawableD2Ev [ _ZN2sf8DrawableD2Ev]”
c:\ dev-cpp \ mingw32 \ mingw32 \ bin \ ld.exe最终链接失败:操作无效
C:\ Users \ Maks \ Documents \ dev \ sfml \ Nowy文件夹(2)\ tile \ collect2.exe [错误] ld返回1退出状态