?
Hallo allerseits,
Ich bin vor kurzer zeit auf SDL2 umgestiegen und habe nun folgendes Problem:
Ich habe bei einem BildExample abgeschaut wie man mit SDL2 was darstellt...
das ganze muss anscheind erst auf eine Textur gebracht werden und dann nochmals
an den Render geschickt werden - egal alles tuts wie ich es will und ich kann auch die IMG_Load(jpg,png,tga...)dank sdl_image.h benutzen
nun war ich an den punkt wo ich ein kleines rauschiff steuern konnte und sogar
schießen konnte... Da ich aber mehrmals schießen wollte hab ich im internet gegoogelt und folgendes endeckt:
jemand der genau das gleiche problem hatte wie ich
http://stackoverflow.com/questions/22532065/sdl2-bullet-movement-not-working
da hab ich mir den code mal ganz genau angeschaut und war begeistert von den klassen, weil man anscheint so damit mehrmals schießen kann
- zurück zu mein code :
ich wollte ja auch mehrmals schießen können und hab dass dann übernommen oder besser gesagt mein code nochmals neu aufgezogen von anfang an:
Da ich NOCHNIE was mit klassen gemacht habe, hab ich mir das mal teils abgeschaut...
ich hab das problem dass zwar mein hintergrund dargestellt wird aber jedoch nicht mein raumschiff... BIS ICH GESEHN HABE DASS das SURFACE zum render geschickt wird ... so und jetzt hab ich das ganze nochmals bearbeitet und bin bei folgendem punkt:
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
SDL_Renderer* renderer = NULL;
SDL_Surface* ScreenSurface =NULL;
SDL_Surface* window = NULL;
SDL_Surface* Background = NULL;
SDL_Surface* Player = NULL;
SDL_Texture * texture2 = SDL_CreateTextureFromSurface(renderer,Player);
SDL_Rect posPlayer;
class thePlayer
{
public:
thePlayer();
void player_movement();
void show_player();
private:
};
thePlayer::thePlayer()
{
posPlayer.x = 200;
posPlayer.y = 300;
posPlayer.w = 20;
posPlayer.h = 30;
}
void thePlayer::player_movement()
{
}
void thePlayer::show_player()
{
SDL_RenderCopy(renderer, texture2, NULL, NULL);
//SDL_BlitSurface( Player, NULL, renderer,NULL);
//SDL_SetColorKey(Player, SDL_TRUE, SDL_MapRGB(Player->format, 255, 255, 255));
}
int main(int argc, char** argv)
{
SDL_Event event;
SDL_Init(SDL_INIT_VIDEO);
SDL_Window * window = SDL_CreateWindow("SDL AndroidGame",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 480, 854, 0);
SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);
Background= IMG_Load("background.png");
Player = SDL_LoadBMP("ship.bmp");
SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer,Background);
bool quit = false;
thePlayer myPlayer;
//GAME LOOP
while (quit == false)
{
SDL_RenderCopy(renderer, texture, NULL, NULL);
myPlayer.show_player();
myPlayer.player_movement();
SDL_RenderPresent(renderer);
}
}
wer kann mir helfen ???