expected semikolon bei Default Parametern

Simple Directmedia Layer: Portable Spieleprogrammierung
hardcoding
Beiträge: 91
Registriert: Do Okt 04, 2012 9:24 pm

Re: expected semikolon bei Default Parametern

Beitrag von hardcoding » Di Mai 21, 2013 2:34 pm

Ich habe bezüglich das Programm weiter überarbeitet. so weit so gut

Das Problem was ich nun habe,ist die Animation zu stoppen ohne das Programm abzubrechen.
Wie ihr im Screenhot sieht ist der Junge ganz links unten in der Ecke. Er ist von der Rutsche bis zum unteren Eck des Bildes gerutscht.

Nun weiss ich nicht wie ich das Stoppen kann.

Code: Alles auswählen

#include "SDL/SDL.h"
#include "SDL/SDL_image.h"

const int frames_per_second= 20;

SDL_Surface* Hintergrund = NULL;
SDL_Surface* garten  = NULL;
SDL_Surface* kind = NULL;

SDL_Event Event;

int startmember = 0,pausemember = 0;
bool pausmember = false,starmember = false;


int x = 88,y = 170;
int xVel = 0, yVel = 0;

void start()
{
    starmember=true;
    pausmember=false;
    startmember=SDL_GetTicks();
}

int get_ticks()
{
    if( starmember == true )
    {
        return SDL_GetTicks() - startmember;
    }
    return 0;
}

void autobewegung()
{
    int z=5,w=5;
    xVel+=z;
    yVel+=w;

}




void move()
{
    x += xVel;
    //Move the dot up or down
    y += yVel;

}

void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination, SDL_Rect* clip = NULL )
{
    //Holds offsets

    SDL_Rect offset;
    //Get offsets
    offset.x = x;
    offset.y = y;

    //Blit
    SDL_BlitSurface(source, clip, destination, &offset );
}

void show()
{
    apply_surface(x,y,kind,Hintergrund);
}


int main(int argc,char* argv[])
{
    bool quit=false;
    SDL_Init(SDL_INIT_EVERYTHING);
    Hintergrund = SDL_SetVideoMode(640,480,0,SDL_ANYFORMAT);
    garten = IMG_Load("Garten.jpg");
    kind   = IMG_Load("Kind.jpg");

    SDL_SetColorKey(kind,SDL_SRCCOLORKEY,SDL_MapRGB(kind->format,255,255,255));


    while( quit == false )
    {
        start();

        while(SDL_PollEvent(&Event))
        {
            autobewegung();
        }

        SDL_BlitSurface(garten,0,Hintergrund,0);
        show();
        move();
        SDL_Flip(Hintergrund);
        if( get_ticks() < 1000 / frames_per_second )
        {
            SDL_Delay( ( 1000 / frames_per_second ) - get_ticks() );
        }

    }
    SDL_Quit();
    return(0);

}



Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8472
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: expected semikolon bei Default Parametern

Beitrag von Xin » Di Mai 21, 2013 3:09 pm

hardcoding hat geschrieben:Wie ihr im Screenhot sieht ist der Junge ganz links unten in der Ecke. Er ist von der Rutsche bis zum unteren Eck des Bildes gerutscht.
Ich habe lange gesucht bis ich den Jungen (also das Auge) gefunden habe...
Rinks und Lechts kann man schnell velwechern, oder? ;-)
hardcoding hat geschrieben:Nun weiss ich nicht wie ich das Stoppen kann.
Wenn der Junge weit genug rechts... also links ist, hörst Du mit dem addieren auf?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

hardcoding
Beiträge: 91
Registriert: Do Okt 04, 2012 9:24 pm

Re: expected semikolon bei Default Parametern

Beitrag von hardcoding » Di Mai 21, 2013 3:33 pm

Wenn der Junge weit genug rechts... also links ist, hörst Du mit dem addieren auf?
Dann sag mir mal wie. :)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8472
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: expected semikolon bei Default Parametern

Beitrag von Xin » Di Mai 21, 2013 3:40 pm

hardcoding hat geschrieben:
Wenn der Junge weit genug rechts... also links ist, hörst Du mit dem addieren auf?
Dann sag mir mal wie. :)
Ich weiß nicht, ob xVel die Koordinaten des Jungens sind, aber im Falle dass:

Code: Alles auswählen

void autobewegung()
{
    int z=5,w=5;

    if( xVel < 500 )
    {
      xVel+=z;
      yVel+=w;
    }
}
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

hardcoding
Beiträge: 91
Registriert: Do Okt 04, 2012 9:24 pm

Re: expected semikolon bei Default Parametern

Beitrag von hardcoding » Di Mai 21, 2013 5:59 pm

Xin hat geschrieben:
hardcoding hat geschrieben:
Wenn der Junge weit genug rechts... also links ist, hörst Du mit dem addieren auf?
Dann sag mir mal wie. :)
Ich weiß nicht, ob xVel die Koordinaten des Jungens sind, aber im Falle dass:

Code: Alles auswählen

void autobewegung()
{
    int z=5,w=5;

    if( xVel < 500 )
    {
      xVel+=z;
      yVel+=w;
    }
}
Wie soll das gehen ?!
Ich muss doch nicht überprüfen ob xVel kleiner als 500 ist um die Addition zu stoppen ?!

hardcoding
Beiträge: 91
Registriert: Do Okt 04, 2012 9:24 pm

Re: expected semikolon bei Default Parametern

Beitrag von hardcoding » Di Mai 21, 2013 6:11 pm

Hat sich erledigt.

So sieht es jetzt in der Move funktion aus:

Code: Alles auswählen

void move()
{
    x += xVel;
    if(x>=220)
    {
        x-=xVel;
    }
    y += yVel;
    if(y>=300)
    {
        y-=yVel;
    }
}

Antworten