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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-01-2007, 13:23   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 113
TileBased Kollisionsabfrage

Hi, arbeite mich gerade durch ein Tutorial aber das is auf englisch und da versteh ich genau so viel wie wenn ich mir das Script selbst durchlese, ich hoffe also hier kann mir jemand weiterhelfen, bei solchen Dingen bleib ich nämlich jedes mal aufs neue hängen..

PHP-Code:
var downY   Math.floor( ( _y + (_height/2) ) /_parent.tileH );
var 
upY     Math.floor( ( _y - (_height/2) ) /_parent.tileH );
var 
leftX   Math.floor( ( _x - (_width/2) ) /_parent.tileW );
var 
rightX  Math.floor( ( _x + (_width/2) ) / _parent.tileW );
var 
centerX Math.floor_x _parent.tileW );
var 
centerY Math.floor_y _parent.tileH ); 
So, was genau passiert da und auf was bezieht sich "_parent"?
Ist damit der MC gemeint der unter dem andern MC liegt oder der MC in dem der andere verschachtelt is?
Da werd ich aus der Flashhilfe auch nicht ganz schlau.

Noch besser als die Hilfe hier wäre natürlich ein Link zu einem deutschen Tut, aber den werd ich wohl nicht bekommen.

Danke schon mal MfG!

EDIT:
Ok, so weit bin ich:

PHP-Code:
var downY   Math.floor( ( _y + (_height/2) ) /_parent.tileH );//der tile unter dem charakter
var upY     Math.floor( ( _y - (_height/2) ) /_parent.tileH );//der tile über dem charakter
var leftX   Math.floor( ( _x - (_width/2) ) /_parent.tileW );//der tile links
var rightX  Math.floor( ( _x + (_width/2) ) / _parent.tileW );//der tile rechts
var centerX Math.floor_x _parent.tileW );//der tile auf dem der charakter steht?
var centerY Math.floor_y _parent.tileH );//selbiges ?? 
EDIT2: wenn nur _x und _y angegeben ist, wie komme ich dann auf die Position des Charakters? o_O

Geändert von schmidi (04-01-2007 um 13:37 Uhr)
schmidi ist offline   Mit Zitat antworten
Alt 04-01-2007, 14:40   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Was genau verstehst du nicht?
Er berechnet anhand der Pixelkoordinaten (_x, _y) aus welchem Tile der Charakter steht, bzw. welches links, rechts, oben und unten ist.
Jedes Tile ist ja wieder durch zwei Koordinaten festgelegt (_drittes_ Tile von links, _zweites_ Tile von oben), deshalb auch centerX und centerY.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 04-01-2007, 14:48   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 113
Genau das versteh ich nicht.
Welchen Wert soll _x oder _y ergeben, es ist ja nichts angegeben (z.B. _root.charakter._x) es ist einfach nur _x, es müsste doch also immer das selbe ergebnis kommen.

Das selbe bei _parent.tileH etc. wie kommt der auf die Werte?
schmidi ist offline   Mit Zitat antworten
Alt 04-01-2007, 14:51   #4 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Das kommt darauf an, wo das Skript drinnen steht. Wenn das ein Teil von _root.charakter ist, dann kann man natürlich auch mit this._x drauf zugreifen.
klickverbot ist offline   Mit Zitat antworten
Alt 04-01-2007, 14:53   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 113
Ja genau das meine ich ja, aber das Script is genau so und:
"In the script-layer, add this code:"

Es soll so in ein Bild auf der Hauptzeitleiste geschrieben werden.
Ich blick da nicht durch.


EDIT:
Ich glaub jetzt weiß ich warum das funktionieren soll, hab den Teil darüber wo man den Charakter erstellt nochmal gelesen und ich soll auf der Zeitleiste im MC ein solches Bild erstellen wo ich den Code reinschreibe und ich denke mal damit is auch der andere code gemeint wo die Positionen ermittelt werden.

Das erklärt einiges.

