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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-07-2007, 10:06   #1 (permalink)
Rock'n'Bass
 
Benutzerbild von <sVkVmVit>
 
Registriert seit: Feb 2006
Ort: Hamburg
Beiträge: 202
Question Syntax beim getBounds()-Labyrinth

Hi!
Ich habe dieses grüne Buch namens "Spiele programmieren mit Flash MX" und habe diesem einen Code entnommen (siehe auch Macromedia Sample-Ordner --> Maze/Labyrinth), der für mein Vorhaben ganz gut geeignet ist. Nur habe ich ein bisschen Orientierungsprobleme hinichtlich des getBounds-Codes.
Ok, mit getBounds wird in diesem Fall abgefragt, ob der Spieler mit seiner Figur die Wände des Labyrinths berührt und in den Klammern hinter getBounds steht das Zielkoordinatensystem. Und auch das xMax, yMax, usw. versteh ich. Aber:

1. Zu was genau (bzw. welchem Movieclip) gehören nun das _x bzw. das _y in den Kammern, in denen sich auch getBounds befindet?
und 2. Was hat es mit dem true am Ende jeder Klammer auf sich?

Danke schonmal

("square" ist hierbei die Spielfigur und "walls" sind die Labyrinthwände)

Der folgende Code liegt auf einem Movieclip namens "maze" (befindet sich direkt auf der Bühne, also auf _root.), der wiederum einen MC namens "walls" enthält. :

Code:
onClipEvent (enterFrame) {
	if (_root.started && _root._currentframe==1) {
		with (_root.square) {
			//
			// keyboard controls
			if (Key.isDown(Key.DOWN)) {
				_y += 1;
			}
			if (Key.isDown(Key.UP)) {
				_y -= 1;
			}
			if (Key.isDown(Key.LEFT)) {
				_x -= 1;
			}
			if (Key.isDown(Key.RIGHT)) {
				_x += 1;
			}
			//
			// detect if edges of the player square are colliding with the maze walls
			if (walls.hitTest(getBounds(_root).xMax, _y, true)) {
				_x -= 1;
			}
			if (walls.hitTest(getBounds(_root).xMin, _y, true)) {
				_x += 1;
			}
			if (walls.hitTest(_x, getBounds(_root).yMax, true)) {
				_y -= 1;
			}
			if (walls.hitTest(_x, getBounds(_root).yMin, true)) {
				_y += 1;
			}
		}
	}
}
__________________
==>remix.nin.com<==
//
Life Is Too Short For Boring Music!
Fantasie ist die einzige Waffe gegen die Wirklichkeit.

Geändert von <sVkVmVit> (09-07-2007 um 10:24 Uhr)
<sVkVmVit> ist offline   Mit Zitat antworten
Alt 09-07-2007, 13:06   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
PHP-Code:
with (_root.square) {
   

   _y 
+= 1;
   


bedeutet soviel wie _root.square._y += 1;
Also beziehen sich die _x/_y-Werte auf _root.square.

PHP-Code:
if (walls.hitTest(getBounds(_root).xMax_ytrue)) { 
Das true am Ende der hitTest-Methode, sagt dem hitTest(),
daß die gesamte Form des MovieClips getestet werden soll,
und nicht nur das Rechteck, welches die Form umschließt.

Siehe auch die Flashhilfe:

»Ein Boolescher Wert, der angibt, ob die gesamte Form der
angegebenen Instanz ausgewertet werden soll (true) oder
nur die Begrenzungsbox (false).«

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 10-07-2007, 11:31   #3 (permalink)
Rock'n'Bass
 
Benutzerbild von <sVkVmVit>
 
Registriert seit: Feb 2006
Ort: Hamburg
Beiträge: 202
Jo vielen Dank erstmal!

Zitat:
bedeutet soviel wie _root.square._y += 1;
Also beziehen sich die _x/_y-Werte auf _root.square.
Also das hier hab ich mittlerweile schon allein rausgefunden.
Und das mit dem true hab ich dann jetzt auch gecheckt.

Im Buch, aus dem ich das entnommen hab, steht nämlich recht wenig dazu..

naja, auf jeden Fall Thx
__________________
==>remix.nin.com<==
//
Life Is Too Short For Boring Music!
Fantasie ist die einzige Waffe gegen die Wirklichkeit.

Geändert von <sVkVmVit> (10-07-2007 um 11:32 Uhr)
<sVkVmVit> ist offline   Mit Zitat antworten
Alt 10-07-2007, 12:36   #4 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Zitat:
Zitat von <sVkVmVit> Beitrag anzeigen
Im Buch, aus dem ich das entnommen hab, steht nämlich recht wenig dazu.
Dann vielleicht mal ab und zu F1 drücken => Flash-Hilfe
Besser noch das Wort im Actionscript markieren und
dann F1 drücken, dann wird man meistens zur richtigen
Seite in der Hilfe befördert.

gruß, gaspode
gaspode 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:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele