将窗口和纹理传递给函数

时间:2014-03-12 19:08:04

标签: function sfml

我开始在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退出状态

1 个答案:

答案 0 :(得分:0)

看起来您没有提供良好的链接器设置,这是将可执行文件与SFML的DLL链接所必需的。

认真对待此tutorial

相关问题