 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Ranma JLI'ler

Anmeldedatum: 10.12.2002 Beiträge: 167 Wohnort: Cadolzburg Medaillen: Keine
|
Verfasst am: 07.11.2003, 23:23 Titel: |
|
|
es ist ja auch zum weiterentwickeln da,(so seh ich das)
sie besitzen alles besprochene und das ist das wichtigste,(das gelernte mal an einem Patzen funktionieren sehen)
oder wolltest wohl den Namen umändern oder wie?
und den Ruhm einhamstern
und was versteht ihr denn unter einem Profiesionelles Spiel? _________________ "Deutsche Sprache schwere Sprache"
sprach der C++er |
|
Nach oben |
|
 |
dxstarter Mini JLI'ler
Anmeldedatum: 02.11.2003 Beiträge: 10
Medaillen: Keine
|
Verfasst am: 08.11.2003, 06:48 Titel: |
|
|
Ich will lernen Spiele zu Programmieren. Deswegen hab ich mir das
Buch gekauft. Und wenn ein Beispiel nicht funktioniert wie soll ich es
dann lernen?
Ich will hier keine Spiele kopieren sondern meine eigenen Programmieren.
Aber um es zu lernen brauche ich funktionstüchtige Beispiele. Deswegen
hab ich auch dafür 25€ bezahlt. Die beiden Spiele dienen dem lerneffekt. |
|
Nach oben |
|
 |
