Wizard (Worktitel)

Kommentare anzeigen Worklog abonnieren
Gehe zu Seite 1, 2  Weiter

Worklogs Wizard (Worktitel)

Passt

Mittwoch, 30. September 2009 von orpheus_2003
Siehe da.
Die Imagescollide Funktion hat tatsächlich einigen Kopfzerbrechen bereitet.
d.h. Es gab Leute die einen MAV hatten.

So. Dank BigBug hab ich nun ja keine Imagescollide mehr und daher auch kein MAV.

Angespornt durch diese Tatsache ging ich gleich weiter.
Denn was passiert wenn man was einbaut?
Ja genau. Ein neuer Fehler.
Eigentlich ein alter. Denn der Player setzte wieder unterhalb der Kante auf.
Hm. Also doch ein Denkfehler.

Mal die Gravity abgestellt. Und siehe da. Passt.

Der Fehler war der, dass die Pixelabfrage für den Untergrund nur 2 Pixel hoch ist.
Die Beschleunigung nach unten aber z.B. 6 Pixel.
Ergo. Player steht 4 Pixel zu weit unten.

Schlussfolgerung: Einfach die Beschleunigung in die Abfrage des Untergrunds mit einbauen.
Und: Mein Player läuft nun einwandfrei auf der Kante mit Beschleunigung usw.

Das beste daran. Da die Kollision mit den Umgebungstiles auf Boxcollides funktioniert, und das
ganze auch nicht gescheit funktioniert hat bin ich auch da drüber.
Und da nun der Player auf der Kante läuft, funktioniert nun auch die Abfrage der Tiles wunderbar..
So einfach gehts manchmal. Hat mich nur 3 Monate gekostet......

Weiters:
- Options Menü - Sound wird gespielt und kann live angepasst werden
- Parallax Scrolling nun automatisch im Spiel
- Parallax Scrolling kann aufgrund Laggs auf alten Computern im Options Menü deaktiviert werden
- Ein paar Anpassungen bei den Credits, Highscore, Options Menüs
- Neue 3D Graphik fürs 5 Level. Eine animierte Plattform
- und ein paar unwesentliche Sachen.

Have Fun

ImagesCollide

Dienstag, 29. September 2009 von orpheus_2003
So.

Nachdem ja ImagesCollide nicht richtig funktioniert und buggy ist, habe ich mich
dafür entschieden das zu ändern.
Mit Boxen geht das nicht, da es zu ungenau ist.
Ich arbeite ja mit einem Offset für das Level und da ist eine Boxencollision einfach
zu ungenau.

Tja was tun.
Nach langem recherchieren habe ich hier von BIG BUG eine Funktion gefunden.
Code: [AUSKLAPPEN]

;replaces ImagesCollide because of MAV bug
Function ImgCollide(image1,xpos1, ypos1, frame1, image2, xpos2, ypos2, frame2=0, mask=0)

   Local startx, starty, endx, endy, ix, iy

   Local width1  = ImageWidth(image1)
   Local height1 = ImageHeight(image1)
   Local width2  = ImageWidth(image2)
   Local height2 = ImageHeight(image2)

   xpos1   = xpos1 - ImageXHandle(image1)
   ypos1   = ypos1 - ImageYHandle(image1)
   xpos2   = xpos2 - ImageXHandle(image2)
   ypos2   = ypos2 - ImageYHandle(image2)

   startx = xpos2 - xpos1
   starty = ypos2 - ypos1
   start2x = startx
   start2y = starty

   endx   = startx + width2
   endy   = starty + height2

   If startx < 0       Then startx = 0
   If starty < 0       Then starty = 0
   If endx   > width1  Then endx   = width1
   If endy   > height1 Then endy   = height1

   endx = endx - 1
   endy = endy - 1

   If startx > endx Or starty > endy Then Return 0

   LockBuffer ImageBuffer(image1, frame1)
   LockBuffer ImageBuffer(image2, frame2)
   For ix = startx To endx
      For iy = starty To endy

         If mask <> (ReadPixelFast(ix, iy, ImageBuffer(image1, frame1)) And $00FFFFFF) Then
         If mask <> (ReadPixelFast(ix-start2x, iy-start2y, ImageBuffer(image2, frame2)) And $00FFFFFF) Then
            UnlockBuffer ImageBuffer(image1, frame1)
               UnlockBuffer ImageBuffer(image2, frame2)
               Return 1
         EndIf
         EndIf
      Next
   Next
   UnlockBuffer ImageBuffer(image1, frame1)
   UnlockBuffer ImageBuffer(image2, frame2)
End Function


TaDa...
Mit dieser Funktion funktioniert es perfekt.
Die Geschwindigkeit ist auch akzeptabel, da der Breich zum prüfen ja nicht gross ist.

