Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

xxendlessxx

Treue Seele

  • »xxendlessxx« ist der Autor dieses Themas

Beiträge: 230

Wohnort: Bad Schussenried

Beruf: Full Stack Developer

  • Private Nachricht senden

1

18.03.2009, 13:12

[SDL]Collision lässt gegner verrückt spielen

Hallo leute,
ich hab folgendes Problem.

Hab ein kleines Fangen Spiel programmiert, wenn man das so nennen kann.
Man steuert einen kleine Smilie und muss mit dem kleine Punkte einsammeln. Eigentlich was ganz simples. Nur wenn ich ein Punkt eingesammelt hab lass ich per Zufall den neuen Punkt wo anders auftauchen.

Aber sobald ich darauf komm, springt der neue Punkt wild hin und her zwischen zwei Punkten.

Ich benutze VC++ Express 2008 und SDL.

Hänge den Quellcode mal mit an, weil der für einen Beitrag denk etwas groß ist.

http://www.endless.devnetik.de/stuff/fangen.zip

vielen dank schonmal falls mir jemand helfen kann.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

2

18.03.2009, 15:32

ich kann es bei mir leider nicht so einfach kompilieren, gibt immer nen merkwürdigen fehler, an einer stelle, die meiner meinung nach richtig ist....

was mir aufgefallen ist:

C-/C++-Quelltext

1
enemy.draw(enemy.get_y(),enemy.get_x(),15,15,screen,"enemy.bmp");
da hast du x und y vertauscht

außerdem solltest du das bild (auch wenns so klein ist) nicht jedes mal neu laden, lade es einmal und übergib dann den pointer, nur so als kleiner tipp

außerdem würde ich im constructor von OBJECT active auf true setzen, sonst weißt du nicht, welchen wert es am anfang hat

und bei

C-/C++-Quelltext

1
2
unsigned int zx = rand()%WSCREEN;
unsigned int zy = rand()%HSCREEN;

würde ich (WSCREEN-15) und (HSCREEN-15) nehmen

ansonsten konnte ich ohne ohne es selbst kompilieren zu können, den fehler nicht ganz nachvollziehen und ausmerzen :P aber änder mal die sachen, können alle merkwürdiges zeugs auslösen

xxendlessxx

Treue Seele

  • »xxendlessxx« ist der Autor dieses Themas

Beiträge: 230

Wohnort: Bad Schussenried

Beruf: Full Stack Developer

  • Private Nachricht senden

3

18.03.2009, 15:49

danke dir das hat mir geholfen... es lag echt nur daran das ich die beiden vertauscht hatte.

danke echt ^^ ich wär echt fast durchgedreht. so ein kleines x und y da zu finden. man man man

die anderen sachen werd ich mir zu herzen nehmen.
gruß michi

Werbeanzeige