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

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

1

16.02.2010, 16:43

SDL_Tasten namen?

hi @ all,

ich hab schon ein wenig gegoogelt aber nix tolles bei gefunden... meine frage ist, ob ihr vielleicht eine liste oder ähnliches für die ganzen SDL tastennamen habt? weil nur SDL_LEFT und SDL_RIGHT wird auf dauer vllt nicht reichen und joa^^

vielen dank schonmal im voraus


mfg Jawaiica
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

2

16.02.2010, 16:47

http://wiki.delphigl.com/index.php/SDLKey

Entweder nutzt du nen anderes google, bist unfähig oder flunkerst. ;)

30 Sekunden und die Antwort flackerte auf meinem Bildschirm.

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

3

16.02.2010, 16:48

ok ich bin unfähig... ich hab nicht nach key gesucht sondern SDL tasten namen >.< sry =/ aber egal ich denke mal du hast nicht nur mir geholfen^^ dankeschön^^

edit: so ich hab das jetzt mit dem key geschaft! nun stellt sich noch eine frage, und zwar :

wieso spawnen ganz viele gegner und nicht nur einer? ich hab die taste s mit der spawnfunktion des gegnerischen objekts belegt und wenn ich diese gedrückt lasse dann spawnen unendliche viele gegner in eienr reihe.... erst wenn ich sie loslasse stoppt das.

wie kann ich das ändern? ich habs mit ner for schleife versucht , sodass die funktion nur einmal durchlaufen wird aber iwie schaff ichs nicht >.<
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

4

16.02.2010, 17:31

Mal Pseudo-Code:

Quellcode

1
2
3
4
5
6
7
8
9
bool gedrueckt = false;

if(Taste gedrueckt und !gedrueckt)
{
    Spawne gegner;
    gedrueckt = true;
} else {
    gedrueckt = false;
}

5

16.02.2010, 17:42

Zitat von »"Jawaiica"«

wieso spawnen ganz viele gegner und nicht nur einer? ich hab die taste s mit der spawnfunktion des gegnerischen objekts belegt und wenn ich diese gedrückt lasse dann spawnen unendliche viele gegner in eienr reihe.... erst wenn ich sie loslasse stoppt das.

wie kann ich das ändern? ich habs mit ner for schleife versucht , sodass die funktion nur einmal durchlaufen wird aber iwie schaff ichs nicht >.<


Naja, ich nehm mal an, du hast das so gemacht, dass pro Frame oder Update einmal geprüft wird, ob die Taste s gedrückt ist, und wenn das der Fall ist, dann wird die Spawn-Funktion aufgerufen. Die Spielschleife wird ja sehr oft durchlaufen, deshalb wird auch sehr oft überprüft, ob s geedrückt ist -> und dann jedes Mal deine Spawn-Funktion aufgerufen. Deshalb die vielen Gegner.

Ändern könntest du das, indem ein neuer Gegner erst nach einer bestimmten Zeit erstellt werden kann. Dann würde z.B. bei gedrücktem s nur jede Sekunde oder so ein Gegner erscheinen, und wenn man s nur einmal kurz antippt, wird nur ein Gegner gespawnt, wie du es möchtest.
//Edit: Oder natürlich auch in Mors Variante, die dein Problem eigentlich besser löst als mein Vorschlag...

PPretzel

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

16.02.2010, 18:08

schau dir doch einfach mal den code von deinen schüssen an ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

7

16.02.2010, 18:10

also ich hab das probiert aber iwie mach ich da was falsch...

bool gedrueckt = false;
if (SDLK_s == gedrueckt && !gedrueckt) {
SpawnGegner ();
RenderGeger();
}

Ich wusste nicht was du mit taste meinst deswegen hab ich das so gemacht^^ aber wenn ich das ausführe dann passiert nix wenn ich s drücke
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

8

16.02.2010, 18:49

Du hast mich falsch verstanden. :D

Du sollst eine Variable haben die überprüft ob im letzten Frame bereits die Taste gedrückt wurde. Wurde die taste gedrückt musst du sie auf true setzen. Ansonsten false.
Dann musst du nicht nur überprüfen ob die Taste gedrückt wurde, sondern auch noch ob die Variable, die enthält ob die Taste im letzten Frame auch gedrückt wurde, auf false ist. Den dann wurde im letzten Frame nicht die Taste gedrückt und es soll ein neuer Gegner gespawnt werden und die Variable muss dann auf true gesetzt werden, da ja die Taste gedrückt wurde.

Jetzt verstanden? :)

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

9

16.02.2010, 19:00

hm ein wenig :D ich versuchs gleich nach dem essen mal... aber ich weiß nicht ob ichs hinbekommen werde =/
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

10

16.02.2010, 19:07

Du kannst hier ja fragen. Ich will es dir nur nicht fertig schreiben, weil weder du noch ich was davon haben. :)

Werbeanzeige