|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Frank Menzel
Datum: Mi, 02.07.2008 11:05:26
In-reply-to:
<AF9871FF-AF74-4D08-8862-CA9D3B06A242@xxxxxxxxxxxxxxx>
References:
<20080630183821.300030@xxxxxxx> <AF9871FF-AF74-4D08-8862-CA9D3B06A242@xxxxxxxxxxxxxxx>
Hallo,
anbei wie gewünscht mit den Anpassungen für getFlatParcours
()...
Gruss, Frank Menzel
-------- Original-Nachricht --------
> Datum: Tue, 1 Jul 2008 15:21:28 +0200
> Von: Timo Sandmann <Mail@xxxxxxxxxxxxxxx>
> An: Entwicklung rund um den c\'t-bot <ct-bot-entwickler@xxxxxxxxxxxxxxxxx>
> Betreff: Re: [ct-bot] Linienkreuzungen
> Hallo,
>
> das sieht sehr gut aus.
> Nur für Parcours.getFlatParcours() fehlt noch eine Anpassung, sonst
> liefert getShortestPath() falsche Daten zurück (glaube ich). Die
> Kreuzungen müssten wohl wie Linien behandelt werden. Das sollte dann
> auf jeden Fall aber noch mal ausprobiert werden, ich bin mir bei der
> Methode jetzt nicht so ganz sicher.
>
> Gruß,
> Timo
>
> Am 30.06.2008 um 20:38 schrieb Frank Menzel:
> > Hallo,
> > anbei mal der neue Patch für die Linienkreuzungen...
> > In dem Artikellink war ja so ein schönes Bild mit den Linienarten.
> > Das Bild wollte ich erweitern mit diesen Kreuzungen. Doch diese
> > Newsliste nimmt doch keine Bilder oder ? Also dann wohin mit dem
> > Bild ?
> > Gruss, Frank Menzel
> > --
> > Psssst! Schon vom neuen GMX MultiMessenger gehört?
> > Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger
> > <linecrossings.txt>_______________________________________________
> > ct-bot-entwickler Mailingliste
> > ct-bot-entwickler@xxxxxxxxxxxxxxxxx
> > http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler
>
>
> _______________________________________________
> ct-bot-entwickler Mailingliste
> ct-bot-entwickler@xxxxxxxxxxxxxxxxx
> http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler
--
Psssst! Schon das coole Video vom GMX MultiMessenger gesehen?
Der Eine für Alle: http://www.gmx.net/de/go/messenger03
Index: C:/botneu/ct-Sim/ctSim/model/ParcoursLoader.java
===================================================================
--- C:/botneu/ct-Sim/ctSim/model/ParcoursLoader.java (revision 1451)
+++ C:/botneu/ct-Sim/ctSim/model/ParcoursLoader.java (working copy)
@@ -63,6 +63,12 @@
/**
* Diese Klasse hilft einen Parcours aus einer ASCII-Datei zu laden
+ * Linien-Kreuzungen:
+ * [ - X-Kreuzung
+ * T - sieht aus wie das T, d.h. Linie geht nach unten weg
+ * ] - T-Kreuzung steht auf dem Kopf, d.h. die Linie geht nach oben weg
+ * { - in Uhrzeigersinn gedrehte T-Kreuzung, Linie geht nach links weg (Richtung der Mittelspitze)
+ * } - entgegen Uhrzeigersinn gedrehte T-Kreuzung (Linie geht in Richtung der Mittelspitze nach rechts weg)
*
* @author bbe (bbe@xxxxxxxx)
*/
@@ -138,6 +144,88 @@
0f +LINEWIDTH/2 , 0.5f ,0f, // lange Linie nach oben
};
+ /**
+ * X-Kreuzung
+ */
+ public static final float[] LINE_CROSSING_X = {
+ 0f - LINEWIDTH/2 , -0.5f,0f, // Start unten links
+ 0f + LINEWIDTH/2 , -0.5f,0f, // kurze Linie nach rechts
+ 0f + LINEWIDTH/2 , 0.0f - LINEWIDTH/2 ,0f, // Linie hoch bis Mitte
+ 0.5f , 0.0f - LINEWIDTH/2 ,0f, // Lange Linie nach rechts
+ 0.5f , 0.0f + LINEWIDTH/2 ,0f, // kurze Linie hoch
+ 0f + LINEWIDTH/2 , 0.0f + LINEWIDTH/2 ,0f, // Linie bis Mitte
+ 0f + LINEWIDTH/2 , 0.5f ,0f, // Linie bis Hoch
+ 0f - LINEWIDTH/2 , 0.5f ,0f, // kurze Linie nach links
+ 0f - LINEWIDTH/2 , 0.0f + LINEWIDTH/2 ,0f, // Linie runter bis Mitte
+ -0.5f, 0f + LINEWIDTH/2,0f, //Linie nach links
+ -0.5f, 0f - LINEWIDTH/2,0f, //kurze Linie runter
+ 0f - LINEWIDTH/2 , 0.0f - LINEWIDTH/2 ,0f, // Linie nach rechts bis Mitte
+ 0f - LINEWIDTH/2 , -0.5f,0f, // Kreuz schliessen zum Ausgangspunkt
+ };
+
+ /**
+ * T-Kreuzung, Ausrichtung wie das T selbst, also Linie geht nach unten
+ */
+ public static final float[] LINE_CROSSING_T = {
+ 0f - LINEWIDTH/2, -0.5f, 0f, // Start unten links
+ 0f + LINEWIDTH/2, -0.5f, 0f, // kurze Linie nach rechts
+ 0f + LINEWIDTH/2, 0.0f - LINEWIDTH/2 ,0f, // Linie hoch bis Mitte
+ 0.5f , 0.0f - LINEWIDTH/2 ,0f, // Lange Linie nach rechts
+ 0.5f , 0.0f + LINEWIDTH/2 ,0f, // kurze Linie hoch
+ -0.5f , 0.0f + LINEWIDTH/2 , 0f, // lange Linie nach links
+ -0.5f, 0f - LINEWIDTH/2,0f , //kurze Linie runter
+ 0f - LINEWIDTH/2 , 0.0f - LINEWIDTH/2 , 0f, // Linie nach rechts bis Mitte
+ 0f - LINEWIDTH/2 ,-0.5f,0f, // T schliessen zum Ausgangspunkt
+ };
+
+ /**
+ * gespiegelte T-Kreuzung, Ausrichtung wie gespiegeltes, also Linie geht nach oben
+ */
+ public static final float[] LINE_CROSSING_T_MIRR = {
+ -0.5f,0.0f - LINEWIDTH/2,0f, // Start Ecke unten links
+ 0.5f,0.0f - LINEWIDTH/2,0f, // lange Linie nach rechts
+ 0.5f , 0 + LINEWIDTH/2 ,0f, // kurze Linie hoch
+ 0f + LINEWIDTH/2 , 0f + LINEWIDTH/2 ,0f, // Linie links bis Mitte
+ 0f + LINEWIDTH/2 , 0.5f ,0f, // Linie hoch
+ 0f - LINEWIDTH/2 , 0.5f ,0f, // kurze Linie nach links
+ 0f - LINEWIDTH/2, 0f + LINEWIDTH/2,0f, //Linie runter bis Mitte
+ -0.5f ,0f + LINEWIDTH/2 ,0f, // Linie nach links
+ -0.5f,0f - LINEWIDTH/2,0f, //kurze Linie runter zum Ausgangspunkt
+
+
+ };
+
+ /**
+ * T-Kreuzung, 90 Grad gedreht entgegen Uhrzeigersinn, also Linie geht nach rechts
+ */
+ public static final float[] LINE_CROSSING_T_ROT_UNCLOCKWISE = {
+ 0f - LINEWIDTH/2,-0.5f,0f, // Start Ecke unten links
+ 0f + LINEWIDTH/2,-0.5f,0f, // kurze Linie nach rechts
+ 0f + LINEWIDTH/2 , 0.0f - LINEWIDTH/2 ,0f, // Linie hoch bis Mitte
+ 0.5f,0.0f - LINEWIDTH/2,0f, // Linie nach rechts
+ 0.5f , 0f + LINEWIDTH/2 ,0f, // kurze Linie hoch
+ 0f + LINEWIDTH/2 , 0f + LINEWIDTH/2 ,0f, // Linie nach links bis Mitte
+ 0f + LINEWIDTH/2 , 0.5f ,0f, // Linie hoch
+ 0f - LINEWIDTH/2, 0.5f ,0f, // kurze Linie nach links
+ 0f - LINEWIDTH/2, -0.5f,0f, //lange Linie runter zum Ausgangspunkt
+
+ };
+
+ /**
+ * T-Kreuzung, 90 Grad gedreht in Uhrzeigersinn, also Linie geht nach links
+ */
+ public static final float[] LINE_CROSSING_T_ROT_CLOCKWISE = {
+ 0f - LINEWIDTH/2,-0.5f,0f, // Start Ecke unten links
+ 0f + LINEWIDTH/2,-0.5f,0f, // kurze Linie nach rechts
+ 0f + LINEWIDTH/2 , 0.5f ,0f, // lange Linie hoch
+ 0f - LINEWIDTH/2, 0.5f ,0f, // kurze Linie nach links
+ 0f - LINEWIDTH/2, 0f + LINEWIDTH/2 ,0f, // Linie runter bis Mitte
+ -0.5f , 0f + LINEWIDTH/2 ,0f, // Linie nach links
+ -0.5f , 0f - LINEWIDTH/2 ,0f, // kurze Linie runter
+ 0f - LINEWIDTH/2 , 0f - LINEWIDTH/2 ,0f, // Linie rechts bis Mitte
+ 0f - LINEWIDTH/2 , -0.5f ,0f, // Linie runter zum Ausgangspunkt
+ };
+
/** Wand-Hoehe */
private static final float WALL_HEIGHT = 0.2f;
@@ -437,8 +525,21 @@
case '~':
createLine(x,y,LINE_CORNER_NW,getAppearance(this.parcoursMap[x][y]));
break;
-
-
+ case '[':
+ createLine(x,y,LINE_CROSSING_X,getAppearance(this.parcoursMap[x][y]));
+ break;
+ case 'T':
+ createLine(x,y,LINE_CROSSING_T,getAppearance(this.parcoursMap[x][y]));
+ break;
+ case ']':
+ createLine(x,y,LINE_CROSSING_T_MIRR,getAppearance(this.parcoursMap[x][y]));
+ break;
+ case '}':
+ createLine(x,y,LINE_CROSSING_T_ROT_UNCLOCKWISE,getAppearance(this.parcoursMap[x][y]));
+ break;
+ case '{':
+ createLine(x,y,LINE_CROSSING_T_ROT_CLOCKWISE,getAppearance(this.parcoursMap[x][y]));
+ break;
}
Index: C:/botneu/ct-Sim/ctSim/model/Parcours.java
===================================================================
--- C:/botneu/ct-Sim/ctSim/model/Parcours.java (revision 1451)
+++ C:/botneu/ct-Sim/ctSim/model/Parcours.java (working copy)
@@ -516,7 +516,7 @@
}
/**
- * @return Liefert einen stark verienfachten Parcours zurÃŒck.
+ * @return Liefert einen stark vereinfachten Parcours zurÃŒck.
* das Array enthaelt nur 0 (freies Feld) und 1 (blockiertes Feld)
*/
int[][] getFlatParcours() {
@@ -535,6 +535,11 @@
case '/':
case '\\':
case '+':
+ case '[':
+ case ']':
+ case '{':
+ case '}':
+ case 'T':
case '~':
parcoursMapSimple[x][y] = 0;
break;
Index: C:/botneu/ct-Sim/parcours/testline_crossings.xml
===================================================================
--- C:/botneu/ct-Sim/parcours/testline_crossings.xml (revision 0)
+++ C:/botneu/ct-Sim/parcours/testline_crossings.xml (revision 0)
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!DOCTYPE collection SYSTEM "parcours.dtd">
+
+<world>
+ <description>
+ Dieses ist ein Linien-Testparcours mit Kreuzungen und zyklenfrei
+ </description>
+
+ <parcours>
+
+ <line>============#</line>
+ <line>#* L L *#</line>
+ <line># }T-{ #</line>
+ <line># L| L #</line>
+ <line># /--[-\ #</line>
+ <line>#L-]-L| | #</line>
+ <line># | | #</line>
+ <line># /--[L[--Z#</line>
+ <line># | L | #</line>
+ <line>#* . . *#</line>
+ <line>===1====2===#</line>
+ </parcours>
+
+ <optics>
+ <appearance type="X">
+ <description>quadratische Wand</description>
+ <texture>textures/rock_wall.jpg</texture>
+ <color>#999999</color>
+ </appearance>
+ <appearance type="#">
+ <description>senkrechte Wand</description>
+ <clone>X</clone>
+ </appearance>
+ <appearance type="=">
+ <description>wagrechte Wand</description>
+ <clone>X</clone>
+ </appearance>
+
+
+ <appearance type=".">
+ <description>Fussboden im Eingangsbereich</description>
+ <color type="ambient">#FFFFFF</color>
+ <color type="diffuse">#CCFFFF</color>
+ </appearance>
+
+ <appearance type=" ">
+ <description>Fussboden im Labyrinth</description>
+ <color type="ambient">#606060</color>
+ <color type="diffuse">#CCFFFF</color>
+ </appearance>
+
+ <appearance type="1">
+ <description>Fussboden des Startfeldes 1</description>
+ <color type="ambient">990000</color>
+ <color type="diffuse">#CCFFFF</color>
+ </appearance>
+
+ <appearance type="2">
+ <description>Fussboden des Startfeldes 2</description>
+ <color type="ambient">#000099</color>
+ <color type="diffuse">#CCFFFF</color>
+ </appearance>
+
+ <appearance type="0">
+ <description>Fussboden des Default-Startfeldes</description>
+ <color type="ambient">#FFFFFF</color>
+ <color type="diffuse">#CCFFFF</color>
+ </appearance>
+
+ <appearance type="Z">
+ <description>Fussboden des Zielfeldes 0</description>
+ <color type="ambient">#66FF00</color>
+ <color type="diffuse">#CCFFFF</color>
+ </appearance>
+
+ <appearance type="*">
+ <description>Lichtkugel</description>
+ <color type="emmissive">#FFFF90</color>
+ </appearance>
+
+ <appearance type="-">
+ <description>Linie</description>
+ <color type="ambient">#000000</color>
+ <color type="diffuse">#000000</color>
+ <color type="specular">#000000</color>
+ <color type="emmissive">#000000</color>
+ </appearance>
+
+ <appearance type="|">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+
+ <appearance type="/">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+
+ <appearance type="\">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+
+ <appearance type="+">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+
+ <appearance type="[">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+ <appearance type="T">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+ <appearance type="]">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+ <appearance type="}">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+ <appearance type="{">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+
+ <appearance type="~">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+
+ <appearance type="L">
+ <description>Fussboden mit Loch</description>
+ <color type="ambient">#000000</color>
+ <color type="diffuse">#000000</color>
+ </appearance>
+
+ </optics>
+
+
+</world>
\ No newline at end of file
Index: C:/botneu/ct-Sim/parcours/testline.xml
===================================================================
--- C:/botneu/ct-Sim/parcours/testline.xml (revision 1451)
+++ C:/botneu/ct-Sim/parcours/testline.xml (working copy)
@@ -108,6 +108,27 @@
<clone>-</clone>
</appearance>
+ <appearance type="[">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+ <appearance type="T">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+ <appearance type="]">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+ <appearance type="}">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+ <appearance type="{">
+ <description>Linie</description>
+ <clone>-</clone>
+ </appearance>
+
</optics>
Index: C:/botneu/ct-Sim/Changelog.txt
===================================================================
--- C:/botneu/ct-Sim/Changelog.txt (revision 1451)
+++ C:/botneu/ct-Sim/Changelog.txt (working copy)
@@ -1,5 +1,7 @@
Changelog fuer c't-Sim
======================
+2008-06-30 Frank Menzel [menzelfr@xxxxxxx]: Neue Linienkreuzungen, X und T-Kreuzungen (alle 4 Richtungen), neuer Parcour testline_crossings, Beschreibung am Anfang von ParcoursLoader.java
+
2008-04-01 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: LEDs vorne (links/rechts) vertauscht, so dass die linke LED links angezeigt wird und die Rechte rechts
2008-03-29 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: Sim-Applet geht nun wieder (hatte keinen Controller!)
|
|