Erni Junior JLI'ler
Anmeldedatum: 29.10.2003 Beiträge: 54
Medaillen: Keine
|
Verfasst am: 08.11.2003, 10:42 Titel: |
|
|
dxstarter hat Folgendes geschrieben: | Ich will lernen Spiele zu Programmieren. Deswegen hab ich mir das
Buch gekauft. Und wenn ein Beispiel nicht funktioniert wie soll ich es
dann lernen?
Ich will hier keine Spiele kopieren sondern meine eigenen Programmieren.
Aber um es zu lernen brauche ich funktionstüchtige Beispiele. Deswegen
hab ich auch dafür 25€ bezahlt. Die beiden Spiele dienen dem lerneffekt. |
selbst wenn es stimmt,dass ein spiel nicht geht. Bis du da angekommen bist, eines dieser Spieler selbst zu programmieren, wirst du jedes Kapitel des Buches intensiv durcharbeiten müssen, und die Beispielprogramme bis zum Spiel funktionieren alle, jedenfalls wenn ich sie selber schreibe . Und wenn du dich erfolgreich bis dahin durchgearbeitet hast, kannst du dieses Spiel ohne grosse Probleme selbst programmieren, da du bis dahin, wenn du wirklich jedes Kapitel gemacht hast, eine fürs Spiel ausreichende (kleine) Engine hast. |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 08.11.2003, 13:06 Titel: |
|
|
Ich bin auch der Meinung, dass es nicht sehr relevant fürs lernen ist, ob das Spiel funktioniert oder nicht. Die im Spiel vorkommenden Elemente werden ja vorher im Buch besprochen und an anderen Beispielen verdeutlicht. Die Spiele zeigen lediglich EINE Möglichkeit, wie man diese Elemente zu einem Spiel zusammenfügen kann. Und wenn man jene Elemente verstanden hat, kann man das spiel auch anhand des Quellcodes verstehen. Wenn nicht, sollte man sich die vorherigen Teile nochmal durchlesen und selbst eine Lösung entwickeln. Man kann sich ja dann am Quellcode der Spiele orientieren, falls man nicht mehr weiterkommt(oder hier im FOrum fragen ).
Ich hab bei JLI1 auch nicht den Code des Weltraumshooters gebraucht, um programmieren zu lernen. Im Gegenteil fand ich die vielen Quellcodedateien mit den vielen Klassen eher abschreckend.
Also hab ich mich hingesetzt und erst mal versucht, ein Windowsfenster zu erstellen und dann immer weiter Schritt um Schritt ein Sprite, dann eine Animation, etc... hinzugefügt und hab trotzdem ein paar Spielchen programmieren können. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 09.11.2003, 09:16 Titel: |
|
|
Ich muss hier mal dxstarter den Rücken stärken!
Wenn man sich ein Buch kauft, dass zusätzlich noch diese Beispiel-spiele auf dem Buchrücken anpreist, kann man auch erwarten, dass diese funktionieren.
Bei mir funktioniert das Beispiel übrigens auch nicht! Aber ich beschäftige mich sowieso lieber mit Direct3D.
Es kann sein, dass der Fehler etwas mit der Speicherverwaltung zu tun hat.
Das war z.B bei JLI-Fighter so, bei mir.
@dxstarter: Am mangelden Grafikkartenspeicher kann es bei dir nicht liegen, da du ja sogar eine DX9-Grafikkarte hast.
Also hast du mindestens 64 MB Grafikkartenspeicher, oder?
Bei wem funktioniert dieses Beispiel überhaupt  |
|
Nach oben |
|
 |
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 09.11.2003, 09:39 Titel: |
|
|
Jo, die Beispiel-CD ist in einem üblen Zustand...hab ich heut nacht wieder mal voll auskosten dürfen: 'DInputMouse' ist fehlerhaft, 'Material' macht nicht annähernd das, was es sollte.
Dazu kommen die fehlerhaften 'Haupt'-Spiele und ein paar Bespiele fehlen überhaupt. Das macht echt keinen sonderlich guten Eindruck.
Andererseits macht der finde ich sehr gute Aufbau des Buches, Inhalt und Programmierstil (bei dem was vorhanden ist ) wieder einiges gut. Wäre die CD in Ordnung hätte das Buch sicher die Note 1A verdient. Ich kauf mir sicher auch den Nachfolger, nur bitte diesmal einen Beta Tester engagieren 
Zuletzt bearbeitet von Chewie am 09.11.2003, 09:45, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 09.11.2003, 09:44 Titel: |
|
|
Das mit den fehlerhaften 'Haupt'-Spielen muß ich zurücknehmen...wenns hier um JLI_Asteroids aus Kapitel 25 geht, das funkt bei mir, ich habs grad ausprobiert. Ich hab 128 MB. |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 09.11.2003, 09:50 Titel: |
|
|
@dxstarter
Geh mal in Direct3D.cpp und spring runter bis zu folgender Methode:
Code: | // Methoden zum Start/Beenden der Szene
void CDirect3D::BeginScene(void) |
Da gibts du dann folgendes ein:
Code: | // Clear the viewport
m_lpD3DDevice->Clear( 0L, NULL, D3DCLEAR_TARGET,
0x000000ff, 1.0f, 0L );
m_lpD3DDevice->BeginScene();
// aktuellen Bereich in den Backbuffer kopieren
/* m_lpD3DDevice->StretchRect(m_lpSurface,
&m_ScrollRect,
m_lpBackBuffer,
0,
D3DTEXF_NONE);*/
m_ScrollRect.left += m_ScrollDirection;
m_ScrollRect.right += m_ScrollDirection;
// Wenn wir am Anfang oder am Ende der Oberfläche
// angekommen sind, wird die Scrollrichtung umgekehrt
if(m_ScrollRect.left == 2048 || m_ScrollRect.left == 0)
{
m_ScrollDirection = -m_ScrollDirection;
} |
Ich hab das StrechRect Zeug auskommentiert und vor BeginScene mit Clear den Bildschirm Bereich geleert.
Jetzt funktioniert es bei mir. Man kann es jetzt immerhin spielen
Allerdings ohne Hintergrundbild. Da ist jetzt alles blau.
[EDIT]
Ach ja. ich hab die Pfade noch etwas geändert (global.h) :
Code: |
#define SCR_WIDTH 1024
#define SCR_HEIGHT 768
#define SND_BACKGROUND "../../Media/open.mid"
#define SND_EXPLOSION_1 "../../Media/JLIAsteroids/expl1.wav"
#define SND_EXPLOSION_2 "../../Media/JLIAsteroids/expl2.wav"
#define SND_PHOTON "../../Media/JLIAsteroids/photon.wav"
#define FIGHTER "../../Media/JLIAsteroids/JLIRakete.png"
#define PHOTONSHOT "../../Media/JLIAsteroids/Photon_%d.png"
#define ASTEROID_BIG "../../Media/JLIAsteroids/Asteroid_big_%d.png"
#define ASTEROID_SMALL "../../Media/JLIAsteroids/Asteroid_small_%d.png"
#define EXPLOSION "../../Media/JLIAsteroids/Expl_%d.png"
#define UNIVERSE_1 "../../Media/JLIAsteroids/universe0.png"
#define UNIVERSE_2 "../../Media/JLIAsteroids/universe1.png"
#define UNIVERSE_3 "../../Media/JLIAsteroids/universe2.png" |
|
|
Nach oben |
|
 |