Vielen Dank nochmals an Big Bug für den Code...

So long. Smile

Neue Verbeserungen

Sonntag, 27. September 2009 von orpheus_2003
- Sprung auf Leiter

- Sprung an die Wand. Sound laggt nicht mehr

- Laufsound nicht mehr im Sprung

- Eiserne Blöcke im 1 Level mit Hinweisen

- 2 Leve Anfang leichter

- Level können mit F1-F2 gewählt werden

- Hinweisschilder bei allen Tafeln

Mehr FPS

Samstag, 19. September 2009 von orpheus_2003
Wers nicht mitgekriegt hat.
Im Forum gibt es einen Thread:
https://www.blitzforum.de/foru...hp?t=32706

Nach Übersicht des Codes hab ich folgendes gemacht.

- Die String Abfragen für Kollision, Levelmap, Gegner usw auf Interger gewechselt.
Hat gedauert, da ich viel umschreiben musste. Aber nun gehts.
- GrabImage. Wird auf normale Collision umgeschrieben. Pixelgenaue Kollision
ist ein Unding. 1. Wegen der Fehlerrate bei verschiedenen Graphikkarten und 2. wegen der
Performance. Die geht in den Keller. Momentan läufts noch mit. Komm derzeit
auf 130 FPS maximum. Das fetzt...
- Levelengine upgedatet mit ein paar Sachen
- Level 2 Graphiken werden gerade gemacht. Wird ein Remake von Mario:

Preshow:
<a target='_blank' href='http://img121.imageshack.us/i/wizardv2.jpg/'><img src='http://img121.imageshack.us/img121/742/wizardv2.th.jpg' border='0'/></a>

1024 * 768

Donnerstag, 16. Juli 2009 von orpheus_2003
So siehts aus.

Mir war das Bild zu klein. Damit die Proportionen stimmen habe ich nun
auf 1024*768 Pixel geändert.
Wow.
Arbeit...
- Graphik Engine anpassen.
- Kollisionen anpassen
- Hintergrundbilder anpassen

Da ich grad dran war hab ich mir gedacht. Machst noch ein Parallax Scrolling mit 3 Ebenen.
Sieht gut aus..
Und weil es grad so lustig war mach ich mal einen grösseren Debbug.
Was seh ich. MAV......???
Tja. Variablen einblenden und schauen was los ist. Und ich sehe. Hoppla.
Die Kollisionsabfrage vom Fisch, Floss und Player haben die gleichen Vars...
What the.......
Mal das ganze Sammelsurium angepasst und neu belegt.
Und. Was. Ja genau. Die Kollisionsabfrage haut jetzt hin. Läuft super.
Auch das Floss fliegt nicht mehr durchs Level.

Bin ich happy.

Hab noch ein bischen gefeilt am Leveldesign, bisschen Graphik. Und vor allem
die genannte komische Sprung Routine angepasst.
Jetzt läuft richtig run. Und die Performance konnte ich auch steigern indem ich die
Tile Engine verbessert habe. Jetzt gibt es beim scrollen keine komischen Fragmente mehr.

Alles in allem ein großer Fortschritt...

In 2 Wochen ist Urlaub dann hau ich kräftig rein....

Gruß Orpheus...

Screenshot mit 1024*768
user posted image

Wizard lebt

Sonntag, 12. Juli 2009 von orpheus_2003
So.

Wieder mal News.

Es geht voran. Vor allem mal die Features einbauen die im
Forum bemängelt wurden.
Dazu zählen Kollision, Sprung usw.
Auch hab ich mich daran gesetzt und mal eine Leiter programmiert.
So siehts dann aus:
Noch nicht perfekt. Aber es funzt. Und man kann rauf und runter.... Geil.

user posted imageMyspace, Digg, Facebook, and others!

Weitere Details folgen bald und auch eine neue Demo.

Gruß Orpheus

Es geht weiter..

Dienstag, 30. Juni 2009 von orpheus_2003
So.

Nun mal was neues.
Ich hab den Fehler, der mich schon seit der Gründung von Wizzard begleitet, gefunden.
Es war ein Variablen Fehler, der auftrat wenn sich die Figur zu weit oben außerhalb der Begrenzung befand.
Dann wurden die Variablen falsch geladen und z.B. das Floss springt aus der Welt.
Ich denke der Bug ist nun weg. Fleißig debuggt...

Nun kann ich endlich mal wieder mit Leveldesign, Graphik und Sprungroutinen weitermachen...

Freut euch. Es geht rasant weiter.....

So long....

Neue Version

Samstag, 30. Mai 2009 von orpheus_2003
Eine neue Version ist im Netz.

6.7 Mb
http://gazerstar.lexigame.de/data/Wizard.zip

user posted image
user posted image

Was tut sich

Dienstag, 21. April 2009 von orpheus_2003
So.

