Kollisionsabfrage
-
Warum eigentlich die Fakes nicht löschen?
Bye, TGGC \-/
-
was soll den das spielfeld sein??? bei mir ist da nur was halbes
und wo sollen den nun genau kollisionen statfinden? könntest du nochmal alles etwas genauer erläutern???
-
Fangen wir vorne. Wie die Functionen heißen ist mein Bier.
2.Das mit der For-schleife ist mir auch schon eingefallen und hab es auch schon berichtigt aber trozdem Danke.
3.Was sind "Fakes"?
4. Das "Ding" hab ich grade in 2 Stunden zusammengeschustert. Ich find das dass dann klar ist das es noch nicht Perfekt ist.5.Ich will doch nur wissen wie ich es hinkriege das der Spierle (S) nicht dur die Baüme (B) rennen kann.
6. Dann eine neue Frage: Kann ich die buchstaben auch durch Bilder ersetzen ohne openGL oder DirectX zu benutzen?
-
Ipschie schrieb:
4. Das "Ding" hab ich grade in 2 Stunden zusammengeschustert. Ich find das dass dann klar ist das es noch nicht Perfekt ist.
Alleine für die For-Schleife hast du 1,5 Stunden gebraucht, oder?
Ipschie schrieb:
5.Ich will doch nur wissen wie ich es hinkriege das der Spierle (S) nicht dur die Baüme (B) rennen kann.
hmmm, da gibt es mehrere Möglichkeiten. Ein Wegfindesystem, oder einfacher mach ein Array das dein Spielfeld darstellt. 0 ist ein freies Feld und 1 nicht.
**
00010000010
00000001000
00000000000
00100000000
00000001000
**Und wenn der Spieler auf ein Feld mit einer 1 kommt lässt du ihn nicht mehr vorlaufen.
Ipschie schrieb:
6. Dann eine neue Frage: Kann ich die buchstaben auch durch Bilder ersetzen ohne openGL oder DirectX zu benutzen?
Ja. Da gibt es SDL, Allego dann noch ein paar von unseren Meisterwerken, XGameSDK(frag TGGC) und die giDXLib (basiert auf DirectX7, für VC++5.0, frag mich)
-
Für die For-schleifen hinterher hab ich noch 5 minuten gebraucht. Aber ich habe es wie man sieht erst eingetippt.
Das mit den einsen und nullen gefällt mir nicht so gut weil es später mehr Sachen geben soll als den Spieler und Bäume. Wie z.B. Häuser. Und ich will das der Spieler erst gar nicht auf das Baumfeld kommt.
z.B.
Spieler steht auf xpos=10 und der Baum auf xpos=11.Wenn ich jetzt runter drücke soll er nicht mehr weiter gehen.
-
Ipschie schrieb:
3.Was sind "Fakes"?
http://de.wikipedia.org/wiki/Fake
5.Ich will doch nur wissen wie ich es hinkriege das der Spierle (S) nicht dur die Baüme (B) rennen kann.
Per Kollisionsabfrage, was in deinem Fall nichts anderes als simple 2D-Mathematik ist.
6. Dann eine neue Frage: Kann ich die buchstaben auch durch Bilder ersetzen ohne openGL oder DirectX zu benutzen?
Ja
-
Und jetzt bitte in c++. Wo muss ich diese einbauen. Er meckert immer egal was man macht. Endweder sagt er S1 ungültig oder B[1] ungültig usw.
Kannst du mir bitte sagen wie das geht (ohne DirectX oder OpenGL)
-
Ipschie schrieb:
Für die For-schleifen hinterher hab ich noch 5 minuten gebraucht. Aber ich habe es wie man sieht erst eingetippt.
Das mit den einsen und nullen gefällt mir nicht so gut weil es später mehr Sachen geben soll als den Spieler und Bäume. Wie z.B. Häuser. Und ich will das der Spieler erst gar nicht auf das Baumfeld kommt.
z.B.
Spieler steht auf xpos=10 und der Baum auf xpos=11.Wenn ich jetzt runter drücke soll er nicht mehr weiter gehen.Ja und? Dann ist eben alles ungleich 0 unbegehbar.
-
Ipschie schrieb:
Und jetzt bitte in c++. Wo muss ich diese einbauen. Er meckert immer egal was man macht. Endweder sagt er S1 ungültig oder B[1] ungültig usw.
Kannst du mir bitte sagen wie das geht (ohne DirectX oder OpenGL)
Hallo, ich schreibe mir grade ein Betriebssystem aber in Zeile 113 bekomme ich immer einen Compilerfehler mit Variable cc2. Was kann ich machen?
-
Manchmal ist google nütliche rals diese Forum. Wenn ich was eingebe sagt es mir meistens was ich hören will und hielf mir bei meinen sagen. Hier ernte ich nur krietig(ich weiß sie zu schätzen) aber ich hätte auch gerne meine Frage beantwortet.
-
Ich kann Krieg auch auf den Tod nicht ausstehen...!
interpreter schrieb:
6. Dann eine neue Frage: Kann ich die buchstaben auch durch Bilder ersetzen ohne openGL oder DirectX zu benutzen?
Ja
In der Konsole??
-
Ipschie schrieb:
Manchmal ist google nütlicher als dieses Forum.
Das sagt TGGC auch immer ;). Gut das du das selbst erkannt hast.
[edit]
Ipschie schrieb:
aber ich hätte auch gerne meine Frage beantwortet.
Dazu musst du erst mal eine beantwortbare Frage stellen und nicht Sachen a la "hier ist mein Problem, schiebt mir die Lösung in den A...."
Der Tipp mit dem Array war gut, und mit ein bisschen Denkleistung wäre es auch nicht schwer den Ansatz so zu erweitern, das er auf dein Problem passt. Arbeit nimmt dir hier niemend ab.
[/edit]
-
Was hat das mit krieg zu tun?
ja ich möchte diese "B" in der konsole durch Bilder ersetzen oder weißt du ne gut Windowsprogrammierungs Tutorial? Auf Deutsch wens geht
-
Ipschie schrieb:
Manchmal ist google nütliche rals diese Forum. Wenn ich was eingebe sagt es mir meistens was ich hören will und hielf mir bei meinen sagen. Hier ernte ich nur krietig(ich weiß sie zu schätzen) aber ich hätte auch gerne meine Frage beantwortet.
in einem forum bekommst du nur anregungen... ich glaube nicht,dass wenn du so eine frage postet, jemand gleich alles für dich programmieren wird... zudem hat dir H.L.T.O schon einen guten tipp gegeben, den du nur noch umsetzten musst...
du kannst es ja so machen, dass geprüft wird, ob das nächste feld eine 0 oder eine 1 ist... wenn es ne 0 ist, dann macht man gar nichts, ansonsten geht S auf die neue position
-
Hej,
du musst halt im Grunde bevor du auf das naechste Feld gehst, abfragen ob es frei ist.
Am 'einfachsten' ist das wenn du durch alle Gegenstaende laeufst und guckst ob eines von denen auf dem jeweiligen Feld steht.
Aber um mehr Speed rauszuholen koennte man das Spielfeld noch in groessere Planquadrate einteilen und dann muss man immer nur die Gegenstaende auf Kollision ueberpruefen die im selben Planquadrat sind.// Pruefvariable: // 0 = Feld frei (Spieler kann drauf gehen) // 1 = Feld besetzt (Spieler muss stehenbleiben) int nFree = 0; // Alle Objekte durchlaufen // und gucken ob eins auf dem Feld steht, // wo der Spieler hin will. // (In 'nAnzObjekte' steht die Anzahl der vorhandenen Objekte) for(int i=0; i<nAnzObjekte; i++) { // Wenn Feld auf das Spieler will besetzt ist: // Pruefvariable auf 1 (Fehler) setzen if(S.xpos == B[i].xpos && S.ypos == B[i].ypos) nFree = 1; } // Rueckgabe ob Feld frei oder besetzt return nFree;
Am besten packste das ganze auch in ne Funktion und rufst es immer auf wenn der Spieler Hoch, Runter, Links Rechts will. Du musst allerdings auf die entsprechende Variable (S.xpos oder S.ypos) draufaddieren oder abziehen, je nachdem wo der Spieler halt hinwill. Weil sonst wuerde je immer abgefragt werden ob auf dem Feld wo der Spieler gerade ist, ein Baum steht.
Gibt die Funktion dann 0 zurueck, darf der Spieler aufs Feld gehen.
ByeBye, Viking69
/edit:
Grrrr, warum sieht man erst hinterher das was falsch ist
-
OK mach ich aus den 0 und 1 halt B. Melde mich dana morgen wieder ung gucke obs gecklapt hat. Aber Danke.
Noch ne frage: Ist das Buch Spieleprogrammierung (von Lennart Steinhe) gut? Ich glaub ich kauf es mir.
-
ich habe dieses buch ebenfalls.... habe es aber noch nicht ganz durchgearbeitet... das was ich aber gelesen habe, war recht gut und ist ein guter einstieg in die spieleprogrammierung... einzige voraussetzung ist, dass man !!!GUT!!! c++ können sollte!!!
-
Was heißt gut? Mit Windows programmierung oder ohne. Nur grundgerüst oder mit Zeigern usw.
-
Ipschie schrieb:
Was heißt gut? Mit Windows programmierung oder ohne. Nur grundgerüst oder mit Zeigern usw.
Windowsprogrammierung brauchst du nicht können. Das Buch arbeitet mit Allegro. Mit "gut C++ können" ist gemeint, dass du die Sprache und all ihre Aspekte sicher beherrscht.
-
Sgt. Nukem schrieb:
Ich kann Krieg auch auf den Tod nicht ausstehen...!
interpreter schrieb:
6. Dann eine neue Frage: Kann ich die buchstaben auch durch Bilder ersetzen ohne openGL oder DirectX zu benutzen?
Ja
In der Konsole??
Klar.