|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mat Senior JLI'ler
Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 17.09.2005, 19:00 Titel: Scrolling in 2 Richtungen + Sternfeld-Programm |
|
|
Hey,
ich habe direkt zur Registrierung mal 2 Fragen :
Erstens versuche ich, das Scrolling2 Programm so zu verändern, dass ich auf knopfdruck nach oben-unten oder zur Seite scrollen kann .. dabei scheint die Schleife:
CPP: | for(int x=0;x<1024;x++)
{
PixelsView[1 * PitchView + x] = PixelsSurface[m_ScrollYPos * PitchSurface + (m_ScrollXPos+x)];
} |
Einen (semantischen) Fehler aufzuweisen, wesshalb das Programm abstürzt:
Compiler:
Ich habe nun schon auf verschiedene Weise versucht den Code so umzustellen, dass er endlich läuft, leider bisher vergebens..
Hier ist der Direct X Code :
DirectHeader.h (als txt-Datei)
Der Fehler tritt immer dann auf, wenn die UP-Taste drückt,die das scrollen aktiviert.
Hier der Source-Code dieser Datei:
Die Main datei CPP (hier txt)
Achja, und das 2. Problem:
Ich kann alle Programme bis auf die Sternenfeldbeispiele abspielen.
Diese brechen jedoch direkt nach dem Start ab, ist dieser Fehler schon bei anderen aufgetreten ?
=> Vielen Dank für Hilfe, jetzt bin ich erstmal fertig ^^ |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 17.09.2005, 22:27 Titel: Re: Scrolling in 2 Richtungen + Sternfeld-Programm |
|
|
Mat hat Folgendes geschrieben: | Ich kann alle Programme bis auf die Sternenfeldbeispiele abspielen.
Diese brechen jedoch direkt nach dem Start ab, ist dieser Fehler schon bei anderen aufgetreten ? |
Ja das ist ein mehr oder weniger bekanntes Problem. AFAIK liegt es daran das die Grenzen vom Grafikkartenspeicher vom Schweif überschritten werden.
Wieso hast du denn den Quellcode als txt-Dateien hochgeladen? _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
Mat Senior JLI'ler
Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 18.09.2005, 16:22 Titel: |
|
|
Die Quellcode Dateien habe ich als txt hier angegeben,damit man diese direkt über den Browser (Links-Click) einlesen kann.
Das mit dem Grafikkartenspeicher kann ich mir nicht so ganz vorstellen, da meine Grafikkarten 128MB Speicherkapazität aufweist.
Das sollte doch genügen oder !?
=> Hast du ein Fehler in meinem Quellcode gefunden :-/ ? |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 18.09.2005, 17:00 Titel: |
|
|
Mat hat Folgendes geschrieben: | Die Quellcode Dateien habe ich als txt hier angegeben,damit man diese direkt über den Browser (Links-Click) einlesen kann. |
Also mit einem fortschrittlichen Browser geht das auch so, aber egal.
Mat hat Folgendes geschrieben: | Das mit dem Grafikkartenspeicher kann ich mir nicht so ganz vorstellen, da meine Grafikkarten 128MB Speicherkapazität aufweist.
Das sollte doch genügen oder !? |
Es geht nicht um die Kapazität vom Speicher, sondern vom Front Buffer.
Mat hat Folgendes geschrieben: | => Hast du ein Fehler in meinem Quellcode gefunden :-/ ? |
Das muss jemand anders übernehmen da ich das Prog schlecht auf meinem PC kompilieren kann (Linux). _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
Mat Senior JLI'ler
Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 23.09.2005, 16:02 Titel: |
|
|
Hmm ... das das Programm nicht läuft ist schon eine traurige Sache ;( aber ich gehe mal davon aus, das ich da nichts bewirken kann ..
Mir ist übrigens aufgefallen, dass das Programm JLI Fighter aus Kapitel ähm 25 glaub ich auch nicht läuft .. liegt das evtl. auch am Front-Buffer oder ist da sonst was bekannt !?
(Ich habe probiert mir mit DXCapsViewer.exe meine Front-Buffer kapazität anzeigen zu lassen, ist da aber glaube ich nicht aufgelistet)
Mir fallen da direkt noch 2 andere Fragen ein die ich hätte, ich bin mir nicht sicher ob ich die nicht in einen anderen Thread schreiben sollte .. ich schreibe sie einfach mal :
Erstmal habe ich ein "Problem" beim Verstehen folgendes Ausschnittes:
Code: | Pixels[y * nPitch + x] |
Die Bedeutung, und was dieser Ausschnitt bewirkt ist mir zwar klar, aber ich glaube ich stelle mir da etwas falsch vor.
Meine Vorstellung:
Die Pixel sind durchnummeriert, und um auf den richtigen Pixel zuzugreifen (was man mit X und Y bewerkstelligen will), muss man die richtige Nummer finden.
y = Anzahl der Zeilen
* nPitch
=> Anzahl der Pixel im Quadrat y*nPitch
Das dann nochmal +x wäre ja dann der Pixel in einer weiteren Zeile.
Also müstte es nicht lauten Pixels[(y*nPitch-1)+x] ??
(Das ist schwer zu beschreiben,ich hoffe aber man versteht es)
Dann die 2. Frage (^^) :
In der im Buch dargestellten Klasse CDirect3D gibt es die Methode zum Darstellen von Texten (DrawText) deren Funktion verstehe ich natürlich auch, nur gibt man dieser Methode ja einen direkten Text, dabei erwartet die Funktion doch einen Zeiger (LPCSTR) warum akzeptiert diese also direkten Text !??
Danke fürdie Mühe ^^ allein zum lesen |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 23.09.2005, 18:16 Titel: |
|
|
Mat hat Folgendes geschrieben: | In der im Buch dargestellten Klasse CDirect3D gibt es die Methode zum Darstellen von Texten (DrawText) deren Funktion verstehe ich natürlich auch, nur gibt man dieser Methode ja einen direkten Text, dabei erwartet die Funktion doch einen Zeiger (LPCSTR) warum akzeptiert diese also direkten Text !?? |
Das liegt an der Architektur der C-Strings(in Kap15 gibts ja noch die von der STL ). Vereinfacht gesehen ist ein C-String nichts anderes als ein Array von chars. Beim Handling damit wird nicht das gesamte Array übergeben, sondern nur ein Zeiger auf den ersten Char. Der String geht jetzt so lange, bis das \0-Zeichen gelesen wurde.
Wenn du jetzt einen "direkten Text" angibst, dann wird im Grunde nur ein Zeiger auf den ersten Buchstaben im Speicher übergeben. _________________ 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 |
|
|
Mat Senior JLI'ler
Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 25.09.2005, 15:03 Titel: |
|
|
Danke
Ich denke, dass ich das verstanden habe.
Mit meinen anderen Problemen mache ich nochmal ien neues Thread auf.
Merci. |
|
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
|