War, trotz Internetabstinenz, wieder mal tätig.
So langsam wird mir die Sache mit den Kollisionen unheimlich.
Immer wenn ich denke. So gehts. Kommt wieder was.

Die Kollision mit dem Player sind soweit ganz gut. Auch die Tilemap Kollision geht nun einwandfrei.
Dadurch dass ich die speziellen Tiles nun im backlayer habe kann mann damit nicht mehr kollidieren.
Und das macht die ganze Sache nun viel einfach. Das mit dem Offset habe ich nun in den Griff bekommen.

Und was passiert wieder mal. Ja genau. Ein neuer Fehler.

Wenn die Karte scroll wird die Map mit dem Offset bewegt. Eigentlich einfach.
Nur. Immer wenn die Map scrollt sollten sich ja auch die Gegner mitbewegen.
Diese laufen in einer eigenen Routine und sind als Dims abgelegt.
So.
Ich hab das ganze so gelöst.
Wenn der Player sich beweget und ein offset für die Map kommt, werden auch die Gegner
um diesen Offset bewegt. Klar.
Tja. Das ganze hatte einen Haken. Die Gegner blieben auf einmal ein paar Pixel zu weit unten oder oben gezeichnet. Und auf einmal schwimmen die Fische durchs Level oder das Floss kommt einem entgegen.
Weil diese Kollision auf der Tilemap dann nicht mehr passt.
Lustig. Aber ärgerlich.
Ich habe ganze 2 Wochen an dem Ding rumgefeilt. Schlussendlich gab es keine Lösung.
Auch der Test mit einer anderen Levelengine brachte keine Lösung.
Tja. Dann kann nur noch eine Subroutine helfen.
Die macht was:
Es wird überprüft ob die Gegenerposition mit der Position übereinstimmt, die sie hätte wenn sie ein Tile wäre. Tja. Und wenns eine Differenz gibt, wird der Gegner halt pixelweise auf die richtige Höhe gescrollt.

Und das Thema ist hoffentlich erledigt. War ein hartes Stück Arbeit.

Was hat sich noch getan:

- Leveleditor
* man kann nun unendlich viele Levels machen.
* die Levels können nun in der Breite und Höhe begrenzt werden
* Man kann nun ein Floss einbauen
* Es gibt mehrere Tilesets zum wählen. Diese werden auch mit dem Level gespeichert
* Man kann die Playerposition im Level setzen

- Game
* Graphic
* ein neuer Gegner. Igel. Nice...
* Bonuslevel
* Eiswelt (ist gerade am Anfang.)
* Eisspitzen fürs Eislevel

Und vieles mehr. Bald. Wenn ich wieder Internet habe.
(mein neuer Provider hat vergessen mich anzumelden. Nach Telefonanruf der Satz. Tja. Sie sind nicht im System. 2 Wochen warten umsonst. ****)

Gruß orpheus

Kollision die 45. und Player Sprite

Dienstag, 14. April 2009 von orpheus_2003
So.

Wieder mal einen Eintrag.
Mein I-Net wurde gekappt. Habe bal einen neuen Anbieter. Das dauert aber erst mal wieder Wochen.
Dafür habe ich Zeit zum proggen.

Erst einmal habe ich die leidige Kollision in Angriff genommen.
Gelöst habe ich das ganze so.
Erstens hab ich die Sache mit dem Offset so hingebracht dass es wirklich immer die Tiles auf der Map anzeigt.
Dann, als zweites war noch ein Problem mit den Extras und der Pixel-Kollision des Players.
Ich hab die Extras nun einfach auf dem Front-Layer draufgepackt und siehe da. Keine Kollisionsfehler mehr
mit dem Player...
Wunderbar.
Nun gehts an das Fein tuning der Level.

2.Problem. Ich hab nun ein Floss für das Wasser eingebaut.
Und auch da war wieder ein Problem. Mit dem Offset und dem Scrollen passierte es, dass das
Floss nicht umdreht an der Kante, sonder weiter durchs Level läuft.
Mit der neuen Kollisionsabfrage ist dieses Problem nun auch dahin.

3. worschtbrot hat mir nun das neue Playersprite geschickt.
Hat gute Arbeit geleistet. Die Graphik vom Spiel ist gut getroffen. Und ich werde es heute integrieren.
So sieht er nun aus der Player.
user posted image

Danke nochmals worschtbrot!

Was hat sich noch getan:
Tilemap wurde verbessert.
Graphiken überarbeitet.
Es gibt ein Floss zum drauf springen.
Unter Wasser wird nun Luft abgezogen und dann Leben.
Es gibt 5 Levels.
Leveleditor aufgeräumt.

Und vieles mehr.

Gruß Orpheus

Gehe zu Seite 1, 2  Weiter