Schnellere Alternative zu printf, write und setchar
-
Ich habe ein "Fenster" an der Position des "Spielers":
@Swordfish sagte in Schnellere Alternative zu printf, write und setchar:
wclear(player->window); // Fenster noch an der alten Position -> löschen wrefresh(player->window); // ncurses mitteilen, daß das Fenster gezeichnet // werden soll // Fenster an die aktuelle Position verschieben (mv ... move): mvwin(player->window, player->position.y, player->position.x); waddch(player->window, PLAYER_GLYPH); // ein 'X' reinschreiben wrefresh(player->window); // Auf den Bildschirm damit.
Merken muss ich mir nur die Position. Ich muss auch nicht bei jeder Bewegung den ganzen Bildschirm löschen sondern nur die vorige Position des Spielers.
@daniel sagte in Schnellere Alternative zu printf, write und setchar:
Habe ich schon. "C Programmieren von Anfang an" von Helmut Erlenkötter. Kannst du mir ein besseres empfehlen?
Der Erlenkötter ist auch eins der ersten gewesen, die mir eingefallen sind. Und da steht ernsthaft nicht drinnen, daß Funktionen einen Rückgabetyp haben und eine Parameterliste und eine Funktion die nichts zurückgibt und keine Parameter nimmt so ausschaut:
void foo(void);
?
-
@daniel sagte in Schnellere Alternative zu printf, write und setchar:
Habe ich schon. "C Programmieren von Anfang an" von Helmut Erlenkötter.
Von wann ist denn das Buch?
-
@DirkB 1999
-
@Swordfish Es war davon die Rede, nur da ich keine Begründung dafür gefunden habe, habe ich es weggelassen
-
Ich schätze mal, Du verwendest den
gcc
? Dann kompiliere doch bitte mit-std=c99 -Wall -Wextra -Werror -pedantic
-
@Swordfish sagte in Schnellere Alternative zu printf, write und setchar:
-std=c99 -Wall -Wextra -Werror -pedantic
Warum?
-
@daniel Damit Dich Dein Compiler warnt, wenn Du Blödsinn machst.
-
@Swordfish Okay mache ich. Ich habe Probleme damit, die curses.h Bibliothek zu nutzen. Welche Datei genau brauche ich für meinen 32 Bit Windows Computer? Also ich habe schon im Internet gesucht, aber keine von denen hat funktioniert.
-
Also doch Windows? Darf ich Dich Fragen, womit Du Deinen Code schreibst?
-
@Swordfish Code::Blocks. Tut mir leid, wenn ich Blödsinn rede, ich habe noch nicht viel Wissen über C. Welche Quellen würdest du mir empfehlen um mehr C zu lernen?
-
@daniel sagte in Schnellere Alternative zu printf, write und setchar:
Ich habe Probleme damit, die curses.h Bibliothek zu nutzen. Welche Datei genau brauche ich für meinen 32 Bit Windows Computer?
Eine einzelne Datei tut es da nicht. Du müsstest PDCurses (eine Version von ncurses für Windows) herunterladen (den Sourcecode) und selbst kompilieren. Daraus wird eine Library (
pdcurses.a
) die Du zu Deinem Programm dazulinkst. Dann kannst Du<curses.h>
verwenden.Leider habe ich auf die schnelle keine Schritt-für-Schritt-Anleitung für die aktuelle Version 3.6 von PDCurses und Code::Blocks mit
mingw
gefunden. Ein Video daß das Prinzip erklärt, findest Du auf YouTube. (Nein, ich bin eigentlich kein Fan von YouTube-Videos für soetwas). Das Problem mit dem Video ist, daß Deine Verzeichnisse wahrscheinlich anders sein werden und das Makefile befindet sich inwo\auch\immer\du\PDCurses\ausgepackt\hast\wincon\makefile
. (wincon
stattwin32
wie im Video).
-
@Swordfish okay das klingt umständlich, Danke. Ich habe Virtual Box auf meinem Computer, ist es empfehlenswert, C in Linux zu programmieren? Denn es sieht so aus, als ob es dort einfacher gehen würde
-
Auf linux tippst Du halt einfach ein
apt-get ...
ein, lernst aber nicht wirklich was dabei.
-
@daniel sagte in Schnellere Alternative zu printf, write und setchar:
Ich habe Virtual Box auf meinem Computer, ist es empfehlenswert, C in Linux zu programmieren?
Obwohl ich Linux nutze, würde ich sagen, dass das nicht unbedingt so ist - nimm, was du besser kennst. Allerdings würde ich dir davon abraten, zu viel Zeit auf Animationen auf der Konsole zu verschwenden. Fang lieber mit einfachen Programmen an, die dir nur irgendwas ausgeben bzw. die eine Eingabe weiterverarbeiten.
Ich würde generell immer dazu raten, bei dem OS, das man gerade nutzt, zu bleiben. Wie du gesehen hast, ist so ein Kram wie irgendwie auch der Konsole hin- und herzuspringen schon sehr betriebssystemabhängig. Schau dir lieber erst die Standard-C Teile an, die universell dann überall funktionieren.
-
OT:
@wob sagte in Schnellere Alternative zu printf, write und setchar:Allerdings würde ich dir davon abraten, zu viel Zeit auf Animationen auf der Konsole zu verschwenden.
@wob Du willst mir aber jetzt nicht erzählen, daß Du damals als Du noch klein warst Dein erstes Snake nicht unglaublich Toll gefunden hast und stolz darauf warst und eventuell einen kleinen Motivationsschub davon bekommen hast?
-
@Swordfish Als ich angefangen habe, konnte ich mit Turbo Pascal direkt in den Speicher schreiben. Damals ging sowas wie
mem[$B800:row*80+col] := 'X';
oder so (vielleicht waren es auch noch *2, irgendwo gabs ja auch noch den Wert für die Farbe). Ja doch, fand ich toll.Nur heute geht das ja nicht mehr so leicht. Dafür ist es viel einfacher, irgendwelche Fenster zu erzeugen. Die Frage ist also, ob C für "ich möchte Snake schreiben" die beste Sprache ist.