CastleWar
Mods

So ich habe angefangen das Spiel Modbar zu machen. Dazu habe ich mir erstmal selber einen XML-Parser geschrieben, der das ganze Script einließt und ich dann nach belieben die Informationen auslesen kann. Mein Parser kann allerdings nur zwei arten von "Befehlen", einmal die Klammer
Code: [AUSKLAPPEN]
Oder der ein-Zeilen-Befehl
Code: [AUSKLAPPEN]
Außerdem kann man auch mehrere Sachen in eine Zeile schreiben :
Code: [AUSKLAPPEN]
Der Parser würde jetzt für dir a-Klammer den wert "" auslesen, für die b-Klammer "24" und für die c-Klammer "3". Parameter lassen sich allerdings nicht in mehrere Zeilen unterteilen, ich hielt das für unnötig
Um euch mal zu zeigen wie das Script für die 4 Waffen, die schon implementiert sind, zu zeigen, hier mal der code :
Code: [AUSKLAPPEN]
Dort kann man sehen, dass ein Default-Image geladen wird für den Fall dass es ein Bild nicht gibt, dann werden die Benötigten Bilder geladen und mit einem Namen (ID) versehen, und dann werden die Items hinzugefügt, ich hab es extra "ITEMS" gennant und nicht "Weapons", weil es auch items gibt wie "Medipack" oder "Jetpack" usw., die soll man damit ja auch erstellen können. Das ganze sieht dann so im Spiel aus (mit überarbeiteten Schüssen) :
Zu sehen ist das Kaufmenü mit allen 4 Waffen und oben die Inventar-Leisten mit den gekauften waffen, die UZI hat der Spieler in der Hand und schießt.
[Edit] : Hab das Script noch etwas erweitert, hinzugekommen ist :
Bilder können mit Flags geladen werden (bis jetzt MASKIMAGE und MIDHANDLEIMAGE)
Schüssen können jetzt übersichtlicher und individueller gestaltet werden (Gravitationseinwirkung, abschussstärke etc.)
Ein paar "Befehle" wurden anders Formatiert, einfach damit man nicht so viel code hat und es trotzdem noch übersichtlich ist.
Hier das momentane Script für Ak-47 und Bazooka :
Code: [AUSKLAPPEN]
[/Edit]
mfg ToeB
Code: [AUSKLAPPEN]
<test a="1" b="2">
</test>
</test>
Oder der ein-Zeilen-Befehl
Code: [AUSKLAPPEN]
<test a="1" b=2" />
Außerdem kann man auch mehrere Sachen in eine Zeile schreiben :
Code: [AUSKLAPPEN]
<a>1<b>2<c>3
</c>4</b></a>
</c>4</b></a>
Der Parser würde jetzt für dir a-Klammer den wert "" auslesen, für die b-Klammer "24" und für die c-Klammer "3". Parameter lassen sich allerdings nicht in mehrere Zeilen unterteilen, ich hielt das für unnötig