dxstarter Mini JLI'ler
Anmeldedatum: 02.11.2003 Beiträge: 10
Medaillen: Keine
|
Verfasst am: 09.11.2003, 11:45 Titel: |
|
|
@KI:
Danke, jetzt geht es.
Ach so, ich hab eine 128 MB Grafikkarte.
EDIT:
Code: | /* m_lpD3DDevice->StretchRect(m_lpSurface,
&m_ScrollRect,
m_lpBackBuffer,
0,
D3DTEXF_NONE);*/
|
Ich hab bei diese Zeile die Klammer weggemachtt. Jetzt geht es sogar in
vc++ mit Hintergrundbild.
Aber wenn ich nur die exe Datei ohne vc++ Starte dann geht es wieder
nicht.
Wiso ist das so? |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 09.11.2003, 12:11 Titel: |
|
|
dxstarter hat Folgendes geschrieben: | Aber wenn ich nur die exe Datei ohne vc++ Starte dann geht es wieder
nicht.
Wiso ist das so? |
Das liegt daran, dass das Programm die Ressourcen (Bilder und Sounds) nicht findet.
Die EXE-Datei wird im falschen Ordner ausgeführt.
Die Ressourcen müssen in 2 Überordnern + MEDIA liegen...
Guck mal in global.h
Da steht ja ../../Media
Das bedeutet, das er 2 Ordner "hoch" geht und dann in Media die Datei lädt, sofern eine da ist.
Da du die EXE aber aus dem Debug- oder Release- Ordner ausführst müsste er theroretisch 3 (anstatt 2) Ordner "hoch" gehen.
Wenn du das Programm allerdings aus der Entwicklungsumgebung startest ist das genauso als würdest du es direkt aus deinem Projektordner öffnen. (da wo die ganzen Quellcode-dateien liegen)
[EDIT]
Ich hoffe das ist verständlich.
Schieb einfach die erstellte EXE einen Ordner höher (aufwärts).
also von
...\JLISamples\Kapitel_25\JLI_ASTEROIDS/Debug
nach
...\JLISamples\Kapitel_25\JLI_ASTEROIDS
Da wird sie funktionieren.
p.s. bei mir funktioniert das Spiel nur ohne Hintergrundbild, weil ich zu wenig Grafikkartenspeicher habe... |
|
Nach oben |
|
 |
dxstarter Mini JLI'ler
Anmeldedatum: 02.11.2003 Beiträge: 10
Medaillen: Keine
|
Verfasst am: 09.11.2003, 12:33 Titel: |
|
|
Danke jetzt geht es.  |
|
Nach oben |
|
 |
Plasmarain Mini JLI'ler
Anmeldedatum: 21.11.2003 Beiträge: 37
Medaillen: Keine
|
Verfasst am: 22.11.2003, 18:18 Titel: |
|
|
Hi ihr beiden,
ich habe das selbe Problem,
das mit dem blauen bildschirm habe ich jetzt auch hinbekommen aber was heißt klammer weglassen?
Grüße
Matthias |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 22.11.2003, 20:33 Titel: |
|
|
Code: | /* m_lpD3DDevice->StretchRect(m_lpSurface,
&m_ScrollRect,
m_lpBackBuffer,
0,
D3DTEXF_NONE);*/ |
nicht so, sonder so:
Code: | m_lpD3DDevice->StretchRect(m_lpSurface,
&m_ScrollRect,
m_lpBackBuffer,
0,
D3DTEXF_NONE); |
mit Klammern meinte er die Kommentarzeichen /* ... */. |
|
Nach oben |
|
 |
Plasmarain Mini JLI'ler
Anmeldedatum: 21.11.2003 Beiträge: 37
Medaillen: Keine
|
Verfasst am: 23.11.2003, 17:11 Titel: |
|
|
Ja super, es klappt!
Vielen Dank! |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|