Idee für ein Knobelspiel - wer codet´s?

Es gibt 413 Antworten in diesem Thema, welches 65.267 mal aufgerufen wurde. Der letzte Beitrag (14. Januar 2009 um 15:10) ist von ogd.

  • Erst mal großes Lob an alle Beteiligten. Echt klasse, dass es jetzt doch noch wird! Bin schon sehr gespannt auf die eingebauten Grafiken von Roland.

    Noch ein kleiner Bugreport / Anregungen:
    - Fallende Joker-Tiere erzeugen einen Grafikfehler
    - Ich hatte einmal den Fall, dass die Meldung "NO MORE MOVES" kam, ein neues Spielfeld eingeblendet und sofort wieder entfernt wurde, da Level geschafft. Also die Abfrage für das Levelende am besten vor die Noch-mögliche-Züge-Abfrage stellen!
    - Bei "NO MORE MOVES" sollte man vielleicht einen kleinen Zeitbonus kriegen, um sich auf dem neuen Spielfeld kurz orientieren zu können
    - Und nochmal: Könnte man das "NO MORE MOVES" nicht überblenden, statt in einen neuen Screen zu schreiben?
    - Ab Level 8 (Koala-Party) wird es wirklich etwas zu schnell! Oder gibt's es kein neuntes Level? ;)

    Frohes Entwickeln weiterhin!

    Volker

  • Zitat

    Original von PohliOK, hatte nämlich schon vergeblich versucht, deine Tiere mit denen von dem Flash-Spiel gleichzusetzen.
    Das einzige Bild, das ich nicht so gut finde, ist der Elefant zwischen Nilpferd und Rindvieh, soll doch einer sein, oder? Ich denke, die falsche Proportion von Kopf und Ohren verwirrt ein wenig.
    Ansonsten erste Sahne. Die ursprünglichen Bilder haben meiner Meinung nach das Problem, dass die Tiere zu sehr an ein Quadrat oder Rechteck angepasst wurden, wahrscheinlich in Anlehnung an das Flash-Spiel.

    - ich kenne das flash-spiel garnicht... drum hab ich auch keine vergleichsmöglichkeiten

    -zum elefant... hmmm, wüsste jetzt nicht, welche proportion da falsch sein sollte?
    grössere ohren? kleinere ohren? afrikanischer oder indischer elefant? =)
    und dann muss noch darauf geachtet werden, dass alles in den 3x3 chars ist.
    werde aber gleich nochmal meinen elefant im garten genauer anschauen =)

    im ernst.... kein problem wenn jemand was nicht gefält oder vorschläge hat. werde ich dann versuchen einzubinden...(wenn ich weiss, worauf er hinaus will....)

  • Zitat

    Original von Roland
    - ich kenne das flash-spiel garnicht... drum hab ich auch keine vergleichsmöglichkeiten


    Im OP dieses Threads findest du den Link. ;)

    Zitat

    Original von Roland
    -zum elefant... hmmm, wüsste jetzt nicht, welche proportion da falsch sein sollte?


    Ich meine, die Ohren sind in Bezug zum Kopf doch etwas zu groß. Vielleicht liegt es auch nur an der Kopfform?
    Jedenfalls ist es das einzige Bild, bei dem ich nicht sofort erkannt habe, was das sein soll. Ich musste auch erstmal drauf kommen, dass das überhaupt Ohren sein sollen. :D
    Was meinen die anderen?

  • Zitat

    Original von hannenzdas einizge was mich nach wie vor stört, ist dass wenn eine ganze vertikale reihe "runterfällt", also acht tiere, ich das Cursor-Sprite benutzen muss und somit ein kleiner aber unschöner störeffekt auftritt. dieser ist zwar so gut es geht minimiert, aber es wäre einfach eine runde sache, wenn ich dieses problem noch lösen könnte. hat noch irgendwer von euch eine idee, wie man einen cursor OHNE Sprite (und ohne Flash im ColorRAM, weil: sieht einfach besch*** aus) realisieren lässt...?!

    multiplexer ist für dich keine alternative?
    müsste ja auch kein toller sein... braucht ja nur 1 sprite verdoppeln.
    dass "oberste" und "unterste" in der 8er-Reihe....


    oder die runterfallbewegung eben ohne sprites, und nur mit chars...ist dann halt
    etwas schneller, da die tiere mit 8 pixel (immer ein char) geschwindigkeit fallen

    oder: mir ist aufgefallen, dass wenn man ein jokertier nimmt, und in einer senkrechten zeile mehrere lücken sind (z.b. ganz unten und in der mitte), dass
    dann erst alles (inklusive lücke) nach unten fällt, und dann im 2. schritt alles über
    der lücke in der mitte ein zweites mal nach unten fällt.
    so könnte man das eigentlich auch bei einer kompletten 8er zeile machen.
    erst fallen 7 tiere nach unten. und dann im 2. schritt das letzte "fehlende" tier nocheinmal...

  • Nur mal eben eine Frage war das auch der richtige ZooMania Link den du gepostet hast Hannenz?
    Habe da kein Buch gesehen.... und sieht mir auch nicht gerade danach aus was du verlinken wolltest oder doch?

    Ach ja wirklich super bisher :)

    Finde den bisherigen Startscreen ganz ok, aber wenn es besser geht immer her damit :)

    Wie Roland mal sagte wäre es am Ende nett wenn man die Zeit nicht schafft angezeigt zu bekommen wo noch mögliche Züge sind/waren. Ich trau dem C64 nicht ;)

    Rolands Elefant gefällt mir gut kann mir nicht vorstellen den noch besser(?) hinzubekommen...

    Roland:
    Hast du deinen Elefanten gewonnen? ;)

  • Zitat

    Original von matthes
    Nur mal eben eine Frage war das auch der richtige ZooMania Link den du gepostet hast Hannenz?
    Habe da kein Buch gesehen.... und sieht mir auch nicht gerade danach aus was du verlinken wolltest oder doch?

    ??? haeh? was fürn'n ding?? buch???
    EDIT: ach jetzt schnall ich's.. haha. zoomania.com goibts ja wirklich ;) war nur'n spass.

    Zitat


    Ach ja wirklich super bisher :)

    danke :)

    Zitat


    Finde den bisherigen Startscreen ganz ok, aber wenn es besser geht immer her damit :)


    mir schwebt eher noch was "tierisches" vor... ;)

    Zitat


    Wie Roland mal sagte wäre es am Ende nett wenn man die Zeit nicht schafft angezeigt zu bekommen wo noch mögliche Züge sind/waren. Ich trau dem C64 nicht ;)


    waaaas...????! meinem pc trau ich nicht aber dem guten c64?? immer! aber spass beiseite: ja, das ist schon machbar. mal sehen.

    Zitat


    Rolands Elefant gefällt mir gut kann mir nicht vorstellen den noch besser(?) hinzubekommen...


    glaub ich auch nicht

  • man, roland, du bescheisst oder...?! habs nochmal bissel angehoben vom schwierigkeitsgrad und @alle anederen:

    jetzt mal moit rolands tierchen, einigen fixes nud änderungen, schauts euch einfach mal an.
    ich denke, soweit sollte jetzt gameplay mässig alles ok sein, über den schwierigkeitsgrad sollten wir uns noch unterhalten. im moment scheint es zu einfach, oder roland...?!
    ach ja: wichtiger fix: hab jetzt nen multiplexer drin beim runterfallen der tiere, also jetzt absolut sauberes fallen auch über alle 8 reihen...
    Tastatursteuerung hab ich komplett raus, weil aufwand lohnt nicht und irgendwie war da der bugteufel drin...

    jetzt noch: highscore saver, dann: fertig :)

    Scorp.ius: hey, nicht böse sein, aber ich hab mich echt in rolands tierchen verliebt, sorry. aber ich werde auf jeden fall eine möglichkeit anbieten eigene grafikdaten (tiere) nachzuladen oder ähnliches. zumal rolands tiere zwar wunderschön sind aber auch etwas gewöhnungsbedürftig im spiel...

    get it: Bitte melde dich an, um diesen Link zu sehen.

  • Zitat

    @sauhund: wat'n crack attack...?! muss ich mir mal ansehen.

    "tetris attack" ist die nintendo variante dieser spielidee, "crack attack" ist eine freie implementierung derselben -> Bitte melde dich an, um diesen Link zu sehen. oder Bitte melde dich an, um diesen Link zu sehen. (oder bei obi :))

  • Zitat

    Original von hannenz
    man, roland, du beSche***t oder...?! habs nochmal bissel angehoben vom schwierigkeitsgrad


    ehm...nein - ich bin einfach nur gut =)

    naja...okok... ich verrate mein Geheimnis.

    ich spiele im Vice! und wenn die Zeit wirklich mal eng wird, drücke ich einfach die ALT Taste... dann hält der Vice an :D ...dann in Ruhe suchen... und mit ALT wieder weiter.
    (Allerdings muss ich so mit der Tastatur spielen...)


    Habs aber auch schon ohne B-e-s-c-h-i-s-s über Level 12 geschaft...
    ...muss man halt auch manchmal ein bisschen Glück haben.


    BTW... ECHT SUPER DAS MIT DEM MULTIPLEXER!!!!

  • Roland: wusst ichs doch - der ALT-Trick.... nanana...!!!
    ja level 12 ist realistisch, aber viel weiter gehts wohl kaum... ich habs jetzt mal für 16 level ausgelegt, wobei die zeit in den letzten vier levels gleich schnell vergeht.

    das mit dem multiplexer war eigentlich wirklich ganz easy.. ich hatte wohl nur ein bisschen reespekt davor, weil ich zwar schon mit multiplexern rumexperimentiert hab aber noch nie "in der praxis" angewandt habe... ging aber ganz billig im C-Code..., einfach $d012 auf eine position nach dem obersten dargestellten sprite abfragen, dann "plexen" und bei 255 wieder zurück... naja, das wird jetzt zu technisch.

    folgendes noch: ich hatte in letzter zeit noch zwei bugs, die ich aber nicht bestätigen bzw. reproduzieren kann: 1. es kam schon vor, dass die check_moves routine versagt hat; also das kein "no more moves" kam, obwohl keine züge mehr möglich waren... da kann ich mich aber täuschen. ich hab die routine jetzt mal empirisch einfach immer wieder getestet und mir anzeigen lassen wo er noch moves findet - also bei ca. 150 durchläufen war immer alles korrekt und ich kann auch von der logik her im code keinen fehler entdecken. ich hab nochmal was im code geändert und hoffe, dass es das war, aber ich bin mir einfach nicht sicher. also bitte augen auf, ob sowas nochmal vorkommt, und dann am besten gleich nen vice-snapshot machen!

    das andere war, dass es einmal vorkam dass ein "timeout" kam, als der zeitzähler dreiviertel "voll" war - ich nehme an das es was mit dem unterlauf des 16-bit wertes von $100 auf $ff zu tun hat, aber auch das lässt sich weder im code erklären noch reproduzieren. ist aber extrem ärgerlich wenns passiert.

    ansonsten mal viel spass damit! ich weiss, das hab ich schonmal gesagt aber ich denke, das war jetzt der letzte snapshot vor dem release.

  • stimmt!!!! eben gabs bei mir auch ein timeout obwohl 3/4 noch da waren!!!!

    hab ein snapshot...aber ob der "jeztz" noch was bringt??? ist ja schon der highscore screen da (zum eingeben...und unten bugged die zeitanzeige...)


    wenn du mir ein tip geben kannst, wo ich im code nach was suchen muss, um die "end of time" abfrage zu finden, könnte ich mal reinschauen und nachsehen, ob ich das problem finde.... (ohne "hinweiss" müsste ich schon so lange suchen :) )

  • wenn das c-code ist würde ich allerdings nicht ernsthaft im erzeugten asm code wühlen....ausser du stehst auf schmerzen :=)

  • Zitat

    Scorp.ius: hey, nicht böse sein, aber ich hab mich echt in rolands tierchen verliebt, sorry.

    ooooch... najaaaaa...

  • Zitat

    Original von sauhund
    wenn das c-code ist würde ich allerdings nicht ernsthaft im erzeugten asm code wühlen....ausser du stehst auf schmerzen :=)

    eben.

    das herunterzählen geschieht natürlich im interrupt, der in asm gecodet ist, aber ich weiss ja nicht mal, wo der linker die routine hinlegt, kanns dir also nicht sagen.
    ich könnte neu kompilieren und die adresse der interrupt routine ausgeben lassen, und dir das neue kompilat zukommen lassen, wenn du ernsthaft darauf stehst meinen spaghetti code zu entziffern ;), ich kann dir aber auch einfach den source code mal schicken.

    die abfrage auf timer = null ist ein simples

    Code
    if (time1 == 0){
    ...
    }

    im C-Code.

    im irq steht:

    Code
    ...
    lda _time1
    bne *+5
    dec _time1 + 1
    dec _time1
    ...

    nix spektakuläres also. auf "time1" wird auch sonst nie (verändernd) zugegriffen, klar zur darstellung des balkens wird der wert nochmal gelesen...
    ich seh's mir jetzt aber auch nochmal in ruhe alles durch. irgendwo muss es ja sein, das kleine insekt...

  • Zitat

    Original von hannenz

    eben.

    das herunterzählen geschieht natürlich im interrupt, der in asm gecodet ist, aber ich weiss ja nicht mal, wo der linker die routine hinlegt, kanns dir also nicht sagen.
    ich könnte neu kompilieren und die adresse der interrupt routine ausgeben lassen, und dir das neue kompilat zukommen lassen, wenn du ernsthaft darauf stehst meinen spaghetti code zu entziffern ;), ich kann dir aber auch einfach den source code mal schicken.

    hehehe... naja... ich traue dem c -> asm ding nicht! :)
    alles neumodischer hokuspokus.... böse schwarze magie!
    da schaue ich lieber in den asm code... das ist für mich nicht so schlimm.
    konnte dein rastergeflacker im intro auch leicht fixen :]

    naja... ich werde es schon finden... (so gross ist der c64 speicher ja nicht =) )

  • das c-asm ding ist aber eigentlich schon ganz cool, wenn man weiss was man tut, und weiss, was der compiler so in etwa in ml umsetzt. naja. viel spass beim suchen, ich habs jetzt mal so geflickt: bei time1 = 0 wird im interrupt ein flag gesetzt, das im hauptprogramm ausgelesen wird. so kann ich sicher sein, dass nicht während des tests auf (time1 == 0) evtl. zwei interrupts stattfinden und so ein falsches timeout angezeigt wird. ich hoffe das wars, was anderes kann ich mir nicht erklären...

  • also.... war eigentlich ganz einfach die routine im code zu finden, wenn man weiss wie und wonach man suchen muss :D

    dabei hat mir dein codeschnipsel die nötige information gegeben, das im code in 2 sekunden zu finden 8o

    Code
    ´
    lda _time1
    bne *+5
    dec _time1 + 1
    dec _time1


    ok, nun aber zum problem.

    kann es sein, dass die abfrage, ob der counter = 0 im irq ist, und die aufaddierung der zeit, die man fürs löschen der tiere bekommt in hauptprogramm?
    das wäre nämlich ein problem!!!!
    du addierst ZUERST das low-byte und dann das highbyte.
    wenn nun der irq genau zwischen den beiden addierfunktion zuschlägt, und das lowbyte auf 00 gesetzt wurde, das highbyte aber noch nicht auf 01 gesetzt ist, schlägt die timeout routine natürlich zu. :baby:

    ...ist natürlich nur mal eine erste vermutung, die zutreffen kann, wenn die aufteilung der routine auf irq / hauptprogramm wie oben beschrieben ist.


    edit: noch eine anmerkung: setzt doch den cursor einen pixel nach links!!! dann ist er immer zentriert über den tieren.

  • ääähm. tja das kann evtl. schon sein was du sagst.
    die aufaddierung erfolgt im hauptprogramm.
    der test auf null auch.
    nur das dekrementiern findet im irq statt.
    während des aufaddierens ist der teil des irqs der dekrementiert aber gesperrt.
    lass mal überlegen. also nee - eigentlich dürfte das nicht das problem sein...

    einen pixel nach links...?! ok.