Um euch mal zu zeigen wie das Script für die 4 Waffen, die schon implementiert sind, zu zeigen, hier mal der code :
Code: [AUSKLAPPEN]
<header>
<defaultimage src="Gfx\Back.bmp" />
</header>
<body>
<images>
<animimage scr="Gfx\Inventar.bmp" name="inventar" sizex="32" sizey="32" frames="4" />
<animimage scr="Gfx\Equipment.bmp" name="equip" sizex="24" sizey="24" frames="4" />
</images>
<items>
<item typ="weapon" >
<image>
<inventar scr="inventar" frame="0" />
<equip scr="equip" frame="0" />
</image>
<name>Ak-47</name>
<weapon>
<shottime scr="150" />
<shotpower scr="6" />
</weapon>
</item>
<item typ="weapon" >
<image>
<inventar scr="inventar" frame="1" />
<equip scr="equip" frame="1" />
</image>
<name>Bazooka</name>
<weapon>
<shottime scr="1000" />
<shotpower scr="50" />
</weapon>
</item>
<item typ="weapon" >
<image>
<inventar scr="inventar" frame="2" />
<equip scr="equip" frame="2" />
</image>
<name>Messer</name>
<weapon>
<shottime scr="500" />
<shotpower scr="50" />
</weapon>
</item>
<item typ="weapon" >
<image>
<inventar scr="inventar" frame="3" />
<equip scr="equip" frame="3" />
</image>
<name>Uzi</name>
<weapon>
<shottime scr="50" />
<shotpower scr="2" />
</weapon>
</item>
</items>
</body>
<defaultimage src="Gfx\Back.bmp" />
</header>
<body>
<images>
<animimage scr="Gfx\Inventar.bmp" name="inventar" sizex="32" sizey="32" frames="4" />
<animimage scr="Gfx\Equipment.bmp" name="equip" sizex="24" sizey="24" frames="4" />
</images>
<items>
<item typ="weapon" >
<image>
<inventar scr="inventar" frame="0" />
<equip scr="equip" frame="0" />
</image>
<name>Ak-47</name>
<weapon>
<shottime scr="150" />
<shotpower scr="6" />
</weapon>
</item>
<item typ="weapon" >
<image>
<inventar scr="inventar" frame="1" />
<equip scr="equip" frame="1" />
</image>
<name>Bazooka</name>
<weapon>
<shottime scr="1000" />
<shotpower scr="50" />
</weapon>
</item>
<item typ="weapon" >
<image>
<inventar scr="inventar" frame="2" />
<equip scr="equip" frame="2" />
</image>
<name>Messer</name>
<weapon>
<shottime scr="500" />
<shotpower scr="50" />
</weapon>
</item>
<item typ="weapon" >
<image>
<inventar scr="inventar" frame="3" />
<equip scr="equip" frame="3" />
</image>
<name>Uzi</name>
<weapon>
<shottime scr="50" />
<shotpower scr="2" />
</weapon>
</item>
</items>
</body>
Dort kann man sehen, dass ein Default-Image geladen wird für den Fall dass es ein Bild nicht gibt, dann werden die Benötigten Bilder geladen und mit einem Namen (ID) versehen, und dann werden die Items hinzugefügt, ich hab es extra "ITEMS" gennant und nicht "Weapons", weil es auch items gibt wie "Medipack" oder "Jetpack" usw., die soll man damit ja auch erstellen können. Das ganze sieht dann so im Spiel aus (mit überarbeiteten Schüssen) :
Zu sehen ist das Kaufmenü mit allen 4 Waffen und oben die Inventar-Leisten mit den gekauften waffen, die UZI hat der Spieler in der Hand und schießt.
[Edit] : Hab das Script noch etwas erweitert, hinzugekommen ist :



Hier das momentane Script für Ak-47 und Bazooka :
Code: [AUSKLAPPEN]
<header>
<defaultimage src="Gfx\Back.bmp" />
</header>
<body>
<images>
<animimage scr="Gfx\Inventar.bmp" name="inventar" sizex="32" sizey="32" frames="4" flag="MASK|MID" />
<animimage scr="Gfx\Equipment.bmp" name="equip" sizex="24" sizey="24" frames="4" flag="MASK|MID" />
<image scr="Gfx\Fire.png" name="shot1" flag="MID" scalex="0.25" scaley="0.05" />
<image scr="Gfx\Schüsse.bmp" name="shot2" flag="MASK|MID" />
</images>
<items>
<item typ="weapon" name="AK-47" >
<image>
<inventar scr="inventar" frame="0" />
<equip scr="equip" frame="0" />
</image>
<data>
<shot time="150" power="7" hit="direct" grav="0.01" shotpower="24" image="shot1" />
</data>
</item>
<item typ="weapon" name="Bazooka" >
<image>
<inventar scr="inventar" frame="1" />
<equip scr="equip" frame="1" />
</image>
<data>
<shot time="1000" power="100" hit="50" grav="0.2" shotpower="5" image="shot2" />
</data>
</item>
</items>
</body>
<defaultimage src="Gfx\Back.bmp" />
</header>
<body>
<images>
<animimage scr="Gfx\Inventar.bmp" name="inventar" sizex="32" sizey="32" frames="4" flag="MASK|MID" />
<animimage scr="Gfx\Equipment.bmp" name="equip" sizex="24" sizey="24" frames="4" flag="MASK|MID" />
<image scr="Gfx\Fire.png" name="shot1" flag="MID" scalex="0.25" scaley="0.05" />
<image scr="Gfx\Schüsse.bmp" name="shot2" flag="MASK|MID" />
</images>
<items>
<item typ="weapon" name="AK-47" >
<image>
<inventar scr="inventar" frame="0" />
<equip scr="equip" frame="0" />
</image>
<data>
<shot time="150" power="7" hit="direct" grav="0.01" shotpower="24" image="shot1" />
</data>
</item>
<item typ="weapon" name="Bazooka" >
<image>
<inventar scr="inventar" frame="1" />
<equip scr="equip" frame="1" />
</image>
<data>
<shot time="1000" power="100" hit="50" grav="0.2" shotpower="5" image="shot2" />
</data>
</item>
</items>
</body>
[/Edit]
mfg ToeB
Inventar


