<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>BlitzBasic Portal Worklogs - Gestrandet Unlimited</title>
		<link>https://www.blitzforum.de/worklogs/335/</link>
		<description>Worklog von coolo</description>
		<language>de</language>
		<managingEditor>mail@blitzforum.de</managingEditor>
		<webMaster>mail@blitzforum.de</webMaster>
		<pubDate>Sat, 05 Nov 2011 20:34:04 +0100</pubDate>
		<lastBuildDate>Sat, 05 Nov 2011 20:34:04 +0100</lastBuildDate>

		<item>
			<title>Auftrieb und Inventar</title>
			<link>https://www.blitzforum.de/worklogs/335/#3375</link>
			<guid>https://www.blitzforum.de/worklogs/335/#3375</guid>
			<author>coolo</author>
			<description>Guten Tag, guten Abend und frohe Weihnachten!&lt;br /&gt;&lt;br /&gt;Die letzten Tage war ich nat&amp;uuml;rlich nicht auf der faulen Haut und habe flei&amp;szlig;ig an Gestrandet Unlimited gearbeitet. Doch was genau ist passiert?&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://programming-with-design.at/files/Gestrandet/newgestrandet_pic13_inventory1.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Der erste Prototyp des Inventars erblickte die Welt. Dieses ist anders als das von Stranded2 in Kategorien unterteilt. Hierdurch erhoffe ich, eine verbesserte &amp;Uuml;bersicht &amp;uuml;ber die Items zu erlangen.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://programming-with-design.at/files/Gestrandet/newgestrandet_pic14_proportion.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Daraufhin brauchte ich eine kurze Pause von der Inventargestaltung, weshalb ich die Proportionen des Spielers ein wenig angepasst habe, hierdurch erkennt man nebenbei bemerkt nicht dessen H&amp;auml;sslichkeit, weshalb dieser vielleicht doch im Spiel bleibt &lt;img src=&quot;/forum/images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; /&gt;!&lt;br /&gt;Au&amp;szlig;erdem wurde das Grassprite angepasst, es ist nun um einiges gr&amp;ouml;&amp;szlig;er und ist auch dichter. Au&amp;szlig;erdem passt sich das Gras nun dem Winkel des Terrains an, auf welchem es steht.&lt;br /&gt;Im Hintergrund hat sich das Updaten ein wenig ge&amp;auml;ndert. Neben der &amp;quot;Update&amp;quot; Funktion welche jedes Frame f&amp;uuml;r jedes Objekt ausgef&amp;uuml;hrt wird, gibt es auch die &amp;quot;ControllerOn&amp;quot; Events, welche ausgef&amp;uuml;hrt werden wenn ein bestimmtes Ereignis in Kraft tritt. Momentan gibt es &amp;quot;ControllerOnTouch&amp;quot; (Wenn das Objekt etwas Ber&amp;uuml;hrt) und &amp;quot;ControllerOnMove&amp;quot; (Wenn sich das Objekt bewegt [Wegen der Schwerkraft, weil eine Explosion statt fand, ...]).&lt;br /&gt;Ganz nebenbei habe ich die untere Textur (das Hellbraune) stark verkleinert, hierdurch sollte das ganze dezenter wirken und kein allzu gro&amp;szlig;er Tiefeneffekt entstehen.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://programming-with-design.at/files/Gestrandet/newgestrandet_pic15_inventory2.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Danach habe ich mich wieder dem Inventar zugewandt. Diesmal habe ich das Kombinationsfeld eingebaut. Anders als in Stranded wird das Objekt nicht &amp;quot;zusammengeklickt&amp;quot;. Dieses konnte ich aus mehreren Gr&amp;uuml;nden nicht verwenden. Durch die Kategorisierung der Items, kann dies schnell ziemlich un&amp;uuml;bersichtlich werden und au&amp;szlig;erdem ist es allgemein ziemlich umst&amp;auml;ndlich (Einmal verklickt ist die ganze Kombination am Ar****).  Die notwendigen Komponenten der Kombination werden allesamt via Drag'n Drop in diesen Kreis hineingeschoben und werden auf Knopfdruck miteinander kombiniert. Allerdings kommt es im Gegensatz zu Minecraft nicht auf die Position der Items an, diese ist &lt;a href=&quot;http://www.ostarrichi.org/wort-2769-reise-at-des+is+ma+powidl.html&quot; target=&quot;_blank&quot;&gt;powidl&lt;/a&gt;. Der restliche GUI Schnick Schnack kommt nat&amp;uuml;rlich noch (Kombinationsbutton etc.)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://programming-with-design.at/files/Gestrandet/newgestrandet_pic16_jesus.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Beim implementieren des n&amp;auml;chsten Features wurde aus der Spielfigur schnurstracks eine auf Wasser gehende Figur! Dies war nat&amp;uuml;rlich nur ein Bug und ist nat&amp;uuml;rlich behoben, das eigentliche Feature:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://programming-with-design.at/files/Gestrandet/newgestrandet_pic17_water2.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Auftrieb! Jedes Spielobjekt hat nun die M&amp;ouml;glichkeit entweder sinken zu k&amp;ouml;nnen (Steine,...) oder auf der Oberfl&amp;auml;che zu chillen (&amp;Auml;ste,...). Der Spieler hat zus&amp;auml;tzlich die M&amp;ouml;glichkeit schwimmen und tauchen zu k&amp;ouml;nnen. Dadurch hat man unter Wasser eine viel gr&amp;ouml;&amp;szlig;ere Bewegungsfreiheit. Der Auftrieb ist nat&amp;uuml;rlich physikalisch vollkommen Absurd implementiert (Position.VY :- (Gravity + Buoyancy)*.8 &lt;img src=&quot;/forum/images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; /&gt;) aber es wirkt einigerma&amp;szlig;en korrekt.&lt;br /&gt;&lt;br /&gt;Tja dies habe ich die letzten paar Tage gemacht!&lt;br /&gt;&lt;br /&gt;MfG!</description>
			<pubDate>Sat, 05 Nov 2011 20:34:04 +0100</pubDate>
		</item>

		<item>
			<title>Grafik Verbesserungen!</title>
			<link>https://www.blitzforum.de/worklogs/335/#3371</link>
			<guid>https://www.blitzforum.de/worklogs/335/#3371</guid>
			<author>coolo</author>
			<description>Servus!&lt;br /&gt;&lt;br /&gt;Gestrandet ist wieder ziemlich weit gekommen - doch gehen wir der Reihe nach, was alles nun im Spiel ist!&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic6_betterskin.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Eine Untergrundtextur ist nun eingebaut!&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic7_newpalms.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Neue Palmensprites! Diesmal sind sie nicht gepixelt sondern mit Vektorgrafiken (Inkscape) gezeichnet.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic8_bg.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Ein Verlauf als Hintergrund!&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic10_bglayer.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Erster Test einer Hintergrundebene. Dieser wird nicht ins Spiel kommen (Sieht zu beschissen aus :&amp;gt;) Jedoch habe ich denselben Code f&amp;uuml;r das Schattensystem (n&amp;auml;chstes Bild) verwenden k&amp;ouml;nnen.&lt;br /&gt;Das Playersprite ist nur zu Testzwecken im Spiel - das &amp;auml;ndert sich sicher noch!&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic11_bglayer2.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Schattensystem! Funktioniert recht gut, lediglich das Updaten der Schatten beim entfernen/hinzuf&amp;uuml;gen will noch nicht so ganz. Der Schatten ist nur zu Testzwecken so lang.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic12_needs.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Bed&amp;uuml;rfnissanzeige und Verwaltung! Bed&amp;uuml;rfnisse werden nur dann angezeigt wenn sie nicht voll sind, und nehmen immer die volle Breite des Bildschirms ein.&lt;br /&gt;&lt;br /&gt;Weiters habe ich die Implementation von Ressourcen angefangen. Die erste Ressource (Stein) wird bereits halbwegs zuverl&amp;auml;ssig im Terrain verteilt.&lt;br /&gt;&lt;br /&gt;Yay! Bis zum n&amp;auml;chsten mal.</description>
			<pubDate>Mon, 31 Oct 2011 15:56:18 +0100</pubDate>
		</item>

		<item>
			<title>Gestrandet unlimited - Rewrite #5</title>
			<link>https://www.blitzforum.de/worklogs/335/#3367</link>
			<guid>https://www.blitzforum.de/worklogs/335/#3367</guid>
			<author>coolo</author>
			<description>Hallo Freunde (und mDave)!&lt;br /&gt;&lt;br /&gt;Lang ist es her, als ich das letzte W&amp;ouml;rtchen &amp;uuml;ber Gestrandet verloren habe. Dies lag haupt&amp;auml;schlich daran, dass ich nicht mehr an diesem wundervollen Spiel arbeitete - doch das Ziel an sich war nicht Tot!&lt;br /&gt;&lt;br /&gt;Vor einigen Monaten kam der &amp;quot;Minecraft&amp;quot; Hype auf uns zu. Mich hat das Spiel zwar kaum faszinieren k&amp;ouml;nnen, bis auf eine Sache: Die unbegrenzten Karten. Diese bieten so wahnsinnig viel Spielspa&amp;szlig;, dass ich mir schon damals gew&amp;uuml;nscht habe, ich k&amp;ouml;nnte ein derartiges Element in Gestrandet unterbringen. Dies war allerdings aufgrund technischer Beschr&amp;auml;nkungen kaum m&amp;ouml;glich. Darum machte ich mich erstmal um einen Rewrite in Java - dieses Fruchtete allerdings kaum (Wieso kann sich jeder zusammenreimen &lt;img src=&quot;/forum/images/smiles/icon_razz.gif&quot; alt=&quot;Razz&quot; /&gt;). &lt;br /&gt;Vor 3 Wochen schlie&amp;szlig;lich habe ich in einer Nacht und Nebel Aktion den alten Gestrandetordner kopiert und ausgemistet. Hierbei habe ich alte Codedateien hinausgeworfen und alles was mit der Map zu tun hatte (Inkl. Lua Skripte) in den Papierkorb verfrachtet. Mittlerweile hat das aktuelle Gestrandet lediglich die Ordnerstruktur, Lua Anbindung, Diverse Kleinigkeiten (Particleengine, Colorstack, ...) und Grafiken aus Alt - Gestrandet geerbt.&lt;br /&gt;&lt;br /&gt;Was ist (bisher) neu?&lt;br /&gt; - Praktisch unendliche Karte und wird dynamisch nachgeneriert - Wird lediglich durch die Integer/Float Grenze und Speicher begerenzt&lt;br /&gt; - Multiplayer von Anfang an implementiert - L&amp;auml;uft bereits jetzt mit bis zu 6 Spielern fl&amp;uuml;ssig und Synchron (Gibt zwar Kleinigkeiten, aber das sollte schnell gefixt sein)&lt;br /&gt; - Neuer Mapgenerator - Generiert nun bessere H&amp;ouml;hlen und kann nun auch die Tiles seperat generieren (Multithreading theoretisch m&amp;ouml;glich)&lt;br /&gt; - Neues Wassersystem - Schneller Floodfill (Erlaubt auch Luftblasen und Co). Geplant ist auch, dass Seen oberhalb des Wassers entstehen&lt;br /&gt; - Komponenntenbasiertes Objektsystem - Jedes Objekt wird in einer globalen XML Datei definiert und dessen Funktion.&lt;br /&gt; - Schnelleres Kollisionssystem - Alles kann mit allem kollidieren, dank eigenem Kollisionslayer in der Map.&lt;br /&gt; - Tilebasiertes Updating/Rendering: Es ist egal wieviele Objekte insgesamt vorhanden sind, es werden lediglich die Sichtbaren gezeichnet und geupdatet.&lt;br /&gt;&lt;br /&gt;Hier sind ein paar Bilder:&lt;br /&gt;&lt;a href=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic2_multiplayer.png&quot; target=&quot;_blank&quot;&gt;http://www.programming-with-de...player.png&lt;/a&gt;&lt;br /&gt;Multiplayer mit 4 Spielern erfolgreich und fl&amp;uuml;ssig (Gro&amp;szlig;es Bild, deswegen Url)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic3_palm_stacking_grass.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Spielerstapelung dank schnellem Kollisionssystem ohne weiteres m&amp;ouml;glich&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic4_2400palms.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;2400 Palmen ohne weiteres m&amp;ouml;glich.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://www.programming-with-design.at/files/Gestrandet/newgestrandet_pic5_water.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Dynamisches Wassersystem&lt;br /&gt;&lt;br /&gt;ToDo:&lt;br /&gt; - Zuviel alsdass ich es hier auflisten k&amp;ouml;nnte&lt;br /&gt;&lt;br /&gt;PS: Die Bilder aus den &amp;auml;lteren WLs sind leider offline gegangen, weil kilu meinte pl&amp;ouml;tzlich meinen account sperren zu m&amp;uuml;ssen...&lt;br /&gt;&lt;br /&gt;</description>
			<pubDate>Sat, 22 Oct 2011 12:24:27 +0200</pubDate>
		</item>

		<item>
			<title>Let's play Multiplayer!</title>
			<link>https://www.blitzforum.de/worklogs/335/#3035</link>
			<guid>https://www.blitzforum.de/worklogs/335/#3035</guid>
			<author>coolo</author>
			<description>Guten Tag!&lt;br /&gt;&lt;br /&gt;Da nun seit geraumer Zeit keine Meldung meinerseits gekommen ist, hole ich dies nun nach.&lt;br /&gt;&lt;br /&gt;Gestrandet hat inzwischen einige Neuerungen erfahren.&lt;br /&gt;&lt;br /&gt;*) Partikelsystem: Dies ist ein von Grund auf neu geschriebenes System. Es wird komplett via XML gesteuert, und im Lua-Code muss lediglich &amp;quot;StartParticleSystem(&amp;quot;NameDesSystems&amp;quot;)&amp;quot; stehen, ziemlich praktisch. Nat&amp;uuml;rlich kann jeder Particle eigens mit Lua gesteuert werden (Dies sollte allerdings mit bedacht eingesetzt werden, da dies schnell zu slowdowns f&amp;uuml;hren kann).&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://coolo.kilu.de/files/GestrandetNEW4.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt; &lt;br /&gt;(Und ja, das Feuer ist h&amp;auml;sslich... War lediglich ein &amp;quot;Funktionstest&amp;quot;)&lt;br /&gt;Hierbei sieht die particle.xml Datei folgenderma&amp;szlig;en aus: &lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox0&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('0')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox0&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('0')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox0&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('0');&quot;&gt;&amp;lt;particle&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;layer count=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;emitter name=&amp;quot;fire1&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;position x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; random=&amp;quot;2&amp;quot; /&amp;gt; &amp;lt;!-- Die relative Position, mit einer zufallsveraenderung von .4 --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startscale x=&amp;quot;2&amp;quot; y=&amp;quot;2&amp;quot; /&amp;gt; &amp;lt;!-- Start skalierung --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scaling x=&amp;quot;-0.02&amp;quot; y=&amp;quot;-0.02&amp;quot; random=&amp;quot;0&amp;quot; /&amp;gt; &amp;lt;!-- Die Skalierung welche hinzugefuegt wird --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;moving x=&amp;quot;0&amp;quot; y=&amp;quot;-4&amp;quot; random=&amp;quot;.8&amp;quot; /&amp;gt; &amp;lt;!-- Bewegung in die einzelnen x/y achsen --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startrotation value=&amp;quot;0&amp;quot; random=&amp;quot;360&amp;quot; /&amp;gt; &amp;lt;!-- Die start rotation --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;rotating value=&amp;quot;2&amp;quot; random=&amp;quot;.5&amp;quot; /&amp;gt; &amp;lt;!-- drehung, ohne zufall --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startalpha value=&amp;quot;1&amp;quot; random=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;fade value=&amp;quot;-0.025&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;lifetime value=&amp;quot;1000&amp;quot; /&amp;gt; &amp;lt;!-- wieviele ms gewartet werden, bis neue partikel erzuegt werden --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;count value=&amp;quot;3&amp;quot; /&amp;gt; &amp;lt;!-- wieviele partikel erzeugt werden --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;image name=&amp;quot;par_fire1&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/emitter&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;emitter name=&amp;quot;fire2&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;position x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; random=&amp;quot;2&amp;quot; /&amp;gt; &amp;lt;!-- Die relative Position, mit einer zufallsveraenderung von .4 --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startscale x=&amp;quot;2&amp;quot; y=&amp;quot;2&amp;quot; /&amp;gt; &amp;lt;!-- Start skalierung --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scaling x=&amp;quot;-0.02&amp;quot; y=&amp;quot;-0.02&amp;quot; random=&amp;quot;0&amp;quot; /&amp;gt; &amp;lt;!-- Die Skalierung welche hinzugefuegt wird --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;moving x=&amp;quot;0&amp;quot; y=&amp;quot;-4&amp;quot; random=&amp;quot;.8&amp;quot; /&amp;gt; &amp;lt;!-- Bewegung in die einzelnen x/y achsen --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startrotation value=&amp;quot;0&amp;quot; random=&amp;quot;360&amp;quot; /&amp;gt; &amp;lt;!-- Die start rotation --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;rotating value=&amp;quot;2&amp;quot; random=&amp;quot;.5&amp;quot; /&amp;gt; &amp;lt;!-- drehung, ohne zufall --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startalpha value=&amp;quot;1&amp;quot; random=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;fade value=&amp;quot;-0.035&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;lifetime value=&amp;quot;1000&amp;quot; /&amp;gt; &amp;lt;!-- wieviele ms gewartet werden, bis neue partikel erzuegt werden --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;count value=&amp;quot;4&amp;quot; /&amp;gt; &amp;lt;!-- wieviele partikel erzeugt werden --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;image name=&amp;quot;par_fire2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/emitter&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;emitter name=&amp;quot;fire3&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;position x=&amp;quot;0&amp;quot; y=&amp;quot;-50&amp;quot; random=&amp;quot;2&amp;quot; /&amp;gt; &amp;lt;!-- Die relative Position, mit einer zufallsveraenderung von .4 --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startscale x=&amp;quot;2&amp;quot; y=&amp;quot;2&amp;quot; /&amp;gt; &amp;lt;!-- Start skalierung --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scaling x=&amp;quot;-0.005&amp;quot; y=&amp;quot;-0.005&amp;quot; random=&amp;quot;0&amp;quot; /&amp;gt; &amp;lt;!-- Die Skalierung welche hinzugefuegt wird --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;moving x=&amp;quot;0&amp;quot; y=&amp;quot;-4&amp;quot; random=&amp;quot;.4&amp;quot; /&amp;gt; &amp;lt;!-- Bewegung in die einzelnen x/y achsen --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startrotation value=&amp;quot;0&amp;quot; random=&amp;quot;360&amp;quot; /&amp;gt; &amp;lt;!-- Die start rotation --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;rotating value=&amp;quot;2&amp;quot; random=&amp;quot;.5&amp;quot; /&amp;gt; &amp;lt;!-- drehung, ohne zufall --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startalpha value=&amp;quot;.5&amp;quot; random=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;fade value=&amp;quot;-0.01&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;lifetime value=&amp;quot;1000&amp;quot; /&amp;gt; &amp;lt;!-- wieviele ms gewartet werden, bis neue partikel erzuegt werden --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;count value=&amp;quot;1&amp;quot; /&amp;gt; &amp;lt;!-- wieviele partikel erzeugt werden --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;image name=&amp;quot;par_fire3&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/emitter&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;system name=&amp;quot;fire&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;event duration=&amp;quot;-1&amp;quot;&amp;gt; &amp;lt;!-- Ein Event, welches als erstes ausgefuehrt wird, die dauer betraegt -1 =&amp;gt; unendlich --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;emitter name=&amp;quot;fire3&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;emitter name=&amp;quot;fire2&amp;quot; /&amp;gt; &amp;lt;!-- Startet den emitter &amp;quot;fire2&amp;quot; --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;emitter name=&amp;quot;fire1&amp;quot; /&amp;gt; &amp;lt;!-- Startet den emitter &amp;quot;fire1&amp;quot; --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/event&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/system&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;emitter name=&amp;quot;snow&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;position x=&amp;quot;0&amp;quot; y=&amp;quot;-100&amp;quot; random=&amp;quot;50&amp;quot; /&amp;gt; &amp;lt;!-- Die relative Position, mit einer zufallsveraenderung von .4 --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startscale x=&amp;quot;2&amp;quot; y=&amp;quot;2&amp;quot; /&amp;gt; &amp;lt;!-- Start skalierung --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;moving x=&amp;quot;0&amp;quot; y=&amp;quot;2&amp;quot; random=&amp;quot;0&amp;quot; /&amp;gt; &amp;lt;!-- Bewegung in die einzelnen x/y achsen --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;startalpha value=&amp;quot;0.5&amp;quot; random=&amp;quot;0.2&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wait value=&amp;quot;1&amp;quot; /&amp;gt; &amp;lt;!-- wieviele ms gewartet werden, bis neue partikel erzuegt werden --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;count value=&amp;quot;1&amp;quot; /&amp;gt; &amp;lt;!-- wieviele partikel erzeugt werden --&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;image name=&amp;quot;par_snow&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;lifetime value=&amp;quot;2000&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;script onupdate=&amp;quot;0&amp;quot; oncreate=&amp;quot;0&amp;quot; ondelete=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.particle.snow = &amp;#123;&amp;#125;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;function game.particle.snow.onupdate&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ParticleSetPosition&amp;#40;ParticleGetPositionX&amp;#40;&amp;#41;+math.random&amp;#40;8&amp;#41;-4,ParticleGetPositionY&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if PointCollisionGameMap&amp;#40;game.map.id,ParticleGetPositionX&amp;#40;&amp;#41;,ParticleGetPositionY&amp;#40;&amp;#41;==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ParticleSetMove&amp;#40;0,0&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;function game.particle.snow.oncreate&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;ParticleSetPosition&amp;#40;math.random&amp;#40;WidthGameMap&amp;#40;game.map.id&amp;#41;&amp;#41;,0&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/emitter&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;system name=&amp;quot;snow&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;event duration=&amp;quot;-1&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;emitter name=&amp;quot;snow&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wait value=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/event&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/system&amp;gt;&lt;br /&gt;&amp;lt;/particle&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;*) Diverse Grafikeffekte: Unter anderem wurde nun der Tag/Nacht Wechsel erfolgreich eingebaut. Au&amp;szlig;erdem gibt es noch Wolken und Schatten vom Spieler (und B&amp;auml;ume, diese sehen aber im Moment eher weniger gut aus). Hier sind die einzelnen Tageszeiten zu sene (es wird nat&amp;uuml;rlich fl&amp;uuml;ssig zwischen den Farben interpoliert):&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://coolo.kilu.de/files/GestrandetNEW6.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;*) Einfaches Kombinationssystem: Also dies ist noch sehr in den Kinderschuhen, bis jetzt kann nur Stein+Ast=Hammer kombinieren. Bald sollte es noch Kombinationsevents geben. Das hei&amp;szlig;t, dass diverse Aktionen geschehen wenn ein bestimmtes Item kombiniert wird, oder man neue Items freischalten kann.&lt;br /&gt;Neue Kombinationen f&amp;uuml;gt man im Moment mit der Funktion &amp;quot;game.inventar.registercombi({GetLanguage(&amp;quot;stone&amp;quot;), GetLanguage(&amp;quot;branch&amp;quot;)},GetLanguage(&amp;quot;hammer&amp;quot;))&amp;quot; GetLanguage() ist da, weil das ganze Spiel 100% lokalisierbar ist.&lt;br /&gt;&lt;br /&gt;*) &lt;b&gt;Multiplayer&lt;/b&gt;: Zuerst wollte ich mir hierf&amp;uuml;r eine eigene Netzwerklibrary schreiben. Jedoch scheiterte dies, beim Versuch auch sicher Nachrichten versenden zu k&amp;ouml;nnen. Danach bin ich auf XNet gesto&amp;szlig;en. Zuallererst lief alles wunderbar, der &amp;quot;rudiment&amp;auml;re&amp;quot; MP Modus, war nach einem Tag eingebaut (jedoch mit etlichen bugs).&lt;br /&gt;Jedoch als ich die Daten sicher via SendSecureMessage versenden wollte, st&amp;uuml;rzte das Programm ohne offensichtlichen Grund ab. Diesen Fehler habe ich bis heute nicht l&amp;ouml;sen k&amp;ouml;nnen. Mein Ziel ist es Gestrandet mit bis zu sechs Spielern fl&amp;uuml;ssig gleichzeitig im Internet spielen zu k&amp;ouml;nnen, mal schauen ob ich das Ziel erreiche.&lt;br /&gt;Der Multiplayer Modus hat jedoch noch ziemlich viele Sch&amp;ouml;nheitsfehler. Folgende (welche hoffentlich bald gefixt werden) Fehler gibt es:&lt;br /&gt; * Spiel startet nicht gleichzeitig (wodurch alle Bewegungen, welche zuvor vom Host ausgef&amp;uuml;hrt wurden, vom Client &amp;quot;ignoriert&amp;quot; werden)&lt;br /&gt; * Mapver&amp;auml;nderungen werden nicht synchronisiert (wodurch es zu argen Problemen kommen kann)&lt;br /&gt; * Update/Zeichen Reihenfolge wird von synchronisierten Objekten nicht beachtet.&lt;br /&gt; * Beim anhalten des programmes (Klick auf Titelleiste des Programmes) geschehen undefinierte Dinge.&lt;br /&gt; * &amp;Uuml;bertragen der Scripte nicht vorhanden.&lt;br /&gt;&lt;br /&gt;Trotz all dem, bin ich recht froh, dass der Multiplayer bereits so rudiment&amp;auml;r funktioniert.&lt;br /&gt;&lt;br /&gt;</description>
			<pubDate>Thu, 25 Nov 2010 22:08:50 +0100</pubDate>
		</item>

		<item>
			<title>Viecher und so!</title>
			<link>https://www.blitzforum.de/worklogs/335/#2979</link>
			<guid>https://www.blitzforum.de/worklogs/335/#2979</guid>
			<author>coolo</author>
			<description>&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://coolo.kilu.de/files/GestrandetNEW2.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;GEILE GRAFIK&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://coolo.kilu.de/files/GestrandetNEW3.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Tolles Inventar!&lt;br /&gt;&lt;br /&gt;Hallo!&lt;br /&gt;In den letzten Tagen habe ich an diversen Dingen gearbeitet. Unter anderem sind die ersten Tiere drinnen.&lt;br /&gt;Die Schnecke (OHA) und der Schmetterling (Supertoll!).&lt;br /&gt;Beide waren recht simpel zu programmieren. Wobei hier noch etwas an Verbesserungsbedarf besteht. Die beiden Tiere starten oft an einer ung&amp;uuml;nstigen Stelle, wo sie sich nicht fortbewegen k&amp;ouml;nnen.&lt;br /&gt;&lt;br /&gt;Nebenbei habe ich die ersten drei Rohstoffe eingebaut: Stein, Blatt und Ast. Die drei werden (bis jetzt) beim start zuf&amp;auml;llig verteilt sein. In Zukunft sollen Steine beim Graben ins Terrain gefunden werden, &amp;Auml;ste und Bl&amp;auml;tter beim f&amp;auml;llen eines Baumes.&lt;br /&gt;&lt;br /&gt;Au&amp;szlig;erdem habe ich an kleineren grafischen Gimmicks gearbeitet. Der Rote Hintergrund wurde nun durch einen blau-hellblau Verlauf ersetzt, das Terrain hat Grasb&amp;uuml;schel und der Spieler hat ein Gesicht bekommen (inkl. h&amp;auml;sslicher Gehanimation). Bald kommen hier nat&amp;uuml;rlich andere Sachen hinzu, wie verschiedene Vegetation, div. Partikeleffekte und so der ganze Kram.&lt;br /&gt;&lt;br /&gt;Zus&amp;auml;tzlich habe ich ein rudiment&amp;auml;res Inventar eingebaut. Im Gegensatz zu Stranded2 ist dieses in Kategorien eingeteilt, sodass der Spieler einen viel besseren &amp;Uuml;berblick hat. &lt;br /&gt;&lt;br /&gt;Das Objekt&amp;lt;-&amp;gt;Spieler Kollisionssystem wurde stark optimiert. Dieses &amp;uuml;berpr&amp;uuml;ft nur jene Palmen, welche auch einer Kollision in Frage kommen. Dadurch habe ich 5-6FPS gespart, da davor alle Palmen &amp;uuml;berpr&amp;uuml;ft wurden.</description>
			<pubDate>Mon, 25 Oct 2010 23:31:51 +0200</pubDate>
		</item>

		<item>
			<title>Rewrite 3!</title>
			<link>https://www.blitzforum.de/worklogs/335/#2973</link>
			<guid>https://www.blitzforum.de/worklogs/335/#2973</guid>
			<author>coolo</author>
			<description>Guten Abend!&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://coolo.kilu.de/files/GestrandetNEW1.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;(Damit mir nicht gleich alle wegrennen :&amp;gt;, und ja das Rot kommt weg)&lt;br /&gt;&lt;br /&gt;Ich melde mich zur&amp;uuml;ck, da ich nun vom Compilerbauen erstmal genug habe. Und ich nicht unt&amp;auml;tig da sitzen will, habe ich mich gleich dazu entschlossen Gestrandet neu anzufangen. Die C# Version war leider nicht mehr praktikabel f&amp;uuml;r mich, da es leider nicht auf Mac OS X  lauff&amp;auml;hig ist (wegen ZweiDe).&lt;br /&gt;Naja erstmal habe ich mir den Sourcecode angesehen und musste leider feststellen dass ich doch viele Design-Fehlentscheidungen hatte. Unter anderem war die Lua Script Anbindung sehr schlampig implementiert. Das hei&amp;szlig;t es war ziemlich viel Arbeit neue Lua Scripte zu machen.&lt;br /&gt;&lt;br /&gt;Danach habe ich einen Rewrite angefangen. Dieser ist bereits weiter (au&amp;szlig;er in einem Punkt) als die alte Version. Dieser hat einen sauber programmierten Lua Kern. Das hei&amp;szlig;t dass jedes Objekt mit jedem Objekt kommunizieren kann. Durch XML kann man auch weitere Einstellungen vornehmen. Im Moment ist ALLES ver&amp;auml;nderbar. &lt;br /&gt;&lt;br /&gt;Naja f&amp;uuml;r die die die (whoa 3 die's hintereinander) ersten Eintr&amp;auml;ge nicht gelesen haben. Gestrandet ist ein &amp;Uuml;berlebensspiel auf einer einsamen Insel. Hierbei muss man &amp;uuml;berleben und schauen m&amp;ouml;glichst lange zu &amp;uuml;berleben. Das Ziel ist es von der Insel wegzukommen. Nebenbei kann man durch ein gro&amp;szlig;es Arsenal an Waffen (welche man sich selber bauen kann) bestimmte Dinge tun. Einerseits kann man Tiere abschie&amp;szlig;en, B&amp;auml;ume um deren Fr&amp;uuml;chte erleichtern oder einfach nur alles niedermetzeln, was einem in die Quere kommt &lt;img src=&quot;/forum/images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; /&gt;. Au&amp;szlig;erdem sollte man sich ein Lager bauen ( Eventuell in einer H&amp;ouml;hle, am Wasser(=Hausboot) oder drau&amp;szlig;en auf einem Baum (=Baumhaus)), denn in der Nacht kommen allerlei mysteri&amp;ouml;se Kreaturen auf. Am Tag ist es auch nicht ganz ungef&amp;auml;hrlich, da der L&amp;ouml;we auch hungrig ist. Wie man sieht gibt es dutzende M&amp;ouml;glichkeiten. Eventuell wird es auch einen Mehrspielermodus geben, dies ist allerdings nicht sicher.&lt;br /&gt;&lt;br /&gt;Das Wasser ist auch eines meiner Prachtst&amp;uuml;cke - basierend auf dem Wellensystem von Noobody (danke &amp;uuml;brigens) -habe ich mir sowas gebaut (nat&amp;uuml;rlich 100% in Lua). Der Kartengenerator generiert auch bereits sehr h&amp;uuml;bsche Maps (mit H&amp;ouml;hlen, Himmelsinseln usw.).&lt;br /&gt;&lt;br /&gt;Anders als dessen Vorg&amp;auml;nger, wird es keinen Mapeditor geben. Jede Karte wird zuf&amp;auml;llig generiert. Dies hat den Vorteil, dass ich weniger Arbeit habe (hrr hrr) und dass Spieler jedes mal ein anderes Spielgef&amp;uuml;hl haben. Das hei&amp;szlig;t aber auch, dass es sehr gro&amp;szlig;e Spielewelten geben kann.&lt;br /&gt;&lt;br /&gt;Bereits eingebaute Features:&lt;br /&gt;-&amp;gt; Zerst&amp;ouml;rbare und Skinbare Landschaft&lt;br /&gt;-&amp;gt; Spieler Beweg Dingsi&lt;br /&gt;-&amp;gt; Objektverwaltung&lt;br /&gt;-&amp;gt; Objekt&amp;lt;-&amp;gt;Objekt/Objekt&amp;lt;-&amp;gt;Terrain Kollision&lt;br /&gt;-&amp;gt; Lokalisierung&lt;br /&gt;-&amp;gt; Wasser inkl. Wellenberechnung&lt;br /&gt;-&amp;gt; Hochdynamische Levelgenerierung&lt;br /&gt;-&amp;gt; Bed&amp;uuml;rfnisse&lt;br /&gt;-&amp;gt; GUI&lt;br /&gt;-&amp;gt; Palmen (OHA)&lt;br /&gt;-&amp;gt; Partikelengine&lt;br /&gt;-&amp;gt; Speichern/Laden&lt;br /&gt;&lt;br /&gt;ToDo:&lt;br /&gt;-&amp;gt; Viele Objekte&lt;br /&gt;-&amp;gt; Viele Tiere&lt;br /&gt;-&amp;gt; Viele andere Dinge die gescriptet werden m&amp;uuml;ssen (Ebbe/Flut, Tag/Nacht, ...)&lt;br /&gt;-&amp;gt; Onlinemodus (alles ist so aufgebaut, dass es eigentlich leicht sein m&amp;uuml;sste dies einzubauen)&lt;br /&gt;-&amp;gt; Animationssystem&lt;br /&gt;-&amp;gt; Lua Funktionen implementieren&lt;br /&gt;-&amp;gt; Eventuell Licht/Schatten System (um Tag/Nacht korrekt darstellen zu k&amp;ouml;nnen) &lt;br /&gt;-&amp;gt; Wegfindung&lt;br /&gt;-&amp;gt; Kombinationssystem&lt;br /&gt;-&amp;gt; Itemtasche&lt;br /&gt;-&amp;gt; &lt;br /&gt;-&amp;gt; und (leider) vieles mehr&lt;br /&gt;&lt;br /&gt;PS: Grafiker sind sehr gerne gesehen und gew&amp;uuml;nscht ;D.</description>
			<pubDate>Thu, 21 Oct 2010 20:48:19 +0200</pubDate>
		</item>

		<item>
			<title>Lauf C#, Lauf!</title>
			<link>https://www.blitzforum.de/worklogs/335/#2467</link>
			<guid>https://www.blitzforum.de/worklogs/335/#2467</guid>
			<author>coolo</author>
			<description>Hallo, Gestrandet ist tot.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nein ist es nat&amp;uuml;rlich nicht. Ich werde es komplett neu schreiben. Diesmal allerdings nicht in BlitzMax sondern in C# mit der sagenhaften ZweiDe von Fetze.&lt;br /&gt;&lt;br /&gt;Wieso dieser wechsel? Ganz einfach: Ich will neue Sachen ausprobieren, und nicht immer dasselbe. Au&amp;szlig;erdem habe ich das Gef&amp;uuml;hl dass es in C# &amp;quot;sauberer&amp;quot; ist. Also keine schmutzige Globale Variablen etc.&lt;br /&gt;&lt;br /&gt;Tja und da diese Worklogs nur f&amp;uuml;r BB/BMax Sachen ist, wird dieser nat&amp;uuml;rlich nicht mehr verwendet...</description>
			<pubDate>Wed, 02 Jun 2010 22:04:38 +0200</pubDate>
		</item>

		<item>
			<title>Wegfindung ftw!</title>
			<link>https://www.blitzforum.de/worklogs/335/#2266</link>
			<guid>https://www.blitzforum.de/worklogs/335/#2266</guid>
			<author>coolo</author>
			<description>Hallo meine treuen (oder auch nicht so treuen ...) Leser!&lt;br /&gt;&lt;br /&gt;Nun m&amp;ouml;chte ich ein kleines Wort &amp;uuml;ber ein Thema sprechen welches mir ausgesprochen Anspruchsvoll erscheint, n&amp;auml;mlich das Wegfinden eines nicht gesteuerten Spielers.&lt;br /&gt;&lt;br /&gt;Doch warum zur H&amp;ouml;lle sollte ich sowas machen wollen, es geht doch nur um _einen_ Gestrandeten? Es geht eben nicht um einen Gestrandeten. Ich werde es hier mehr wie in &amp;quot;Die Sims&amp;quot; machen, dass es mehrere Charaktere auf einer Insel gibt. Doch ist nur einer dieser Charaktere wirklich spielbar das hei&amp;szlig;t dass die anderen Charaktere halbwegs sinnvoll von A nach B kommen m&amp;uuml;ssen.&lt;br /&gt;Au&amp;szlig;erdem w&amp;auml;re es nicht schlecht wenn es die M&amp;ouml;glichkeit g&amp;auml;be einem Gef&amp;auml;hrten bestimmte Aufgaben zu geben wir (sammle Holz, mache Feuer oder gehe Jagen) sowas w&amp;uuml;rde eine Erleichterung f&amp;uuml;r den Spieler sein. Au&amp;szlig;erdem w&amp;auml;re es m&amp;ouml;glich ein Eingeborenen Dorf zu erstellen welches sich autonom mit Nahrungsmittel versorgen kann, quasi eine eigene kleine Welt. Aber das ist reine Zukunftmusik, w&amp;auml;re allerdings sehr interessant zu implementieren.&lt;br /&gt;&lt;br /&gt;Tja im Prinzip w&amp;auml;re das eine leichte Angelegenheit, wenn die Karte nur aus einer Ebene besteht. Aber leider ist sie das nicht.  Es gibt viele Krater und Hindernisse. Darum muss ein Wegfindungs Algorithmus her, und diesen versuche ich euch n&amp;auml;her zu bringen. Eines vorweg dieser Algorithmus ist noch nicht implementiert, ich werde versuchen diesen in haher Zukunft zu implementieren. Schwierig wird es vorallem dann, wenn w&amp;auml;hrend man zum Ziel geht sich etwas in den Weg stellt (eine Krater entsteht oder so) weil da der gesamte Algorithmus neu berechnet werden muss.&lt;br /&gt;&lt;br /&gt;Als erstes habe ich mir die Karte angeschaut. Eine Karte besteht im Prinzip aus &amp;quot;fest&amp;quot; und &amp;quot;nicht fest&amp;quot; das hei&amp;szlig;t es ist eigentlich eine Tilemap welche aus 1*1 gro&amp;szlig;e Tiles besteht. Doch leider gibt es so gut wie keinen Wegfindungs Algorthmus der in solch gro&amp;szlig;en Abst&amp;auml;nden halbwegs schnell den Weg findet. Das hei&amp;szlig;t die Karte muss &amp;quot;ungenauer&amp;quot; gemacht werden damit ein halbwegs schneller Wegfindungs Algorithmus m&amp;ouml;glich ist. Danach kann man einen normalen A* Wegfindungs Algorthmus verwenden, wobei jedes Tile seine eigenen Wert hat (in der Luft fliegen &amp;quot;kostet&amp;quot; mehr als an Land gehen) dadurch entsteht automatisch die Eigenschaft dass nur dann gesprungen wird, sobald es WIRKLICh notwendig ist, da ja das Springen kostet.&lt;br /&gt;&lt;br /&gt;Ja im Prinzip ist das der Algorthmus, wie ich die Karte ungenauer mache werde ich mir noch &amp;uuml;berlegen, wahrscheinlich wird sie einfach in eine 8*8 gro&amp;szlig;e Matrix aufgeteilt und wenn mehr als 8 Pixel in diesem Quadrat fest sind, ist dieser Punkt auch Fest ansonsten ist er nicht fest.&lt;br /&gt;&lt;br /&gt;Ich hoffe das war nun nicht zuviel Text &lt;img src=&quot;/forum/images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; /&gt;&lt;br /&gt;</description>
			<pubDate>Wed, 07 Apr 2010 10:41:54 +0200</pubDate>
		</item>

		<item>
			<title>Es werde Licht!</title>
			<link>https://www.blitzforum.de/worklogs/335/#2252</link>
			<guid>https://www.blitzforum.de/worklogs/335/#2252</guid>
			<author>coolo</author>
			<description>Hallo,&lt;br /&gt;&lt;br /&gt;nun habe ich mich einem Effekt gewidmet, der eigentlich recht simpel ist. Es geht um das Beleuchtungssystem, welches besonders in der Nacht zur Geltung kommt.&lt;br /&gt;Das hei&amp;szlig;t als n&amp;auml;chstes kommt das Uhrzeit System.&lt;br /&gt;&lt;br /&gt;Im Prinzip ist es einfach, also Shadeblend setzen, Bild zeichnen fertig. War es praktisch eigentlich auch. Ich musste allerdings aufpassen dass das HUD(nicht HID ;&amp;gt;) nicht auch einen Schatteneffekt bekommt.&lt;br /&gt;&lt;br /&gt;Das hei&amp;szlig;t es gibt 10 neue Befehle:&lt;br /&gt;lightSetAmbient(r,g,b,Alpha) -- Setzt die Globale Beleuchtung&lt;br /&gt;lightCreate(x,y,radius) -- Erzeugt ein Licht&lt;br /&gt;lightRemove(id) -- L&amp;ouml;scht ein Licht&lt;br /&gt;lightPosition(id,x,y) -- Setzt die Position von einem Licht&lt;br /&gt;lightSetRange(id,range) -- Setzt den Licht Radius&lt;br /&gt;lightSetColor(id,r,g,b) -- Setzt die Licht Farbe&lt;br /&gt;lightrender() -- Rendert alle sichtbaren Lichter&lt;br /&gt;lightShow(id) -- zeigt ein Licht&lt;br /&gt;lightHide(id) -- Versteckt ein Licht&lt;br /&gt;isTemplate(id) -- Gibt zur&amp;uuml;ck ob ein objekt ein Template ist, also quasi eine Schablone&lt;br /&gt;&lt;br /&gt;Edit: Da habe ich fast vergessen ein Bild zu machen: &lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://coolo.kilu.de/files/Gestrandet3.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mfg&lt;br /&gt;Robert</description>
			<pubDate>Fri, 02 Apr 2010 11:18:52 +0200</pubDate>
		</item>

		<item>
			<title>Was schon wieder ein Spiel von Coolo...?</title>
			<link>https://www.blitzforum.de/worklogs/335/#2247</link>
			<guid>https://www.blitzforum.de/worklogs/335/#2247</guid>
			<author>coolo</author>
			<description>&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://coolo.kilu.de/files/Image6791359.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Damit mir die Benutzer nicht davonlaufen &lt;img src=&quot;/forum/images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; /&gt;.&lt;br /&gt;Das HUD ist nat&amp;uuml;rlich 100% geskriptet, die Zeit Anzeige Rechts ist noch Leer, wird aber bald ge&amp;auml;ndert.&lt;br /&gt;Der Spieler ist noch eine Ellipse weil ich keine Spieler Grafik zur Hand habe.&lt;br /&gt;&lt;br /&gt;Hallo,&lt;br /&gt;nunja hier wieder ein Worklog von mir. Diesmal ist es kein klon von einem Spiel, nein es ist ein Klon von ZWEI Spielen!&lt;br /&gt;&lt;br /&gt;Die erste Frage welche ihr euch bestimmt als erstes stellt ist, was wurde aus &lt;a href=&quot;https://www.blitzforum.de/worklogs/307/&quot; target=&quot;_blank&quot;&gt;Dark Jump&lt;/a&gt;? Nunja die Engine selber ist zu 95% fertig und es fehlt lediglich Inhalt, aber da ich im Grafiken (und vorallem Animationen) erstellen eine Null bin ist es vorerst auf Eis gelegt.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Was ist Gestrandet?&lt;/b&gt; Gestrandet ist eine Mischung aus Stranded (Vorallem die zweite Version) und CarnageContest. Das Spiel ansich wird also quasi eine &amp;Uuml;berlebenssimulation im Worms Style sein. Einen Multiplayer Modus wird es mit Sicherheit nicht geben, weshalb kommt sp&amp;auml;ter.&lt;br /&gt;Au&amp;szlig;erdem ist es im Gegensatz zu Strande&lt;b&gt;d&lt;/b&gt; mehr auf Action setzen, das hei&amp;szlig;t man wird um einiges &amp;ouml;fter von wilden Tieren angegriffen usw (Der L&amp;ouml;we l&amp;auml;sst gr&amp;uuml;&amp;szlig;en ;&amp;gt;). Das kam mir in Stranded2 einwenig zu kurz.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Die Geschichte von Gestrandet&lt;/b&gt; Vor einem Jahr, als ich ein junger H&amp;uuml;pfer war *hust*, hatte ich einige Gedanken &amp;uuml;ber ein Stranded2 in 2D. Also quasi ein Stranded2D &lt;img src=&quot;/forum/images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; /&gt;. Also gedacht getan habe ich mich hingesetzt und mit BB einige Tests durchgef&amp;uuml;hrt. Doch leider waren dieser nicht sehr vielversprechend, vorallem die Tatsache dass es mir zu wenig &amp;quot;eigenst&amp;auml;ndig&amp;quot; war, es sollte eben kein billiger Stranded/Schiffbruch Klon sein.&lt;br /&gt;Doch nun vor 2 1/2 Monaten kam mir wieder der Gedanke- mitten in einem CarnageContest Match - das es doch Super w&amp;auml;re wenn es ein CarnageStranded g&amp;auml;be. Gesagt getan zuerst habe ich mir einem MapLib geschrieben welche zerst&amp;ouml;rbare Terrains unterst&amp;uuml;tzt (das Bild wird in kleine 96*96 gro&amp;szlig;e Einzelbilder zerlegt). Danach habe ich mir SimpleScriptMax hergenommen und implementiert. Doch hier der erste R&amp;uuml;ckschlag Simple Script Max war schon bei wenigen Objekten (20-30) einfach zu langsam, es war nicht ertr&amp;auml;glich was nat&amp;uuml;rlich f&amp;uuml;r mich als Entwickler weniger gut war. Somit habe ich mich schweren Herzens dazu entschlossen Lua zu verwenden (auch wenn ich immernoch ein wenig abgeneigt bin von dieser Sprache). Tja dann nahmen die Dinge ihren Lauf, der Mapeditor ist entstanden (noch in einer sehr fr&amp;uuml;hen Phase) usw.&lt;br /&gt;Nun ist es soweit, dass es bereits ans Content erstellen geht (also den Grundstock) und den Mapeditor ausbauen(kann im Moment nur Objekte plazieren).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Die Technik von Gestrandet&lt;/b&gt; &lt;br /&gt;&lt;ul&gt;Gestrandet hat eine zerst&amp;ouml;rbare Karte auf Pixel Basis. Das hei&amp;szlig;t man kann wie in Worms die gesamte Landschaft zerst&amp;ouml;ren, anmalen whatever. Au&amp;szlig;erdem wird die Map automatisch texturiert.&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Gestrandet basiert zu 99.9% auf Lua Scripts, der Spieler selbst ist ein Lua Script. Verwaltet werden die Scripts allerdings von der Spiel Engine&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Einfachere Definitionen werden in der game.def festgelegt, hier werden au&amp;szlig;erdem die Scripts usw. deklariert&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Vollkommen Sprachunabh&amp;auml;ngig das Spiel selber hat Language Paks welche die Sprache beinhalten, im Moment ist eine Deutsche und Englische Version geplant.&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Dynamische Player Controller Engine, das sind die Figuren welche sich Bewegen k&amp;ouml;nnen, es wird au&amp;szlig;erdem geplant sein dass es Physik objekte geben wird(simple Physik also)&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Eigens Programmierte GUI und Partikel System&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Schon &amp;uuml;ber 150 Lua Skript Befehle (decken praktisch alles ab was man braucht)&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Mapeditor zum einfachen platzieren von Objekten usw.&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Speichern Laden Routine (sehr langweilig zu implementieren &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt;)&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Auf meiner ToDo Liste stehen noch &amp;uuml;ber 25 Dinge aber folgende Sachen m&amp;ouml;chte ich in naher Zukunft schaffen:&lt;br /&gt;&lt;ul&gt;Basis Objekte implementieren (Unterschlupf, Tiere usw)&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Licht System (aber ohne Schatten)&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Physik Objekte&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Lua Funktionen fertig implementieren&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Mapeditor benutzbarer machen&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;Animationssystem&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Hier ist noch ein Bild aus einer &amp;auml;lteren Version:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://coolo.kilu.de/files/Image22535458.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hier das Skript f&amp;uuml;r die Palmen:&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox1&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('1')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox1&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('1')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox1&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('1');&quot;&gt;game.palm=&amp;#123;&amp;#125;&lt;br /&gt;palmImage1=TImage.create&amp;#40;&amp;#41;&lt;br /&gt;palmImage1&amp;#58;loadFromIni&amp;#40;&amp;quot;palm1&amp;quot;&amp;#41;&lt;br /&gt;palmImage1&amp;#58;handle&amp;#40;32,92&amp;#41;&lt;br /&gt;&lt;br /&gt;palmImage2=TImage.create&amp;#40;&amp;#41;&lt;br /&gt;palmImage2&amp;#58;loadFromIni&amp;#40;&amp;quot;palm2&amp;quot;&amp;#41;&lt;br /&gt;palmImage2&amp;#58;handle&amp;#40;32,116&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function game.palm.update&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;local move=false&lt;br /&gt;&amp;nbsp; &amp;nbsp;while checkMapCollision&amp;#40;getX&amp;#40;id&amp;#41;,getY&amp;#40;id&amp;#41;&amp;#41;==0 do&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setY&amp;#40;id,getY&amp;#40;id&amp;#41;+1&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;move=true&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if move then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.rotation=getMapAngle&amp;#40;getX&amp;#40;id&amp;#41;,getY&amp;#40;id&amp;#41;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;--im Wind wiegen&lt;br /&gt;&amp;nbsp; &amp;nbsp;if game.palm&amp;#91;id&amp;#93;.winddir==0 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.wind=game.palm&amp;#91;id&amp;#93;.wind+.1&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif game.palm&amp;#91;id&amp;#93;.winddir==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.wind=game.palm&amp;#91;id&amp;#93;.wind-.1&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if game.palm&amp;#91;id&amp;#93;.wind&amp;gt;10 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.winddir=1&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif game.palm&amp;#91;id&amp;#93;.wind&amp;lt;-10 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.winddir=0&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function game.palm.render&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;local selectImage=palmImage1&lt;br /&gt;&amp;nbsp; &amp;nbsp;local x=getObjectRelativeX&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;local y=getObjectRelativeY&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;info=game.palm&amp;#91;id&amp;#93;.palm&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;if info==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;selectImage=palmImage1&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif info==2 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;selectImage=palmImage2&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;selectImage&amp;#58;position&amp;#40;x,y&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;selectImage&amp;#58;setRotation&amp;#40;game.palm&amp;#91;id&amp;#93;.rotation+game.palm&amp;#91;id&amp;#93;.wind&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;selectImage&amp;#58;draw&amp;#40;&amp;#41;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function game.palm.create&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;local palmtyp&lt;br /&gt;&amp;nbsp; &amp;nbsp;if getName&amp;#40;id&amp;#41;==&amp;quot;palm1&amp;quot; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;palmtyp=1&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif getName&amp;#40;id&amp;#41;==&amp;quot;palm2&amp;quot; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;palmtyp=2&lt;br /&gt;&amp;nbsp; &amp;nbsp;end &lt;br /&gt;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;=&amp;#123;&amp;#125;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;=&amp;#123;wind=0, winddir=0,rotation=0,palm=palmtyp&amp;#125;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function game.palm.load&amp;#40;id&amp;#41; --Wird beim laden aufgerufen&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;=&amp;#123;&amp;#125;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;=&amp;#123;wind=0, winddir=0,rotation=0,palm=palmtyp&amp;#125;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.wind=loadNumber&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.winddir=loadNumber&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.rotation=loadNumber&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.palm&amp;#91;id&amp;#93;.palm=loadNumber&amp;#40;&amp;#41;&lt;br /&gt;end&lt;br /&gt;function game.palm.save&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;saveNumber&amp;#40;game.palm&amp;#91;id&amp;#93;.wind&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;saveNumber&amp;#40;game.palm&amp;#91;id&amp;#93;.winddir&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;saveNumber&amp;#40;game.palm&amp;#91;id&amp;#93;.rotation&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;saveNumber&amp;#40;game.palm&amp;#91;id&amp;#93;.palm&amp;#41;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function game.palm.remove&amp;#40;id&amp;#41;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function game.palm.editorRender&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;local selectimage&lt;br /&gt;&amp;nbsp; &amp;nbsp;if getEditorSelect&amp;#40;&amp;#41;==&amp;quot;palm1&amp;quot; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;selectImage=palmImage1&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif getEditorSelect&amp;#40;&amp;#41;==&amp;quot;palm2&amp;quot; then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;selectImage=palmImage2&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;local x=mouseX&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;local y=mouseY&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;while checkMapCollision&amp;#40;x+getScrollX&amp;#40;&amp;#41;,y+getScrollY&amp;#40;&amp;#41;&amp;#41;==0 do&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;y=y+1&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;rot=getMapAngle&amp;#40;x+getScrollX&amp;#40;&amp;#41;,y+getScrollY&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;selectImage&amp;#58;setRotation&amp;#40;rot&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;selectImage&amp;#58;setAlpha&amp;#40;.7&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;selectImage&amp;#58;position&amp;#40;x,y&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;selectImage&amp;#58;draw&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;setX&amp;#40;id, x+getScrollX&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;if mouseHit&amp;#40;1&amp;#41;==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setX&amp;#40;id,getScrollX&amp;#40;&amp;#41;+mouseX&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;setY&amp;#40;id,getScrollY&amp;#40;&amp;#41;+mouseY&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return 1&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;return 0&lt;br /&gt;end&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Und hier f&amp;uuml;r den Spieler:&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox2&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('2')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox2&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('2')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox2&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('2');&quot;&gt;game.player=&amp;#123;&amp;#125;&lt;br /&gt;hunger=100.0&lt;br /&gt;thirst=100.0&lt;br /&gt;energy=100.0&lt;br /&gt;comfort=100.0&lt;br /&gt;life=100.0&lt;br /&gt;&lt;br /&gt;needWindow=guiCreateWindow&amp;#40;&amp;#41;&lt;br /&gt;guiSetGadget&amp;#40;needWindow,0,0,155,86&amp;#41;&lt;br /&gt;hungerGadget=guiCreateRow&amp;#40;needWindow,getLanguage&amp;#40;&amp;quot;hunger&amp;quot;&amp;#41;&amp;#41;&lt;br /&gt;guiSetRowColor&amp;#40;hungerGadget,255,0,0&amp;#41;&lt;br /&gt;&lt;br /&gt;thirstGadget=guiCreateRow&amp;#40;needWindow,getLanguage&amp;#40;&amp;quot;thirst&amp;quot;&amp;#41;&amp;#41;&lt;br /&gt;guiSetRowColor&amp;#40;thirstGadget,0,0,255&amp;#41;&lt;br /&gt;&lt;br /&gt;energyGadget=guiCreateRow&amp;#40;needWindow,getLanguage&amp;#40;&amp;quot;energy&amp;quot;&amp;#41;&amp;#41;&lt;br /&gt;guiSetRowColor&amp;#40;energyGadget,0,255,0&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;comfortGadget=guiCreateRow&amp;#40;needWindow,getLanguage&amp;#40;&amp;quot;comfort&amp;quot;&amp;#41;&amp;#41;&lt;br /&gt;guiSetRowColor&amp;#40;comfortGadget,255,0,255&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;lifeGadget=guiCreateRow&amp;#40;needWindow,getLanguage&amp;#40;&amp;quot;life&amp;quot;&amp;#41;&amp;#41;&lt;br /&gt;guiSetRowColor&amp;#40;lifeGadget,0,255,255&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function game.player.update&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;scrollToPosition&amp;#40;getX&amp;#40;id&amp;#41;-getScreenWidth&amp;#40;&amp;#41;/2,getY&amp;#40;id&amp;#41;-getScreenHeight&amp;#40;&amp;#41;/2&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;if keyDown&amp;#40;KEY_LEFT&amp;#41;==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;controllerGoLeft&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif keyDown&amp;#40;KEY_RIGHT&amp;#41;==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;controllerGoRight&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if keyHit&amp;#40;KEY_SPACE&amp;#41;==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;controllerGoJump&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if currentGameState&amp;#40;&amp;#41;==2 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.player.updateInEditor&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.player.updateInGame&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;x=getX&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;calculateMovement&amp;#40;id&amp;#41;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function game.player.render&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;local x=getObjectRelativeX&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;local y=getObjectRelativeY&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;setColor&amp;#40;255,0,0&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;drawOval&amp;#40;x+1,y+1,8,32&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;setColor&amp;#40;255,255,255&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;if currentGameState&amp;#40;&amp;#41;==2 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.player.renderInEditor&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.player.renderInGame&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if mouseDown&amp;#40;1&amp;#41;==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.player&amp;#91;id&amp;#93;.toX=tonumber&amp;#40;&amp;#40;mouseX&amp;#40;&amp;#41;+getScrollX&amp;#40;&amp;#41;&amp;#41;/2&amp;#41;*2&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;game.player&amp;#91;id&amp;#93;.toY=tonumber&amp;#40;&amp;#40;mouseY&amp;#40;&amp;#41;+getScrollY&amp;#40;&amp;#41;&amp;#41;/2&amp;#41;*2&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function game.player.create&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;createController&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;controllerSetSpeed&amp;#40;id, 2&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;controllerSetMaxJump&amp;#40;id, 18&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.player&amp;#91;id&amp;#93;=&amp;#123;toX=0,toY=0,dir=0,jump=0&amp;#125;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function game.player.load&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.player.create&amp;#40;id&amp;#41;&lt;br /&gt;end&lt;br /&gt;function game.player.save&amp;#40;id&amp;#41;&lt;br /&gt;end&lt;br /&gt;function game.player.remove&amp;#40;id&amp;#41;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function game.player.updateInEditor&amp;#40;id&amp;#41;&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;function game.player.renderInEditor&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;guiHideGadget&amp;#40;needWindow&amp;#41;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function game.player.updateInGame&amp;#40;id&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;--Bed&amp;uuml;rfnisse umrechnen&lt;br /&gt;&amp;nbsp; &amp;nbsp;relHunger=hunger/100.0*150.0&lt;br /&gt;&amp;nbsp; &amp;nbsp;guiSetGadget&amp;#40;hungerGadget,2,2,relHunger,14&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;relThirst=thirst/100.0*150.0&lt;br /&gt;&amp;nbsp; &amp;nbsp;guiSetGadget&amp;#40;thirstGadget,2,18,relThirst,14&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;relEnergy=energy/100.0*150.0&lt;br /&gt;&amp;nbsp; &amp;nbsp;guiSetGadget&amp;#40;energyGadget,2,18+14+2,relEnergy,14&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;relComfort=comfort/100.0*150.0&lt;br /&gt;&amp;nbsp; &amp;nbsp;guiSetGadget&amp;#40;comfortGadget,2,18+14*2+4,relComfort,14&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;relLife=life/100.0*150.0&lt;br /&gt;&amp;nbsp; &amp;nbsp;guiSetGadget&amp;#40;lifeGadget,2,18+14*3+6,relLife,14&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;--Bed&amp;uuml;rfnisse sinken lassen&lt;br /&gt;&amp;nbsp; &amp;nbsp;hunger=hunger-.02&lt;br /&gt;&amp;nbsp; &amp;nbsp;thirst=thirst-.03&lt;br /&gt;&amp;nbsp; &amp;nbsp;energy=energy-.01&lt;br /&gt;&amp;nbsp; &amp;nbsp;comfort=comfort-.015&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;if hunger&amp;gt;100 then hunger=100 end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if thirst&amp;gt;100 then thirst=100 end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if energy&amp;gt;100 then energy=100 end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if life&amp;gt;100 then life=100 end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;--Life &amp;auml;ndern&lt;br /&gt;&amp;nbsp; &amp;nbsp;if hunger&amp;lt;0 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hunger=0&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;life=life-.05&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if thirst&amp;lt;0 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;thirst=0&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;life=life-.05&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if energy&amp;lt;0 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;energy=0&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;life=life-.05&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;&amp;nbsp; &amp;nbsp;if comfort&amp;lt;0 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;comfort=0&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;life=life-.05&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;end&lt;br /&gt;function game.player.renderInGame&amp;#40;id&amp;#41;&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;function game.player.changeNeed&amp;#40;id, val&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;if id==0 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;hunger=hunger+val&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif id==1 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;thirst=thirst+val&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif id==2 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;energy=energy+val&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif id==3 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;comfort=comfort+val&lt;br /&gt;&amp;nbsp; &amp;nbsp;elseif id==4 then&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;life=life+val&lt;br /&gt;&amp;nbsp; &amp;nbsp;end&lt;br /&gt;end&lt;br /&gt;function game.player.goToPosition&amp;#40;x,y&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.player&amp;#91;id&amp;#93;.toX=x&lt;br /&gt;&amp;nbsp; &amp;nbsp;game.player&amp;#91;id&amp;#93;.toY=y&lt;br /&gt;end&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;mfg&lt;br /&gt;Coolo (ich hoffe DC ist mir nicht b&amp;ouml;se &lt;img src=&quot;/forum/images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; /&gt;)&lt;br /&gt;&lt;br /&gt;PS: Das ist KEIN April Scherz</description>
			<pubDate>Thu, 01 Apr 2010 18:48:49 +0200</pubDate>
		</item>


	</channel>
</rss>
