Klassen fuktionieren nicht
-
Zur ersten Funktion:
Du hast recht, das war ein Tippfehler. Ich habe es jetz mit deiner Lösung probiert, aber es funktioniert auch nicht. Ich progge mit SDL und benutze so SDL_BlitSurface:
//////////////////////////
SDL_Surface *image[10]SDL_BlitSurface(image[v] , NULL, back, &dst);
///////////////////////////////////////////
v ist hier, wie ich glaube schon gesgt habe das zu blittende Bild(image[v]).Zur zweiten Funktion:
Diese Funktion(moveX) soll zum Bewegen des Bildes auf der X-Achse dienen.
a ist der X-Wert und b der Wert, der a hinzuaddiert wird. a wird dann von der Funktion zurückgegeben.PS: Zu TGGC: Der hier abgebildete Code ist nur ein Ausschnit aus meinem vollständigen Code(schon einmal darüber nachgedacht, was die Punkte bedeuten?)
Gruß Crabbe
-
Crabbe schrieb:
PS: Zu TGGC: Der hier abgebildete Code ist nur ein Ausschnit aus meinem vollständigen Code(schon einmal darüber nachgedacht, was die Punkte bedeuten?)
Das ändert nichts daran, daß der Code wirklich Kot ist... aber jeder fängt ja mal an.
P.S.: Wenn Du das also erreichen wolltest, könntest Du
int animation::moveX(int a, int b) { a=a+b; return a; }
schon sehr viel lesbarer machen, indem Du einfach
int animation::moveXbyVal(int x, int val) { return (x + val); }
daraus machst...
Trotzdem solltest Du lieber eine MoveBy-Methode in Deiner Sprite-Klasse oder so integrieren, als hier eigene (sinnlose ?) Summen-Funktionen zu programmieren.Und das ist keineswegs verleumderisch, unterbutternd, oder sonstwie abwertend gemeint, ich will Dir nur helfen, sonst würde ich hier überhaupt nicht posten!!
Bevor wieder irgendwelche Beleidigungen wegen Mißverständnissen kommen...
Ich hab' auch Gefühle...
-
Crabbe schrieb:
schon einmal darüber nachgedacht, was die Punkte bedeuten?
Nein, das ist aber auch nicht meine Aufgabe. Als der, der hier von uns kostenlos eine Antwort erwartet, solltest Du nämlich dafür sorgen, das Du die wichtigen Codeteile zeigst und die Unwichtigen weglässt. Es ist so das Du mir (und den Anderen?) nichts weiter bieten kannst, als eine Knobelaufgabe, an der ich meine Erfahrung erweitern kann. Nun macht aber das Lösen von Knobelaufgaben mit ungenügenden oder widersprüchlichen Informationen keinen Spass (genau wie welche, die man schon das 5mal in diesem Monat hört), schon einfach deshalb weil es dann auf ein Raten hinausläuft. Deswegen solltest Du nicht auf die Idee kommen, das ich zu faul zum Denken bin, wenn ich nach weiteren Informationen frage. Im Gegenteil, kannst du es sogar als Privileg betrachten, das Du mit mir in Dialog treten kannst.
Bye, TGGC
-
Im Gegenteil, kannst du es sogar als Privileg betrachten, das Du mit mir in Dialog treten kannst.
-
TGGC schrieb:
Im Gegenteil, kannst du es sogar als Privileg betrachten, das Du mit mir in Dialog treten kannst.
Hört auf das, was mein Meister euch mitteilt, verleumderischer Pöbel!!
-
Das mit dem nicht verstehen war nicht so gemeint und ich schätze eure Hilfe wirklich sehr, aber könntet ihr, anstatt über mich herzuziehen, mir wirklich helfen?(das ist jetzt nicht abwertend gemeint
).
Ich will einfach nur zwei Funktionen in einer Klasse deklarieren, von den die eine für das Bilderwechseln zuständig ist und die andere für die Bewegung auf der X-Achse.
Vielen Dank!
Äh, und noch zu Sgt. Nukem: Was meinst du mit sinnlos?Gruß Crabbe
-
Wenn wir die nötigen Informationen haben helfen wir gerne. Ich verstehe meinen eigenen Code nicht wie soll ich es mit deinem
Ich versuche es mal trotzdem.
animation anim1; int f=1; //Nummer des Bildes int X = 50; //X- Koordinate while(!done) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: done = true; break; } } anim1.bild_wechseln(f); //Bilder wechseln anim1.moveX(X,2); //für die Bewegung
sagst du mir wo du den Wert von f erhöhst? Und warum sich die beiden Methoden des Objekts anim1 ausserhalb der Hauptschleife befindet.
-
Sinnlos ist eine Funktion, die mir 2 Werte zusammen addiert. Das kann ich auch direkt mit x + y machen...
Auf die schnelle würde ich sowas z.B. bevorzugen:
class Sprite { private : int X, Y, noFrames, curFrame; // ... public : Sprite(void); virtual ~Sprite(); void nextFrame(void); void moveX(int); void moveY(int); }; void Sprite::nextFrame(void) { curFrame++; if(curFrame >= noFrames) curFrame = 0; } void Sprite::moveX(int xVal) { x += xVal; } void Sprite::moveY(int yVal) { y += yVal; } // ...
-
Noch mal vielen Dank für eure Antworten.
Ich glaube ich überarbeite mein Programm erst einmal richtig und melde mich dann wieder.Gruß Crabbe
-
Crabbe schrieb:
Noch mal vielen Dank für eure Antworten.
Ich glaube ich überarbeite mein Programm erst einmal richtig und melde mich dann wieder.Gruß Crabbe
Spitzen Vorschlag!!