So hab jetzt ein Inventar-System eingebaut, damit kann man seine Ausrüstung später Individuell anpassen, Momentan hat man nur 5 Slots, werde aber einbauen das man sich evtl. Slots kaufen kann oder so...
Ein simples Kaufmenü ist auch schon drin, wie man sieht, Geld gibts allerdings noch nicht. Außerdem Können die Inventar einträge zwar schon aufgerufen werden, es bring allerdings noch nichts. Später kann man hier alles lagern, von Waffen und Medipacks bis hin zu Fallschirmen, NinjaSeilen und Jatpacks.
Außerdem gibts die berühmten Wolken wieder

mfg ToeB
Jump'n'Run

So die "Jump'n'run" - Engine ist nun Fertig. Man kann jetzt einen Spieler erstellen (Smiley), mit im Rechts / Links gehen und Springen. MapKollision ist fast 100% Fehlerfrei, benutze ein selbst geschriebenes "RectsOverlap" (Gibts ja soweit ich das gesehen hab nicht in BMax). Außerdem dreht sich der Player schon zur Maus.
Zum Spiel selber :
Ich habe mir überlegt, das ich dieses Tileset zwar nehme, aber der Editor nicht so Bleiben kann, da ich hinterher auch sachen wie "Maperweiterungen" einbauen möchte. Also z.B. auch zerbrechliche tiles etc. Auch habe ich mir überlegt, Das der Spielmodi nun so in etwa ablaufen soll :
Eine "neutrale" Burg in der Mitte der Map
Man kann in diese Burg reingehen durch die Tür
Ist man in der Burg, erscheint eine Hohe Map, die den Turm darstellen soll, also man muss dort hochspringen und z.B. Fallen ausweichen. Ist man oben, kann man die eigene Flagge hissen und die Burg gehört einem. Gibt also einen Punkt
Das andere Team muss jetzt versuchen die Burg wieder einzunehmen. Ich werde auch für solche zwecke sachen wie "claymores" etc einbauen, damit das verteidiger Team auch verteidigen kann.
Das war das was mir so Grob zu dem Thema durch den Kopf ging. Es muss an manchen Ecken noch abgerundet werden, aber so in etwa wirds außehen (Natürlich wird das Spiel wieder im Lan / Online zu spielen sein, aber ich überlege noch wie man Bots realisieren könnte ....
mfg ToeB
Zum Spiel selber :
Ich habe mir überlegt, das ich dieses Tileset zwar nehme, aber der Editor nicht so Bleiben kann, da ich hinterher auch sachen wie "Maperweiterungen" einbauen möchte. Also z.B. auch zerbrechliche tiles etc. Auch habe ich mir überlegt, Das der Spielmodi nun so in etwa ablaufen soll :

Man kann in diese Burg reingehen durch die Tür


Das war das was mir so Grob zu dem Thema durch den Kopf ging. Es muss an manchen Ecken noch abgerundet werden, aber so in etwa wirds außehen (Natürlich wird das Spiel wieder im Lan / Online zu spielen sein, aber ich überlege noch wie man Bots realisieren könnte ....
mfg ToeB
Es geht in eine neue Runde !

So das ich sowieso grad ein schönes "Anfänger"-Projekt für BlitzMax suche, hab ich mir gedacht diesem Projekt in Blitzmax neues Leben einzuhauchen. Also hab ich mich direkt mal dran gesetzt und einen TileEditor für die Maps angefangen. Um mir das spätere Map-Disignen zu vereinfachen, habe ich auch autotiles eingebaut. Das heißt, egal wo ich ein Tile setzte, es wird automatisch mit den danebenliegeneden Verbunden. Dafür musste ich das Tileset allerdings von den standart mäßigen 20 Tiles auf 48 erweitern, damit auch jede möglichkeit, wie Tiles zueinander stehen können, abgedeckt ist. (wenn jetzt einer nachrechnet, das es mehr kombinationen gibt, dann hat er recht, aber man braucht für bestimmte sachen auch Tiles doppelt
)
So hier mal der Editor zum Testen (Ist jetzt nix großartiges, außer das ich die Tiles komplett selber mit Paint gepixelt habe) :
https://www.blitzforum.de/upload/file.php?id=9410
Edit : Neue Version, diesmal im Debug mode, villeicht klärt sich dann der Fehler...
Ihr werdet in Zukunft noch mehr von diesem Projekt (jetzt in BMax ) hören. Bis dann,
ToeB

So hier mal der Editor zum Testen (Ist jetzt nix großartiges, außer das ich die Tiles komplett selber mit Paint gepixelt habe) :
https://www.blitzforum.de/upload/file.php?id=9410
Edit : Neue Version, diesmal im Debug mode, villeicht klärt sich dann der Fehler...
Ihr werdet in Zukunft noch mehr von diesem Projekt (jetzt in BMax ) hören. Bis dann,
ToeB
Neues vom Bau

So ich habe jetzt statt einer Player-To-Tile Kollision (die war mir zu fehlerhaft) die B3D eigene eingebaut, guckt mal iwo im Codearchiv, da müsste ein beitrag von Nobody sein, der das verfahren berschreibt.
Desweiteren habe ich das Ninjaseit komplett eingebaut, also mann kann jetzt pendeln, gegn mauern klatschten usw.
Ich bin grad dabei eine Console zu schreiben, damit ich, und später auch die spieler, daten verändern können, also z.B. gravitation, (cheats), servereinstellungen... Und natürlich werden da auch momentane ereignisse reingeschrieben wie abschüssse oder tode...
Dazu habe ich meine "SimpleGUI" - Engine eingebunden, da sie relativ schnell ist und ich weiß wie sie functioniert, um etvl. änderungen vorzunehmen
Ich bin jetzt erstmal ne Woche (ab morgen) auf Klassenfahrt und danach die Pfingstferien weg. Heißt ich werd erst in mindestens 1,5 wochen wieder weiterarbeiten.
mfg ToeB
Desweiteren habe ich das Ninjaseit komplett eingebaut, also mann kann jetzt pendeln, gegn mauern klatschten usw.
Ich bin grad dabei eine Console zu schreiben, damit ich, und später auch die spieler, daten verändern können, also z.B. gravitation, (cheats), servereinstellungen... Und natürlich werden da auch momentane ereignisse reingeschrieben wie abschüssse oder tode...
Dazu habe ich meine "SimpleGUI" - Engine eingebunden, da sie relativ schnell ist und ich weiß wie sie functioniert, um etvl. änderungen vorzunehmen

Ich bin jetzt erstmal ne Woche (ab morgen) auf Klassenfahrt und danach die Pfingstferien weg. Heißt ich werd erst in mindestens 1,5 wochen wieder weiterarbeiten.
mfg ToeB
Enterhaken (Ninja)

Ich habe jetzt fast alle waffen drin, jetzt ist mir spontan eine neue idee gekommen : Ich wollte eine art enterhaken machen, an dem sich der spieler dran hangeln kann. Das ganze läuft dann über eine selbst geschreibene Verlet-Physik (sehr einfach)... Mal gucken wie ich die Kollision mit der map hinbekomme...
Später, wenns fertig ist, schreib ich mehr
mfg ToeB
Später, wenns fertig ist, schreib ich mehr

mfg ToeB
Waffen

Also jetzt werde ich mich erstmal an die Waffen ransetzten, pixeln, einbauen, und so...
Waffen :
Machete (vorhanden)
Pistole (noch nicht vorhanden)
MaschienenPistole (noch nicht vorhanden)
MaschienenGewehr (vorhanden)
ScharfschützenGewehr (noch nicht vorhanden)
Bazooka (vorhanden)
Granaten (noch nicht vorhanden)
Außerdem habe ich mit meinem Bruder überlegt, das Spiel spannender zu machen, in dem jeder spieler eine spezielfährigkeit hat.
Feuer :
Muss abgeschossen werden, bei aufprall explodiert es und verbrennt alles feindliche in einem bestimmten radius...
Wasser :
Heilt deine mitspieler in einem bestimmten radius
Erde :
Ne art erdbeben, wer zu nah am "epizentrum" steht, dem dreht es die steuerung um.
Luft :
Man kann für einige zeit lang fliegen
Diese Fähigkeit hat man am anfang des Spiels so, hat man sie verbraucht kann man sie sich durch verschiedene sachen zurückgewinnen :
Geld
In einer Runde nicht sterben
Eine bestimmte anzahl von gegnern in einer Runde abschießen
Was haltet ihr so davon ?
mfg ToeB
Waffen :







Außerdem habe ich mit meinem Bruder überlegt, das Spiel spannender zu machen, in dem jeder spieler eine spezielfährigkeit hat.

Muss abgeschossen werden, bei aufprall explodiert es und verbrennt alles feindliche in einem bestimmten radius...

Heilt deine mitspieler in einem bestimmten radius

Ne art erdbeben, wer zu nah am "epizentrum" steht, dem dreht es die steuerung um.

Man kann für einige zeit lang fliegen
Diese Fähigkeit hat man am anfang des Spiels so, hat man sie verbraucht kann man sie sich durch verschiedene sachen zurückgewinnen :



Was haltet ihr so davon ?
mfg ToeB
Neues

So ich hab wieder neue Sachen eingebaut.
ImageParticleEngine :
eine kleine engine, so ähnlich wie die ParticleEngine für die Pixel, nur halt für ganze Bilder, extra für das spiel gemacht. Damit kann man jetzt z.b. ein bild als Particle malen, welches immer kleiner wird, sich dreht etc.
Neue Waffe :
Bazzoka (dafür die Engine -> Rauch) mit sichtbaren geschossen, explodiert in rauch
Flüssiges Scrolling :
Habe das Scrolling etwas überarbeitet und jetzt hängt die Map dem Spieler ein wenig nach, so siehts besser aus
Einige Bugs gefixed...
Edit: So jetzt könnt ihr auch wieder die bilder begutachten, mein bplaced account war abgelaufen weil ich die seite nicht so oft besucht habe, und musste deshalb mir einen neuen anlegen... Funtz jetzt aber wieder
mfg ToeB

eine kleine engine, so ähnlich wie die ParticleEngine für die Pixel, nur halt für ganze Bilder, extra für das spiel gemacht. Damit kann man jetzt z.b. ein bild als Particle malen, welches immer kleiner wird, sich dreht etc.

Bazzoka (dafür die Engine -> Rauch) mit sichtbaren geschossen, explodiert in rauch

Habe das Scrolling etwas überarbeitet und jetzt hängt die Map dem Spieler ein wenig nach, so siehts besser aus


Edit: So jetzt könnt ihr auch wieder die bilder begutachten, mein bplaced account war abgelaufen weil ich die seite nicht so oft besucht habe, und musste deshalb mir einen neuen anlegen... Funtz jetzt aber wieder

mfg ToeB
MapEditor

So ich wollte die maps ein wenig schöner machen und bin grad dabei, den mapeditor beizubringen, die tiles so anzuordnen, das es wie in dem bild unten ausssieht (also man setzte einen stein iwo hin und dann werden alle steine geupadet und mit dem dann verbunden - falls welche in der nähe sind
)
Das funtz auch ganz gut aber jetzt wollte ichs so machen, das ich auch "Flächen" diffinieren kann, also das wenn man eine 3*3 fläche hat, das dann die nicht aus vier eckpunkten, 4 t-Stücke und einer kreuzung besteht (das sieht doof aus weil dann immer die kästchen dazwischen sind -.-). Die Tiles habe ich schon gemalt, aber es funtz noch nicht so ganz ...
Edit:
So habs jetzt geschafft mit AußenEcken, InnenEcken,Rändern außen und innen, TStücke außen (innen fehlen noch...) :
Und das Gute daran ist, man braucht nur die felder auszufüllen, das verbinden tut der Editor
Das ganze funtz mit diesem Code: [AUSKLAPPEN]
Edit(2):
So habs jetzt geschafft das man, egal wie man die punkte setzt, sie richtig verbunden werden...
mfg ToeB

Das funtz auch ganz gut aber jetzt wollte ichs so machen, das ich auch "Flächen" diffinieren kann, also das wenn man eine 3*3 fläche hat, das dann die nicht aus vier eckpunkten, 4 t-Stücke und einer kreuzung besteht (das sieht doof aus weil dann immer die kästchen dazwischen sind -.-). Die Tiles habe ich schon gemalt, aber es funtz noch nicht so ganz ...

Edit:
So habs jetzt geschafft mit AußenEcken, InnenEcken,Rändern außen und innen, TStücke außen (innen fehlen noch...) :
Und das Gute daran ist, man braucht nur die felder auszufüllen, das verbinden tut der Editor

Das ganze funtz mit diesem Code: [AUSKLAPPEN]
Dim p(2,2)
Function UpdateMap()
For xx = 0 To MapWidth-1
For yy = 0 To MapHeight-1
If map(xx,yy) > 0
CheckField(xx,yy)
If p(1,0)=0And p(1,2)=0And p(0,1)=0And p(2,1)=0 map(xx,yy) = 1
;Horizontal
If p(1,0)=0And p(1,2)=0And p(0,1)=0And p(2,1)>0 map(xx,yy) = 2
If p(1,0)=0And p(1,2)=0And p(0,1)>0And p(2,1)>0 map(xx,yy) = 3
If p(1,0)=0And p(1,2)=0And p(0,1)>0And p(2,1)=0 map(xx,yy) = 4
;Vertikal
If p(1,0)>0And p(1,2)=0And p(0,1)=0And p(2,1)=0 map(xx,yy) = 5
If p(1,0)>0And p(1,2)>0And p(0,1)=0And p(2,1)=0 map(xx,yy) = 6
If p(1,0)=0And p(1,2)>0And p(0,1)=0And p(2,1)=0 map(xx,yy) = 7
;Ecken
If p(1,0)=0And p(1,2)>0And p(0,1)=0And p(2,1)>0 map(xx,yy) = 8
If p(1,0)=0And p(1,2)>0And p(0,1)>0And p(2,1)=0 map(xx,yy) = 9
If p(1,0)>0And p(1,2)=0And p(0,1)=0And p(2,1)>0 map(xx,yy) = 10
If p(1,0)>0And p(1,2)=0And p(0,1)>0And p(2,1)=0 map(xx,yy) = 11
;T-Stücke
If p(1,0)>0And p(1,2)=0And p(0,1)>0And p(2,1)>0 map(xx,yy) = 12
If p(1,0)>0And p(1,2)>0And p(0,1)>0And p(2,1)=0 map(xx,yy) = 13
If p(1,0)=0And p(1,2)>0And p(0,1)>0And p(2,1)>0 map(xx,yy) = 14
If p(1,0)>0And p(1,2)>0And p(0,1)=0And p(2,1)>0 map(xx,yy) = 15
;Kreuzung
If p(1,0)>0And p(1,2)>0And p(0,1)>0And p(2,1)>0 map(xx,yy) = 16
;Flächen
;-->Ecken
If p(2,1)>0And p(1,2)>0And p(2,2)>0And p(1,0)=0And p(0,1)=0 map(xx,yy) = 17
If p(0,1)>0And p(0,2)>0And p(1,2)>0And p(1,0)=0And p(2,1)=0 map(xx,yy) = 18
If p(1,0)>0And p(2,0)>0And p(2,1)>0And p(0,1)=0And p(1,2)=0 map(xx,yy) = 19
If p(0,0)>0And p(1,0)>0And p(0,1)>0And p(2,1)=0And p(1,2)=0 map(xx,yy) = 20
;-->Kreuzung
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(1,1)>0And p(2,0)>0And p(2,1)>0And p(2,2)>0 map(xx,yy) = 21
;-->Ränder
If p(1,0)>0And p(2,0)>0And p(2,1)>0And p(2,2)>0And p(1,2)>0And p(0,1)=0 map(xx,yy) = 22
If p(1,0)>0And p(1,2)>0And p(0,0)>0And p(0,1)>0And p(0,2)>0And p(2,1)=0 map(xx,yy) = 23
If p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)>0And p(1,0)=0 map(xx,yy) = 24
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(1,2)=0 map(xx,yy) = 25
;-->T-Stücke
If p(1,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)>0And p(0,0)=0And p(2,0)=0 map(xx,yy) = 26
If p(1,0)>0And p(2,0)>0And p(2,1)>0And p(2,2)>0And p(1,2)>0And p(0,1)>0And p(0,0)=0And p(0,2)=0 map(xx,yy) = 27
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(1,2)>0And p(0,2)=0And p(2,2)=0 map(xx,yy) = 28
If p(0,0)>0And p(1,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,0)=0And p(2,2)=0 map(xx,yy) = 29
;-->InnenEcken
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)=0 map(xx,yy) = 30
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)=0And p(1,2)>0And p(2,2)>0 map(xx,yy) = 31
If p(0,0)>0And p(1,0)>0And p(2,0)=0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)>0 map(xx,yy) = 32
If p(0,0)=0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)>0 map(xx,yy) = 33
EndIf
Next
Next
End Function
Function CheckField(px,py)
For x1=0To 2:For y1=0To 2:p(x1,y1)=0:Next:Next
If CheckRange(px-1,py-1) Then p(0,0) = map(px-1,py-1)
If CheckRange(px ,py-1) Then p(1,0) = map(px ,py-1)
If CheckRange(px+1,py-1) Then p(2,0) = map(px+1,py-1)
If CheckRange(px-1,py ) Then p(0,1) = map(px-1,py )
If CheckRange(px ,py ) Then p(1,1) = map(px ,py )
If CheckRange(px+1,py ) Then p(2,1) = map(px+1,py )
If CheckRange(px-1,py+1) Then p(0,2) = map(px-1,py+1)
If CheckRange(px ,py+1) Then p(1,2) = map(px ,py+1)
If CheckRange(px+1,py+1) Then p(2,2) = map(px+1,py+1)
End Function
Function CheckRange(px,py)
Return (px=>0And py=>0And px<MapWidth And py<MapHeight)
End Function
Function UpdateMap()
For xx = 0 To MapWidth-1
For yy = 0 To MapHeight-1
If map(xx,yy) > 0
CheckField(xx,yy)
If p(1,0)=0And p(1,2)=0And p(0,1)=0And p(2,1)=0 map(xx,yy) = 1
;Horizontal
If p(1,0)=0And p(1,2)=0And p(0,1)=0And p(2,1)>0 map(xx,yy) = 2
If p(1,0)=0And p(1,2)=0And p(0,1)>0And p(2,1)>0 map(xx,yy) = 3
If p(1,0)=0And p(1,2)=0And p(0,1)>0And p(2,1)=0 map(xx,yy) = 4
;Vertikal
If p(1,0)>0And p(1,2)=0And p(0,1)=0And p(2,1)=0 map(xx,yy) = 5
If p(1,0)>0And p(1,2)>0And p(0,1)=0And p(2,1)=0 map(xx,yy) = 6
If p(1,0)=0And p(1,2)>0And p(0,1)=0And p(2,1)=0 map(xx,yy) = 7
;Ecken
If p(1,0)=0And p(1,2)>0And p(0,1)=0And p(2,1)>0 map(xx,yy) = 8
If p(1,0)=0And p(1,2)>0And p(0,1)>0And p(2,1)=0 map(xx,yy) = 9
If p(1,0)>0And p(1,2)=0And p(0,1)=0And p(2,1)>0 map(xx,yy) = 10
If p(1,0)>0And p(1,2)=0And p(0,1)>0And p(2,1)=0 map(xx,yy) = 11
;T-Stücke
If p(1,0)>0And p(1,2)=0And p(0,1)>0And p(2,1)>0 map(xx,yy) = 12
If p(1,0)>0And p(1,2)>0And p(0,1)>0And p(2,1)=0 map(xx,yy) = 13
If p(1,0)=0And p(1,2)>0And p(0,1)>0And p(2,1)>0 map(xx,yy) = 14
If p(1,0)>0And p(1,2)>0And p(0,1)=0And p(2,1)>0 map(xx,yy) = 15
;Kreuzung
If p(1,0)>0And p(1,2)>0And p(0,1)>0And p(2,1)>0 map(xx,yy) = 16
;Flächen
;-->Ecken
If p(2,1)>0And p(1,2)>0And p(2,2)>0And p(1,0)=0And p(0,1)=0 map(xx,yy) = 17
If p(0,1)>0And p(0,2)>0And p(1,2)>0And p(1,0)=0And p(2,1)=0 map(xx,yy) = 18
If p(1,0)>0And p(2,0)>0And p(2,1)>0And p(0,1)=0And p(1,2)=0 map(xx,yy) = 19
If p(0,0)>0And p(1,0)>0And p(0,1)>0And p(2,1)=0And p(1,2)=0 map(xx,yy) = 20
;-->Kreuzung
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(1,1)>0And p(2,0)>0And p(2,1)>0And p(2,2)>0 map(xx,yy) = 21
;-->Ränder
If p(1,0)>0And p(2,0)>0And p(2,1)>0And p(2,2)>0And p(1,2)>0And p(0,1)=0 map(xx,yy) = 22
If p(1,0)>0And p(1,2)>0And p(0,0)>0And p(0,1)>0And p(0,2)>0And p(2,1)=0 map(xx,yy) = 23
If p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)>0And p(1,0)=0 map(xx,yy) = 24
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(1,2)=0 map(xx,yy) = 25
;-->T-Stücke
If p(1,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)>0And p(0,0)=0And p(2,0)=0 map(xx,yy) = 26
If p(1,0)>0And p(2,0)>0And p(2,1)>0And p(2,2)>0And p(1,2)>0And p(0,1)>0And p(0,0)=0And p(0,2)=0 map(xx,yy) = 27
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(1,2)>0And p(0,2)=0And p(2,2)=0 map(xx,yy) = 28
If p(0,0)>0And p(1,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,0)=0And p(2,2)=0 map(xx,yy) = 29
;-->InnenEcken
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)=0 map(xx,yy) = 30
If p(0,0)>0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)=0And p(1,2)>0And p(2,2)>0 map(xx,yy) = 31
If p(0,0)>0And p(1,0)>0And p(2,0)=0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)>0 map(xx,yy) = 32
If p(0,0)=0And p(1,0)>0And p(2,0)>0And p(0,1)>0And p(2,1)>0And p(0,2)>0And p(1,2)>0And p(2,2)>0 map(xx,yy) = 33
EndIf
Next
Next
End Function
Function CheckField(px,py)
For x1=0To 2:For y1=0To 2:p(x1,y1)=0:Next:Next
If CheckRange(px-1,py-1) Then p(0,0) = map(px-1,py-1)
If CheckRange(px ,py-1) Then p(1,0) = map(px ,py-1)
If CheckRange(px+1,py-1) Then p(2,0) = map(px+1,py-1)
If CheckRange(px-1,py ) Then p(0,1) = map(px-1,py )
If CheckRange(px ,py ) Then p(1,1) = map(px ,py )
If CheckRange(px+1,py ) Then p(2,1) = map(px+1,py )
If CheckRange(px-1,py+1) Then p(0,2) = map(px-1,py+1)
If CheckRange(px ,py+1) Then p(1,2) = map(px ,py+1)
If CheckRange(px+1,py+1) Then p(2,2) = map(px+1,py+1)
End Function
Function CheckRange(px,py)
Return (px=>0And py=>0And px<MapWidth And py<MapHeight)
End Function
Edit(2):
So habs jetzt geschafft das man, egal wie man die punkte setzt, sie richtig verbunden werden...
mfg ToeB
Das Spiel / Anfäge

