Programmierung Pacman - Probleme mit Spielfeld- und Futterpositions-Erstellung

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Mangafreak1995.

    Programmierung Pacman - Probleme mit Spielfeld- und Futterpositions-Erstellung

    Hallo Leute,

    erstmal freu ich mich nun ein Mitglied bei euch zu sein! :)

    Ich mache noch nicht ganz so lange VB.Net, jedoch habe ich mich mal an das Projekt "Pacman" gemacht! :)
    Also Pacman zu steuern usw. klappt alles bereits schon.

    Das er Futter frisst auch, jedoch ist derzeit mein Futter (habe nur eins) ein Label. Das ist natürlich nicht die feine Art. Jedoch war es halt zum rum experimentieren. :)


    Das mit dem Futter ist auch so, dass ich halt den Labelnamen hard codiert im Code habe, das darf eigentlich auch nicht sein.
    Jetz habe ich mir überlegt, ob ich nicht einfach das Feld via 2D-Bit-Array machen sollte?

    Das Futter wäre dann im Prinzip überall wo die Bits auf 1 gesetzt sind. So bald mein Pacman drüber läuft bzw. diese Bits isst, werden diese auf 0 gesetzt und das Futter verschwindet.


    Ich habe grade echt überhaupt keine Ahnung wie ich da ein Spielfeld machen könnte?
    Oder ob ich dabei auch Direct X nehmen muss? Oder oder oder.. .:)

    Würde mich sehr über hilfe freuen. (Sogar die Richtung würde eventuell reichen. :) )

    Gruß Ozzi
    Ein Byte Array ist eher nicht so gut da es dein Programm sehr ausbremsen würde, weil du alle Bytes durchgehen müsstest. Am besten du schreibst dir eine Klasse meinetwegen "Futter" oderso. In dieser Klasse steht halt die Position drin und ob es "lebt". Von dieser Klasse machst du ein Array lädst alles beim Start und beim laufen gehst du das Array immerwieder durch und prüfst ob der Spieler über dem Futter drüber ist und wenn ja setzt du das Leben halt auf 0. Wenn das Leben auf Null ist darfst du es nat. auch nichtmehr zeichnen ;).

    DirectX brauchst du dazu nicht zwingend, GDI sollte auch reichen ;).
    @progglord: Jetzt erkläre mir mal bitte wieso es performanter wäre wenn man ein Array einer Futter-Klasse machen würde anstatt ein Array von Byte? Dabei müsstest du (wie du schon selber gesagt hast) auch das ganze Array durchgehen und halt nicht zeichnen wenn es nicht mehr "lebt"
    ich würd dir raten ein array zu machen, jedoch nicht nur bytes, sondern eine short, also eine kurze zahl, stellst dir dabei vor jedes feld wär zb 40x40px und dann machst du zb. 0 für wand, 1 für weg und 2 für weg und futter (logischerweise brauchst du dann halt noch entsprechende bilder) und dann machst du dich vertraut mit der gdi+ methode .drawimage() vertraut und zeichnest so das Spielfeld.
    klingt jetz so überrenend, aber wenn du dir das mal anguckst, is das eigentlich ziemlich simpel aber dynamisch. :thumbsup:
    nur ein vorschlag :whistling:
    Hallo Leute,

    danke erstmal für die Vorschläge.

    ² jansteffen: Deinen Beitrag fand ich gut, weil ich eh an 2. Stelle mit dem Weg und Mauer usw. bedenken musste.
    Jedoch ist mein Problem derzeit, ich kriege es nicht hin, irgendwie solch ein Array zu erstellen.

    Also z. B. ein Array mit 50x50 Feldern oder so. Habt ihr da eventuell Tipps, oder Tutorials die ihr gut findet?
    Ich habe zwar einige ergoogled jedoch bringen die leider kaum was...

    Gruß

    VB.NET-Quellcode

    1. Dim PicLib() as Image
    2. Dim WholeString as String

    Dann beim WholeString jedes Zeichen durchgehen und das Cur zuweisen
    count erhöhst du bei jedem Durchgang

    VB.NET-Quellcode

    1. If Cur = "a" Then
    2. PicLib(count) = My.Resources.Wall
    3. ElseIf ...
    4. '' jedes Teil durch gehen

    dann hast du dein Array

    Edit: Der WholeString stellt dein Feldaufbau dar
    später gehst du den Array durch und zeichnest dein Feld mit dem Bild aus deiner PicLib