Granitehead
Advanced Member
- Joined
- Oct 16, 2009
- Messages
- 3,011
Re: T4b's-C-Fragen-Thread
<r><QUOTE author="foxblock"><s>
<br/>
Okay, danke. <E>
</E><br/>
<br/>
-- So Aug 22, 2010 21:12 --<br/>
<br/>
Ich habe mir gerade mit Synaptic (in Ubuntu) sdl_image installiert. Dann wollte ich sehen ob es geht und habe <URL url="http://de.wikibooks.org/wiki/SDL:_Tux-Programm"><s></s>dieses<e></e></URL> Beispielprogramm im SDL Wikibook abgeändert, so dass es diese lib für das laden des Bildes nutzen sollte:
<CODE><s>
</e></CODE>
Wenn ich das jetzt kompilieren will kommt das:
<CODE><s>
</e></CODE>
<E>:huh:</E> <br/>
<br/>
Ich sehe den Fehler nicht.</r>
<r><QUOTE author="foxblock"><s>
</e></QUOTE>Wusste nicht mehr genau wie das gehandhabt wird, wenn man ints und floats durcheinanderbringt...<br/>foxblock said:</s>Das sollte gehen, warum auch nicht...<e>
<br/>
Okay, danke. <E>
<br/>
-- So Aug 22, 2010 21:12 --<br/>
<br/>
Ich habe mir gerade mit Synaptic (in Ubuntu) sdl_image installiert. Dann wollte ich sehen ob es geht und habe <URL url="http://de.wikibooks.org/wiki/SDL:_Tux-Programm"><s></s>dieses<e></e></URL> Beispielprogramm im SDL Wikibook abgeändert, so dass es diese lib für das laden des Bildes nutzen sollte:
<CODE><s>
Code:
</s>#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
int main(int argc, char *argv[])
{
SDL_Surface *screen, *image;
SDL_Rect dst, dstblue;
SDL_Event event;
Uint8 *keys;
int tuxX = 50, tuxY = 50;
int done = 0;
if (SDL_Init(SDL_INIT_VIDEO) == -1) {
printf("Can't init SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
screen = SDL_SetVideoMode(800, 480, 16, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 255));
if (screen == NULL) {
printf("Can't set video mode: %s\n", SDL_GetError());
exit(1);
}
image = IMG_Load ("tux.bmp");
if (image == NULL) {
printf("Can't load image of tux: %s\n", SDL_GetError());
exit(1);
}
dst.w = image->w;
dst.h = image->h;
dstblue.w = image->w + 1;
dstblue.h = image->h + 1;
SDL_SetColorKey(image, SDL_SRCCOLORKEY, SDL_MapRGB(image->format, 255, 0, 0));
while (!done) {
while (SDL_PollEvent(&event)) {
switch(event.type) {
case SDL_QUIT:
done = 1;
break;
}
}
dstblue.x = tuxX;
dstblue.y = tuxY;
keys = SDL_GetKeyState(NULL);
if (keys[SDLK_UP]) {
if (tuxY > 10) {
tuxY--;
}
}
if (keys[SDLK_DOWN]) {
if (tuxY < 470 - image->h) {
tuxY++;
}
}
if (keys[SDLK_RIGHT]) {
if(tuxX < 630 - image->w) {
tuxX++;
}
}
if (keys[SDLK_LEFT]) {
if (tuxX > 10) {
tuxX--;
}
}
dst.x = tuxX;
dst.y = tuxY;
SDL_FillRect(screen, &dstblue, SDL_MapRGB(screen->format, 0, 0, 255));
SDL_BlitSurface(image, NULL, screen, &dst);
SDL_Flip(screen);
}
SDL_FreeSurface(image);
return 0;
}
<e>
Wenn ich das jetzt kompilieren will kommt das:
<CODE><s>
Code:
</s>t4b@t4b-desktop:~/Dev/C/SDL/Beispielprogramm_Tux$ gcc Beispielprogramm_Tux.c
/tmp/ccDw2cn6.o: In function `main':
Beispielprogramm_Tux.c:(.text+0x29): undefined reference to `SDL_Init'
Beispielprogramm_Tux.c:(.text+0x33): undefined reference to `SDL_GetError'
Beispielprogramm_Tux.c:(.text+0x57): undefined reference to `SDL_Quit'
Beispielprogramm_Tux.c:(.text+0x80): undefined reference to `SDL_SetVideoMode'
Beispielprogramm_Tux.c:(.text+0xab): undefined reference to `SDL_MapRGB'
Beispielprogramm_Tux.c:(.text+0xc3): undefined reference to `SDL_FillRect'
Beispielprogramm_Tux.c:(.text+0xcf): undefined reference to `SDL_GetError'
Beispielprogramm_Tux.c:(.text+0xf8): undefined reference to `IMG_Load'
Beispielprogramm_Tux.c:(.text+0x108): undefined reference to `SDL_GetError'
Beispielprogramm_Tux.c:(.text+0x182): undefined reference to `SDL_MapRGB'
Beispielprogramm_Tux.c:(.text+0x19a): undefined reference to `SDL_SetColorKey'
Beispielprogramm_Tux.c:(.text+0x1c3): undefined reference to `SDL_PollEvent'
Beispielprogramm_Tux.c:(.text+0x1e5): undefined reference to `SDL_GetKeyState'
Beispielprogramm_Tux.c:(.text+0x2b4): undefined reference to `SDL_MapRGB'
Beispielprogramm_Tux.c:(.text+0x2cc): undefined reference to `SDL_FillRect'
Beispielprogramm_Tux.c:(.text+0x2f0): undefined reference to `SDL_UpperBlit'
Beispielprogramm_Tux.c:(.text+0x2fc): undefined reference to `SDL_Flip'
Beispielprogramm_Tux.c:(.text+0x313): undefined reference to `SDL_FreeSurface'
collect2: ld returned 1 exit status
t4b@t4b-desktop:~/Dev/C/SDL/Beispielprogramm_Tux$
<e>
<E>:huh:</E> <br/>
<br/>
Ich sehe den Fehler nicht.</r>