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

Darkrel

Treue Seele

Beiträge: 143

Wohnort: Zürich

Beruf: Student ETH Zürich

  • Private Nachricht senden

31

16.09.2011, 11:41

#include <SFML/Window.hpp> muss ausreichen, sonst stimmt was nicht. Natürlich immer unter der Voraussetzung dass er mit 2.0 entwickelt, ansonsten muss er eh sf::Input verwenden.
Wenn du nur #include <Keyboard.hpp> hinklatschst, dürfte eh nichts passieren. Keyboard ist innerhalb des SFML Verzeichnisses in einem Unterordner. Auch hier: Schau doch bitte zuerst mal in den SFML Ordner rein, das würde so viele deiner Fragen beantworten ;)


OTEdit: Wie cool ist denn das? Probiert mal Voraussetzung mit zwei 'r' zu schreiben, das Wort ist zensiert? Haben wir ein neues Rechtschreibfehler - Zensiersystem im Forum? Wenn ja: Thumbs up :D
:cursing:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Darkrel« (16.09.2011, 11:47)


Raidenkk

Treue Seele

  • »Raidenkk« ist der Autor dieses Themas

Beiträge: 151

Wohnort: Bergkamen/Oberaden

Beruf: Multimedia Informatik

  • Private Nachricht senden

32

16.09.2011, 11:54

ich benutze 1.6 sollte ich direkt mit 2.0 anfangen?.
Input bietet aber nur KeyDown und nicht KeyPress

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

33

16.09.2011, 12:13

Das Input-System wurde in 2.0 völlig überarbeitet. Es ist also Unsinn sf::Keyboard vorzuschlagen. Das gibt es erst in Version 2.0. In 1.6 heißt es noch sf::Key und auch sonst ist einiges anders.
Allerdings hast du meine Frage immer noch nicht beantwortet, was an direkter Tastenabfrage nicht funktioniert.

Hier mal mein Vorschlag(ungetestet, einfach nur so ungefähr):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
enum key_state
{
    KS_NONE = 0,
    KS_PRESSED,
    KS_PRESSING,
    KS_RELEASED
}

// Membervariablen, die vorher initialisiert werden:
key_state up_key_state = KS_NONE;
key_state down_key_state = KS_NONE;

// in der Funktion:
sf::Input& input = App.getInput();
if( input.isKeyDown( sf::Key::Up ) && up_key_state == KS_NONE )
    up_key_state = KS_PRESSED;
else if( input.isKeyDown( sf::Key::Up ) && up_key_state == KS_PRESSED )
    up_key_state = KS_PRESSING;
else if ( !input.isKeyDown( sf::Key::Up ) && ( up_key_state == KS_PRESSED || up_key_state == KS_PRESSING ) )
    up_key_state = KS_RELEASED;
else if( !input.isKeyDown( sf::Key::Up ) )
    up_key_state = KS_NONE;

if( up_key_state == KS_PRESSED )
    ++auswahl;

// Analog für die anderen Tasten(man kann auch super eine Schleife machen und alle Tasten nach dem gleichen Prinzip prüfen. Dazu einfach ein Array der Anzahl der Tasten(sf::Key::Count) erstellen

Raidenkk

Treue Seele

  • »Raidenkk« ist der Autor dieses Themas

Beiträge: 151

Wohnort: Bergkamen/Oberaden

Beruf: Multimedia Informatik

  • Private Nachricht senden

34

16.09.2011, 12:46

ich musste jetzt zwar nochmal nachgucken was enum ist aber jetzt verstehe ich den sinn dahinter ich werde es gleich mal ausprobieren :)

Sc4v

Alter Hase

Beiträge: 376

Beruf: Student

  • Private Nachricht senden

35

16.09.2011, 12:53

Das Input-System wurde in 2.0 völlig überarbeitet. Es ist also Unsinn sf::Keyboard vorzuschlagen. Das gibt es erst in Version 2.0. In 1.6 heißt es noch sf::Key und auch sonst ist einiges anders.
Da hast du Recht. Ich nahm fälschlicherweise an, dass er die neuste Version von SFML benutzt.

Raidenkk

Treue Seele

  • »Raidenkk« ist der Autor dieses Themas

Beiträge: 151

Wohnort: Bergkamen/Oberaden

Beruf: Multimedia Informatik

  • Private Nachricht senden

36

16.09.2011, 13:29

sollte ich jetzt als Anfänger SFML 1.6 nehmen oder schon 2.0?

Sc4v

Alter Hase

Beiträge: 376

Beruf: Student

  • Private Nachricht senden

37

16.09.2011, 13:39

Ich bin selbst Anfänger und benutze die 2.0.
Da sind halt einige Sachen überarbeitet worden und zu denen gibt es keine Tutorials. Allerdings ist das mit ein wenig Eigenschweiß, der Dokumentation und Google kein Problem.
Welche jetzt besser ist wage ich nicht zu behaupten.

lg

xyn

Frischling

Beiträge: 6

Wohnort: Hannover

Beruf: Webentwickler

  • Private Nachricht senden

38

16.09.2011, 13:40

Wenn man SFML auf Grundlage eines Buch lernt (und diese SFML 1.6 nutzt), dann macht es Sinn SFML 1.6 zu nutzen. Andernfalls 2.0 - würde ich sagen. ;)

xyn

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

39

16.09.2011, 13:44

Du bist doch jetzt schon nicht in der Lage die Doku zu lesen. aber da es bei 1.6 zumindest Tutorials gibt auf die man verweisen kann, würde ich dir raten, bei 1.6 zu bleiben.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

40

16.09.2011, 13:46

Ich empfehle Anfängern die SFML 1.6. 1.6 läuft einfach stabil und es ändert sich nichts mehr dran(wobei es einen ATI-Bug gibt, weswegen man egtl. besser 2.0 verwenden sollte). Das Problem bei 2.0 ist nur, dass sich halt ggf. recht viel ändern kann und wenn man dann mal wieder die Version aktualisiert, muss man auf einmal alles an ein neues Input-System oder ein neues Rendering-System(kommt demnächst) anpassen, was gerade als Anfänger nervenaufreibend sein kann. Wenn man damit allerdings keine Probleme hat und gerne die sehr gute Dokumentation liest, dann spricht nichts gegen die SFML 2.0. Wie gesagt die SFML 1.6 hat auch einen Bug, der das Laufen auf ATI-Grafikkarten erschwert. Daher ist 2.0 in dieser Hinsicht erst recht zu empfehlen - wobei die SFML 2.0 in ein paar anderen Anspekten nocht ein bisschen fehlerbehaftet ist.
Aber wenn du jetzt SFML 1.6 nutzt, dann mach ruhig damit weiter. Der Umstieg sollte später keine Probleme darstellen und dien nächstes Projekt schreibst du dann mit 2.0.

Werbeanzeige