Registriert: Mi Apr 30, 2003 14:00 Beiträge: 31 Wohnort: Wissen
Hallo....ist das jetzt richtig, dass ich die Frage hier poste; oder sollte ich sie lieber per E-Mail an Sos stellen??? Auch egal...ich hab mir mal gedacht SoS's Bomberman-Tut zu verwenden um einen Pacman-Clone zu erstellen.Sieht bis jetzt auch gut aus; ich habe da allerdings momentan ein kleineres Problem:
Sobald Pacman auf ein Feld eines bestimmten Typs kommt(hier Typ 2), soll die verwendete Textur auf genau diesem Feld durch eine neue Textur ersetzt werden. Ich habe mir das mal GROB so gedacht:
Code:
if Pacman.Position :=PlayGround[i,j].FType.2 then PlayGround[i,j].Texture:=schwarz.tga
Das klappt natürlich nicht; ich wäre also für einen besseren Vorschlag dankbar.
Toll...ich wollte eigentlich noch ne 2. frage stellen, die umfangreicher gewesen wäre; nur ist mir beim Verfassen gerade möglicherweise selbst ne Lösung dazu eingefallen ...ansonsten kann ich hier ja immer noch um Hilfe bitten :rolleyes: :rolleyes:
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Wieso sollte das nicht funktionieren? Abgesehen davon, des man in einer IF-Abfrage keine Zuweisung macht. Aber technisch ist das schon nicht ganz so verkehrt. Vergiß Du evtl. irgendwie die Textur zu setzen? Gib mal ne näher Beschreibung des "Problems"
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Mi Apr 30, 2003 14:00 Beiträge: 31 Wohnort: Wissen
Jaja...vom Ansatz her isses richtig,nur das Problem ist, rauszufinden(oder festzulegen) wie (und wo) die aktuelle Position Pacmans(oder allgemein einer figur ausm Bomberman-Tut) definiert ist. Weil mit pacman.position is sie nit definiert; das war nur zur (misslungenen) Verdeutlichung des probs. Das mim *.tga laden is ja kein Thema.
Kurz:Es geht nur darum, dass ich wissen will, wie man die aktuelle Position einer Figur deklarieren kann (alles am BomberMan Beispiel angelehnt) und dann sagt, dass die Textur des Feldes ausgetauscht wird, wenn diese Figur auf dem Feld eines bestimmten Typen steht.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Eigentlich steht ja zu Beginn des Tuts, das man recht gute Delphikenntnisse mitbringen soll...dein Problem hat ja nix mit OpenGL zu tun! Die Position ist doch bereits gegeben (muss ja), und zwar in der entsprechenden Eigenschaft von TPlayer.Das Feld auf dem deine Figur dann steht, lässt sich doch einfach rausfinden in dem du die Position des Spielers per Round zu einem Integerwert rundest.Dann hast du die Feldposition des Spielers und kannst dann direkt auf das Feld-Array zugreifen und die Textur verändern...ich weiss jetzt ehrlich gesagt nicht wo da dein Problem liegt.Wenn du die Tuts gewissenhaft durchgearbeitet hast, sollte eine solche Frage eigentlich gar nicht erst aufkommen...
Registriert: Mi Apr 30, 2003 14:00 Beiträge: 31 Wohnort: Wissen
AAAARRRRRRRGGGGGGHHHHHHH.......stimmt........AUA................hab die Zeilen beim durchforsten übersprungen....hab mich schon gewundert, wo die Position definiert ist...habs mir die letzte Woche sogar noch kommentiert seh ich gerade; is mir aber nit aufgefallen, da ich mim notepad danach gesucht hab.......thx
Registriert: Mi Apr 30, 2003 14:00 Beiträge: 31 Wohnort: Wissen
Sers Leute!
Also....ich hab heut mittag beim durchforsten auf meiner HD nochmal den angefangenen Ansatz von dem Pacman-Klon gefunden und hab mir gedacht, dass ich den heute/morgen mal vervollständige
Allerdings hab ich atm ein Problem:
Code:
if Hi(GetAsyncKeyState(KeyDown)) = 128 then
begin
Direction := 0;
if IsPositionValid(Position.x, Position.z+0.05*BomberManGame.TimeFactor*Speed+Size/2) then
Das is der Souce aus dem Tut fürs bewegen. Da Pacman aber nachdem man einmal(!) kurz die Taste gedrückt hat weiterläuft, würde ich das auch gerne verwirklichen.
Aber ich kriges nit wirklich hin Habs mit Schleifen& Tastendrucksimulation probiert, aber ging halt net.
Kann mir einer helfen?
Danke
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich glaube das Einfachste ist, das du die überprüfung der Tasten und die Bewegung deines PacMans trennst. Beim Druck auf eine Taste speicherst du einen Richtungswert in Direction (z.B.: 1-4). Und ein Stück weiter unten Verschiebst du je nach was in Direction steht deine PacMan. Dann wird er auch verschoben auch wenn du gar keine Taste mehr drückst. Das wars.
PS: Um das Ganze zu perfektionieren könntest du Direction null setzen sobald eine Wand erreicht hast. Somit würdest du rechenzeit sparen, da er sich an der Wand eh nicht mehr weiter bewegen kann.
PPS: Es bietet sich meist an komplexere Berechnungen in eine temporäre Variable aus zu lagern. Speziell wenn man diese Berechnungen sehr häufig durchführen muss.
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.