Geändert von schmidi (04-01-2007 um 14:59 Uhr)
schmidi ist offline   Mit Zitat antworten
Alt 04-01-2007, 14:57   #6 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Auch die "Hauptzeitleiste", also _root, kannst du mit _x und _y verschieben. _parent ist dann allerdings wirklich nicht erklärbar. Ist das Script eventuell in einem Event-Handler?
klickverbot ist offline   Mit Zitat antworten
Alt 04-01-2007, 15:08   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 113
Also ich ab's jetzt einfach mal so gemacht wie's im Tut steht, allerdings bekomm ich da nen Fehler weil ich ein MovieClip-Event habe aber keinen MC auf der Bühne weil der ja im Script selbst auf die Bühne gebracht wird, ich versteh das Tut echt nicht, ich brauch ein deutsches..

http://oos.moxiecode.com/tut_02/index.html

Hier mal der Link.
Kann mir jetzt noch jemand sagen was genau _parent bewirkt?
schmidi ist offline   Mit Zitat antworten
Alt 04-01-2007, 15:23   #8 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Wenn ein MovieClip in einem anderen liegt, dann ist this._parent im inneren MovieClip eine Referenz auf den äußeren MovieClip.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 04-01-2007, 15:28   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 113
Ok danke.

Demnach müsste also der Charakter im Tile-MC liegen, das macht die Sache noch komplizierter. o.O

Achso nein:

var rightX = Math.floor( ( _x + (_width/2) ) / _parent.tileW );

Das is ja gar nicht das Tile, sondern nur die Variable.
Dann is das jetzt schon mal klar für mich, allerdings das mit dem Code der auf dem MC liegen soll immer noch nicht, wie kann ich einen Code in einen MC schreiben der nur in der Bibliothek existiert und erst mit attachMovie auf die Bühne gebracht wird?
schmidi ist offline   Mit Zitat antworten
Alt 04-01-2007, 15:30   #10 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Ich habe mir gerade das auf der Seite verlinkte Beispiel-Fla angeschaut, der Code soll natürlich in die Skript-Ebene des Charakter-MovieClips – dann sind auch die Verweise sinnvoll.

Es kommt aber wirklich nicht sehr deutlich heraus, wo das Skript jetzt hin soll.

EDIT:
Der Charakter liegt natürlich nicht im Tile MC.

Zitat:
wie kann ich einen Code in einen MC schreiben der nur in der Bibliothek existiert und erst mit attachMovie auf die Bühne gebracht wird?
Einfach in eine Ebene des Symbols schreiben?

Geändert von klickverbot (04-01-2007 um 15:32 Uhr)
klickverbot ist offline   Mit Zitat antworten
Alt 04-01-2007, 15:38   #11 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 113
Zitat:
Zitat von klickverbot Beitrag anzeigen


Einfach in eine Ebene des Symbols schreiben?
Das hab ich, aber da bekomm ich die Fehlermeldung dass onClipEvent-Ereignisse nur auf MovieClipInstanzen angewendet werden können.. ?

Mach ich was falsch?

Den MC doppelklicken, dann eine neue Ebene und dort ins erste Bild den Code?
schmidi ist offline   Mit Zitat antworten
Alt 04-01-2007, 15:43   #12 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Zitat:
Doubleclick the character-movieclip in the library and get inside it. Make two new layers, one for a script and one to hold our keyevent-movieclip. We start with the getting the keys(we´re going to use the arrowkeys to control).
Make an empty movieclip, ctrl-F8, drag it from the library into the character-movieclip and center it. Select it and bring up the actionscript-window, and attach the following code:
Der erste Teil des Codes gehört zu dem Keyevent-MC, den du als leeren MC in der Bibliothek erstellen sollst. Der andere Teil des Codes gehört in die Skript-Ebene des Charakters.
klickverbot ist offline   Mit Zitat antworten
Alt 04-01-2007, 15:52   #13 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 113
Ok danke.

Englische Texte muss ich immer 3 mal lesen dass ich wirklich alles kapier..

Ich werd morgen dran weiterbasteln.
Aber ich glaube den Teil hab ich jetzt auch verstanden.
Also danke nochmal an euch.

MfG!
schmidi 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



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

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


Copyright ©1999 – 2012 Marc Thiele