Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-01-2011, 14:37   #1 (permalink)
Neuer User
 
Benutzerbild von casp0or
 
Registriert seit: May 2009
Beiträge: 20
Suche Anregung ^^ (raster mit array Dynamisch gestalten)

Hi,

ich habe ein kleines Projekt in AS-3 und brauche eine Anregung um weiter zu kommen.

Ich habe mittels array ein Raster aus MovieClips erstellt und diese angesprochen...

Funktioniert auch wunderbar. Nur jetzt wird alles ein bissel komplexer und da finde ich irgendwie keinen Ansatz. -.- Ich platziere jetzt ein objekt auf einem der MovieClips und möchte den Abstand messen zwischen einem weiteren Objekt das schon platziert ist... jetzt aber nicht den abstand in Centimeter sondern in MovieClips die dazwischen liegen!

Ist das irendwie machbar ??

Hier nochma ne skizze ...



Soll ich den Code nochmal posten ??

Thx Mfg
casp0or

Geändert von casp0or (19-01-2011 um 14:42 Uhr)
casp0or ist offline   Mit Zitat antworten
Alt 19-01-2011, 15:30   #2 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
Ich hoffe ich habe dich richtig verstanden

bei Quadratischen Kacheln gilt:
Distanz in Kachel = (Distanz in X + Distanz in Y) / Kachelgröße

Ansonsten gibt es Algorythmen für Wegfindung
A*, Dijkstra und Konsorten

Diese sind allerdings etwas komplexer und für eine einfache Distanz oft nicht nötig
__________________
mfg Frank

Geändert von mildesign (19-01-2011 um 15:35 Uhr)
mildesign ist offline   Mit Zitat antworten
Alt 19-01-2011, 16:45   #3 (permalink)
Neuer User
 
Benutzerbild von casp0or
 
Registriert seit: May 2009
Beiträge: 20
Ja so halb XD aber danke für die antwort ...

ich möchte wissen wieviele von den quadratischen MC´s zwischen den beiden objekten liegen! in meinem beispiel also vom startobjekt bis zum zielobjekt sind es 4 kästchen ...

Thx Mfg
casp0or
casp0or ist offline   Mit Zitat antworten
Alt 19-01-2011, 16:52   #4 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
Koordinate A [0,2]
Koordinate B [4,1]

distanz = 0->4 + 2->1
distanz = 3 + 1
__________________
mfg Frank
mildesign ist offline   Mit Zitat antworten
Alt 19-01-2011, 18:48   #5 (permalink)
Neuer User
 
Benutzerbild von casp0or
 
Registriert seit: May 2009
Beiträge: 20
Danke für die antwort ^^

hat mir schon sehr gut weitergeholfen XD

jetzt is nur die sacher das der das raster ganz komisch zählt ...

########################
#1###2###4###6###8###10##
#3## 2,3##4,3# 6,3# 8,3##10,3#
#5## 2,5##4,5# 6,5# 8,5##10,5#
#7## 2,7##4,7# 6,7# 8,7##10,7#
########################

kommt vom array denke ich mal ...


Anderer versuch kann ich nicht ne Linie zwischen den beiden Objekten ziehen und dann per HitTest abfragen wieviele MC´s berührt werden ???



Thx Mfg
casp0or
casp0or ist offline   Mit Zitat antworten
Alt 19-01-2011, 19:06   #6 (permalink)
Knallrot
 
Benutzerbild von Mr.Sunburn
 
Registriert seit: Mar 2010
Beiträge: 159
Wird nicht klappen da nur die Bounding Box als Kollisionsfläche genommen wird, in deinem Fall kollidiert die gleich mit 8 Feldern.

Dafür müsstest du die Linie ablaufen und jeden Pixel (bzw in einem sinnvollen Abstand) einzeln prüfen ob es mit einem der Felder kollidiert. Dann musst du noch doppelte Einträge vermeiden und so weiter und so weiter..

Du merkst, das ist Bull****. Stell dein Array vernüftig um so das es normal aufgebaut ist und dein Problem ist mit einer simplen Rechnung gelöst.
Mr.Sunburn ist offline   Mit Zitat antworten
Alt 19-01-2011, 19:15   #7 (permalink)
Neuer User
 
Benutzerbild von casp0or
 
Registriert seit: May 2009
Beiträge: 20
kk Danke schonmal XD

werd mal sehen was ich so machen kann ^^
casp0or ist offline   Mit Zitat antworten
Alt 19-01-2011, 19:46   #8 (permalink)
Neuer User
 
Benutzerbild von casp0or
 
Registriert seit: May 2009
Beiträge: 20
Boar ich bin echt zu blöd und ich find nix im Google was mir helfen könnte ....

Also so hab ich das Raster erzeugt:
PHP-Code:
// Array, in dem die einzelnen Elemente gespeichert werden
var raster:Array = new Array();

