![]() |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
Zitat:
Zitat:
Zitat:
Zitat:
Sehen wir die jetzige Version als "Test" an :lol: . edit: Noch ein Bug: Level Laden geht nicht mehr korrekt. |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
Ich hab mal neues Sounds gemacht.
Diese sind allerdings nur über das Update-Programm erhältlich. Ich wollte nämlich das Timebased-Movement einbauen. Näheres dazu ![]() Das Problem ist nun die Kollision. Im ![]() Bei meinem Spiel geht das nicht, da man sich z.B 5 Pixel nach rechts bewegt. Ist aber nach 2 Pixel eine Wand, sagt die Funktion: "Nö". Man würde also 2 Pixel vor der Wand stehen bleiben und könnte nicht ganz ran. Im Moment gehe ich Pixel für Pixel durch und checke immer. Da ich aber aufgrund des Timebased Movement mit Gleitkommazahlen rechnen muss gehe ich in 0,001er Schritten vor. Entweder ist das zu ungenau, oder es ist vielleicht doch was anderes... :gruebel: Ich muss mal irgentwo ein 2D-OpenSource-Spiel suchen, wo ich das lernen könnte. Falls das auch nix hilft, frage ich mal im DGL-Forum nach (Das Problem ist, im Moment kenne ich das Problem noch nicht richtig). Da kann doch nicht so schwer sein. @Avicenna: Was sagst du zu den Sounds? Vielleicht noch nicht 100%, aber doch schon besser, oder? |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
Liste der Anhänge anzeigen (Anzahl: 1)
Um Timebased-Moving zu erreichen solltest du auf jeden Fall alle Koordinaten in Floats umwandeln - dann sollte das mit der Kollision auch kein Problem sein.
Ich habe mal ein kleines Jump & Run Spiel von mir angehängt, in dem ich Timebased Moving verwende - vielleicht hilft es dir etwas. |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
@igel457: Super! Danke! :thumb:
Das werde ich mir mal ansehen. Die Zahlen hab ich schon in Floats umgewandelt. Aber es mangelt vielleicht auch noch an der Logik. (Vieleicht mache ich das mal wieder schwerer als es ist. :mrgreen: ) |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
Also alle Effekt-Sounds sind auf jeden Fall besser (das Klingeln der Münzen ist super!).
Die Hintergrundmusik finde ich aber etwas zu... ich weiß nicht wie ich es ausdrücken soll. Sie passt zwar etwas besser, klingt aber so schrecklich. Solch eine Musik kommt in Krimis vor, ind enen gleich schreckliche Dinge passieren. Wenn ich mich zwischen den beiden Hintergrounds entscheidne müsste, würde ich auf jeden Fall den ersten vorziehen. Gruß, Avicenna P.S.: In Level 3 am Anfang ist es furchtbar langweilig zu warten, bis der Gegner aus dieser Bucht herauskommt. [Evtl. etwas weiter vorne hinsetzen]. |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
Zitat:
a) immer warten bis der Sound fertig ist -> wirkt nicht. Wenn man z.B. 5 Münzen schnell einsammelt spielt es nur 1x den Sound b) Sound restarten -> besser, aber es klingt komisch. am besten wäre für jede Münze einen Channel belegen und dann so machen, das sich das Münzgeklappere überlappt. (Ist etwas schwer zu beschreiben, aber ich denke ihr wisst was ich meine) Zitat:
Zur Musik: Ich guck mal. @igel457: Das lässt sich zwar nicht kompilieren, aber ich kann das recht gut verstehen. Hat mir schon sehr geholfen! :thumb: edit: Ich hab mir mal Andorra heruntergeladen, jetzt geht's. |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
Liste der Anhänge anzeigen (Anzahl: 1)
@igel457:
Ich bin jetzt mal bei DoMove in Sprites. Am Anfang (Zeile 210 bis 231) berechnet er die Geschwindigkeit in die er nach unten fällt. Dann verlangsamt er die X-Geschwindigkeit der Spielfigur. Dann guckt er, ob er ein anderes Bild einsetzen muss. Z 261: Er setzt die Bewegung in Richtung der X-Achse, welche er oben verlangsamt hatte. Dann setzt er die Werte auf die Spielfigur. (Hier ist der Punkt, wo das passieren kann, was im Anhang dargestellt ist, oder?) Dann guckt er ob er irgendwo kollidiert. Ab Z 269 verstehe ich das nicht mehr. Er hat nun also Collision aufgerufen und hat dort FColSides gesetzt. Was bewirkt
Delphi-Quellcode:
? movvect wurde doch in der Prozedur Collision gar nicht geändert.
X := X - movvect.x;
|
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
Delphi-Quellcode:
Das Prinzip an sich sollte recht gut sein, in meinem Progrämmelchen ist es allerdings nicht so perfekt implementiert - die Figur hängt zum Beispiel teilweise an den Steinen am Rand fest. Es soll ja aber auch mehr so als "Anregung" dienen und ich hoffe, du kannst damit etwas anfangen ;-).
//Verschiebt die Figur temporär an die neu berechnete Position
X := X + movvect.x; Y := Y + movvect.y; //Prüft, ob es an dieser Position eine Kollision gibt FColSides := []; Collision; //Wenn ja, dann wird das Sprite wieder entsprechend zurückgesetzt - die Bewegung hat die Figur schließlich in eine Kollision hereinlaufen lassen if (csLeft in FColSides) or (csRight in FColSides) then begin X := X - movvect.x; FV.x := 0; end; if ((csBottom in FColSides) and not (FStartJump > 0)) or (csTop in FColSides) then begin Y := Y - movvect.y; end; //Wenn es keine Kollision gegeben hat, wird die Figur an der berechneten Position belassen - schließlich ist sie nicht Kollidiert. |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
Zitat:
Nochmal Danke, du hast mir sehr geholfen! |
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
So jetzt gibt es die Version 1.3.0.0.
[+] Timebased-Moving [-] bewegbare Blöcke Tja, viel zu sagen gibt es nicht. Ich habe quasi die gesamte Klasse neu geschrieben, welche für die Bewegbaren Objekte zuständig war. Dann mussten natürlich im Rest des Codes auch noch Anpassungen vorgenommen werden. Eigentlich war das Programm schon eher fertig, ich hatte allerdings vergessen to in downto zu ändern. Und so ging das nicht so wie ich wollte. Das Handling fühlt sich jetzt komplett anders an. Die Schwierigkeit hat sich auf jeden Fall geändert. Ich schätze die Figur springt etwas höher (dafür langsamer) und man bekommt nicht so viel beim Herunterfallen abgezogen. Eigentlich wollte ich die Spielfigur (also jetzt die, die man als User steuert) 32x32 Pixel groß machen. Naja, ich hätte 4 Grafiken neumachen müssen. Und ich glaube ihr wölltet die nicht sehen. Sie sahen noch erbärmlicher aus, als die jetzigen. Vielleicht später einmal. Die Sounds hab ich noch nicht geändert. Ein Bug ist mir im Moment bekannt: Sobald man ESC drückt und ne Weile wartet und dann auf Nein klickt, bekommt man Gesundheit abgezogen. Der Zeitfaktor wird durch das nicht neu zeichnen des Spiels sehr groß. Dann wird der nach unten Wert mit einem großen Wert multipliziert und dann erkennt das Spiel, das man den Boden berührt. Naja, es denkt eben man würde mit einer großen Geschwindigkeit herunterfallen. Achja, die bewegbaren Blöcke habe ich erstmal rausgelassen. Da muss ich mir noch ein neues System überlegen. Wen es interesiert, wie ich die Kollision mache, habe ich hier ein Bild: ![]() Es wird auch in der nächsten Zeit den aktuellen Sourcecode online stellen. //edit: Das Intro ist auch nicht neugemacht. Also nicht wundern, das die Figur auf einmal in der Luft verschwindet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz