Kollisionsabfrage
-
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.
-
Naja mal sehn.
Und interpreter kannst du mir bitte mal sagen wie ich das mache?
-
Ipschie schrieb:
Naja mal sehn.
Und interpreter kannst du mir bitte mal sagen wie ich das mache?
z.B. per SDL. Da ist sowas ein Kinderspiel und 100mal einfacher als mit D3D.
-
Danke. Werde mich dann morgen vieleicht wieder melden.
-
Es klappt. Die Kollisionen klappen. Danke
Wer sich selber überzeugen will: Bitte hier klicken.
-
Ist ebend die erste Version (Version 0.0000000001)
Scheint ja ein längerfristiges Projekt zu werden.
-
Naja ist mein Versuch. Soziemlich das erste was ich frei mit c++ mache. Mal Gucken wie lange es dauert. Soll alles später noch als Grafik gemacht werden und mit Windows usw. Bin halt noch ein anfänger mit solchen Sachen.