for (var 
010i++)
{
    
raster[i] = new Array();

    for (var 
010j++)
    {
        
// Gehe das Raster tabellenartig ab, i für Zeilen und j für Spalten
        
raster[i][j] = new quadrat();
        
addChild(raster[i][j]);

        
// Positionierung
        
raster[i][j].50 50;
        
raster[i][j].50 50;

        
// In einzelne Variable convertieren um sie einfacher anzusprechen
        
var m:MovieClip raster[i][j] as MovieClip;

        
// onClick-Funktion anfügen
        
m.addEventListener(MouseEvent.MOUSE_DOWNplaceDown);
        
m.addEventListener(MouseEvent.MOUSE_UPplaceUp);
    }
}

//Funktion wenn Maus gedrückt
function placeDown (m)
{
    var 
rasterNr1 m.currentTarget.name;
    
trace(rasterNr1);
}

//Funktion wenn Maus losgelassen
function placeUp (m)
{
    var 
rasterNr2 m.currentTarget.name;
    
trace(rasterNr2);

Normalerweise sollten die Zahlen richtig verlaufen ... nur irgendwas stört Oo


ERSTE LÖSUNG IST DEM MC EINEN FESTEN NAMEN MIT DEN VARIABELN ZU GEBEN !!

Thx Mfg
casp0or

Geändert von casp0or (19-01-2011 um 23:42 Uhr)
casp0or ist offline   Mit Zitat antworten
Alt 20-01-2011, 00:01   #9 (permalink)
Neuer User
 
Benutzerbild von casp0or
 
Registriert seit: May 2009
Beiträge: 20
So Abend, ^^

jetzt is es spät und ich hab kei lust mehr ...

kann mir vllt wer ma genauer erklären was es mit
Zitat:
Koordinate A [0,2]
Koordinate B [4,1]

distanz = 0->4 + 2->1
distanz = 3 + 1
auf sich hat Oo

hab jetzt jede kombi getestet und iwie gehts horizontal und vertikal aber net diagonal ( von rechts oben nach links unten bei 10 x 10 ist bei mir 9 felder aber er sagt mir 15??? ) -.-

Thx Mfg
casp0or
casp0or ist offline   Mit Zitat antworten
Alt 20-01-2011, 01:35   #10 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
zeig mal bitte deine Funktion welche die Distanz berechnet.
__________________
mfg Frank
mildesign ist offline   Mit Zitat antworten
Alt 20-01-2011, 08:09   #11 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Das fällt unter den Begriff "Pathfinding". Google mal danach.

Aber ich glaube in deinem einfachen Fall ist der Bresenham Line Algorithm der perfekte Kandidat. Du müsstest nur die Fälle zählen, bei denen er von A nach B einen Pixel setzen würde.
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 20-01-2011, 08:14   #12 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Moment. Wenn du nur den Abstand ausrechnen willst, dann ist das banal.

Punkt A liegt auf [x0,y0].
Punkt B liegt auf [x1,y1].

Nach dem Bewegungsmuster, dass du gezeichnet hast ist der Abstand: numTiles = (x1-x0)+(y1-y0)
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 20-01-2011, 09:59   #13 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
Zitat:
Zitat von André Michelle Beitrag anzeigen
Moment. Wenn du nur den Abstand ausrechnen willst, dann ist das banal.

Punkt A liegt auf [x0,y0].
Punkt B liegt auf [x1,y1].

Nach dem Bewegungsmuster, dass du gezeichnet hast ist der Abstand: numTiles = (x1-x0)+(y1-y0)
Sag ich ja. Vielleicht glaubt er ja dir ;o)
__________________
mfg Frank

Geändert von mildesign (20-01-2011 um 10:04 Uhr)
mildesign ist offline   Mit Zitat antworten
Alt 20-01-2011, 13:15   #14 (permalink)
Neuer User
 
Benutzerbild von casp0or
 
Registriert seit: May 2009
Beiträge: 20
Danke Danke für eure Antworten ... ^^

also die Rechnung geht so ^^

PHP-Code:
var rasterRechnung = (rasterX1 rasterX2) + (rasterY1 rasterY2
d.h. ich muss das in den Klammern umdrehen Oo
wenns wirklich so einfach ist dann fress ich nen Besen XD ( ich denk zu kompliziert ô.Ô)

Thx Mfg
casp0or
casp0or ist offline   Mit Zitat antworten
Alt 20-01-2011, 14:38   #15 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Du brauchst jeweils den absoluten Wert.

Code:
numTiles = Math.abs(x1-x0)+Math.abs(y1-y0)
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mod Rewrite dynamisch gestalten g3ntle]V[an PHP und MySQL 10 25-08-2010 15:42
Filmgröße dynamisch gestalten notebook20000 Flash 8 3 03-11-2005 20:35
Website so dynamisch wie möglich gestalten. störie Flash MX 8 30-11-2004 11:13
Drag-Begrenzung dynamisch gestalten? JuL! ActionScript 1 1 24-06-2004 12:04
variable dynamisch gestalten shck HTML und CSS 2 23-08-2002 14:01


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele