Programm-Version v1.11 von RandomXmas vom 23.12.2001 (58 KB/ 80 KB gesamt) Readme.txt: 24.12.2001 (127 Zeilen) makefile: 23.12.2001 (30 Zeilen) Programmierer: Stefan Ziegler Mails an: stefan.ziegler_zst@gmx.de Webseite: http://www.stefanziegler-online.de/weihnachten/weihprogs.html Bedienung: - Tasten 'x', 'y', 'z' drehen Spielfeld auf der entsprechenden Achse, je um 30 Grad in positiver Richtung. - Tasten 'X', 'Y', 'Z' drehen Spielfeld entsprechend in negativer Richtung. - Mit Taste 'i' drehen sie das Spielfeld wieder in die Ausgangsrichtung. - Mit 'd', 'v', 'r' schalten Sie zwischen (D)rehen, (V)erschieben und (R)eshape (Fenstergroesse) um. Bei allen funktioniert 'X'/'x', 'Y', 'y', 'i', beim Verschieben/Drehen natuerlich auch 'z'/'Z'. - Taste ´p´ schaltet Punktanzeige an/aus. - 'Esc'-Taste beendet Spiel vorzeitig mit Punktzahl 0. - Spielfigur bewegen Sie mit Cursortasten. - Mit Taste 'Ende' aufladen für Sprung, ausgefuehrt mit Cursortasten. - Scrollen bei Highscore mit 'Bild hoch' oder 'Bild herunter'(Page Up/Down) - Theoretisch auch mit Joystick (nicht getestet). Die Groesse des Fensters ist variabel, sollte aber quadratisch gehalten werden, sonst verdreht sich in Extremfaellen das Spielfeld nach unten. Spielbeschreibung: Sammeln Sie Punkte unter (zufaellige Werte) und über (zufaellig, aber gleicher Buchstabe - gleiche Veraenderung) den Baeumen (springen/hinlaufen). In einigen Faellen aendert sich dabei die Maximalpunktzahl (nicht zufaellig). Mit groesseren Huegeln wechseln sie in andere Ebenen. In einigen Fällen verlieren sie aber auch(siehe Konstanten). Bei kleineren passiert nichts. Fuer die Buchstaben darueber gilt das gleiche wie bei den Baeumen. Wenn die Maximalpunktzahl erreicht ist (rechts von den Punkten), dann gehen sie in einen Huegel und das Spiel ist beendet (oder mit 'Esc'). Wenn sie eine Taste druecken, kommt die TopTen und darunter ihre Punktzahl (bei verlorenen -1, abgebrochenen Spielen 0) mit Datum und Uhrzeit. Mit 'Esc'-Taste beendet sich dann das Programm. Benutzung: Braucht Libraries GL, GLU, GLUT und andere Standardbibliotheken. Download-Hinweise bei www.opengl.org -> Downloads Glut: http://www.opengl.org/developers/documentation/glut.html glut.dll für Windows bei http://www.xmission.com/~nate/glut.html Uebersetzungs-Hinweise bei: http://www.lighthouse3d.com/opengl/glut/ Variable DETAILS in konstanten.h: 10 ist Standard, d.h. 100 Polygone je Kugel, 50 Polygone je Kegel(-stumpf). 1. spiel11.tar.gz in ein Verzeichnis kopieren, auspacken mit 'gzip -d spiel11.tar.gz' und 'tar -xvf spiel11.tar' 2. Programm uebersetzen mit 'make' 3. Bei fehlerfreier Uebersetzung ist eine Datei 'spiel' angelegt worden. Mit dieser koennen Sie dann das Spiel starten. 4. Mit './spiel' starten sie das Programm 5. Mit './spiel highscore' wird das Punktergebnis in dieses File eingetragen. Die Filelänge ist beliebig (sollte in den Speicher passen), je Zeile werden 100 Zeichen gelesen und nach Einordnung der erspielten Punkte die Zeilen geschrieben. 6. Mit './spiel highscore Name' oder 'spiel highscore Vorname Nachname' wird der Name ins Highscorefile mit eingetragen. 7. Also am besten Variante 6 in Script/Batch-Datei stecken und damit starten. History: 21.12.2000: erste Beta-Version, einige kleinere Macken, aber keine schweren Fehler, spielbar 22.12.2000: v1.00 Erste nahezu fehlerfreie Version 25.12.2000: v1.01 -Anzeige der Geschenke ausschaltbar, -eine schon vorhandene Ebene wird nicht neu angelegt, wenn in sie gewechselt wird (sonst Speicher belegt, der nicht wieder freigegeben werden kann) -Readme mit History -Versionsnummern eingefuehrt. 05.01.2001: v1.02 Punktanzeige korrigiert, jetzt FELDEINHEIT ueberall Maß fuer Abstand, statt MAXFELDHOEHE zwischen großen und kleinen Geschenken. 06.01.2001: v1.03 Zeitausgabe am Ende umprogrammiert auf gettimeofday. und ohne doppeltes Newline Makefile erweitert auf alle X-Libs 09.11.2001: v1.10 - Punkteanzeige mit Ziffern, Schriftverwendung, - Highscorefile-Verarbeitung/Anzeige, - Punktesammeln erweitert, - globales Licht in Szene und entsprechende Farben, - Joystickfunktion eingebaut aber nicht getestet, - Aufteilen des Codes in Files mit den entsprechende Klassen, - Standard-Sicht veraendert. - ToDoList eingefuegt in readme 23.12.2001: v1.11 - Sprunghöhe abhängig von MAXFELDHOEHE - Quadrics gelöscht bei Ebenenwechsel - Schriftanzeige deutlicher, von 64 auf ca. 128 Zeichen - auch bei Highscore X-Drehung(vorher nur Y/Z) möglich - Highscore zeigt jetzt auch beliebiges File ohne Probleme an (bei Readonly auch nicht verändert) - Filelänge beliebig durch Ntzung von Listen - Scrolling bei Highscore-Dateianzeige. - Displaylisten in extra Programmstück ausprobiert - Detaillevel einstellbar für Bäume/Hügel - Klassen-Beschreibung eingeführt in Readme.txt ToDoList: - Grafik verbessern (Texturen) (v. a. die Baeume) (für 1.12 ?), - Version für Nicht-Weihnachtszeit (Farben, Felder, Spielfigur) - Sound (Soundblaster-Beeps und Wavefile-Abspielung), - Netzwerk- und Mehrspieler-Modus irgendwann Klassen: Ebene: Darstellung eines Levels, nutzt Feld und Grafikausgabe Feld: Darstellung eines Gegenstandes(Baum/Hügel), nutzt Grafikausgabe Geschenke: Punkte eines Spielers, Darstellung dieser, nutzt Grafikausgabe Grafikausgabe: Darstellung/Aufbewahrung von Zahlen, char[]-Zeichenketten Simplelist: Grundklasse der Listen, einfach verkettet, für Zahlen Stringlist: Listenklasse für char-Felder(Strings), abgeleitet von Simplelist Doublelist: Doppeltverkettete Liste für Listenhierarchie (nimmt Listen auf), abgeleitet von Simplelist Mann: Darstellung, Verwaltung eines Spielers, nutzt Gechenke, Grafikausgabe und Spielraumtyp Highscoreboard: Darstellung des Highscore oder allgemein von Files, nutzt Doublelist, Stringlist und Grafikausgabe Spielraumtyp: Aufnahme aller nötigen Variablen eines Spiels, Nutzung von (struct) Ebene, ohne Spieler Main-Prog Spiel.cpp: nutzt Spielraumtyp, Mann, Highscoreboard.