Ich hab noch nicht so wirklich drüber nachgedacht, wie das Spiel später aussehen soll, aber ich bin zu dem entschluss gekommen, das es sich um ein Jump'n'run - Shooter handeln soll.
Es soll alles sehr simple aussehen und trotzdem den spieler fordern. Dazu soll man später über Netzwerk oder Internet oder im einzelspieler gegen Bots mit seinem Team kämfen. Das Ziel ist, mit seinem Team, oder auch alleine, eine Burg zu zerstören / einnehmen (bin mir noch nicht ganz sicher , was findet ihr besser ?). Das ganze wird komplett in 2D programmiert.
Momentaner Stand :
TileEditor + Erste Testmap
Smiley Als spieler + 1 Waffe
Wenn man das Programm zum ersten map startet dann werden die bilder gedreht und in ein Image gespeichert. Dieses wird dann bei nächsteren Programmstarts geladen (ladezeit wird verkürtzt)
Laufen / springen sieht sehr gut aus
Framen unabhägiges Programm
Schießen
Particle Engine (Particle2D -> Siehe Codearchiv)
UDP Netzwerk Lib (-> Siehe Codearchiv)
Collision des Spielers mit der Map
Löschen der schüsse bei Collision mit der Map
TileMapScrolling
Man kann den smiliy jetzt in jede x-belibige farbe einfärben (auch die hände)
Zwei Burgen (rot / grün)
Wolken-Engine, die pausenlos wolken erzeugt, die dann im hinterggrund hin und her schweben
Grafiken alle Selbst gepixelt, mit paint ^_^'
So damit ihr auch so einen kleinen eindruck bekommt, ein Screenshot :
mfg ToeB
Es soll alles sehr simple aussehen und trotzdem den spieler fordern. Dazu soll man später über Netzwerk oder Internet oder im einzelspieler gegen Bots mit seinem Team kämfen. Das Ziel ist, mit seinem Team, oder auch alleine, eine Burg zu zerstören / einnehmen (bin mir noch nicht ganz sicher , was findet ihr besser ?). Das ganze wird komplett in 2D programmiert.
Momentaner Stand :















So damit ihr auch so einen kleinen eindruck bekommt, ein Screenshot :
mfg ToeB