Antworten auf deine Fragen:
Neues Thema erstellen

Tastatursteuerung aussetzen

tutto

Nicht mehr ganz neu hier

Hallo,

ich bin absoluter Beginner mit AS3 und kämpfe mich mit einem Avoider-Game durch.
Es geht um die Tastatursteuerung. Es gibt nur rechts links und dabei nur 4 Positionen.
Die äußerste linke Positon ist x25. Den Code für die Tastatursteuerung habe ich den Codeschnipsel
entnommen:

function fl_MoveInDirectionOfKey_2(event:Event)
{
if (leftPressed)
{
hero.x -= 50;
}

Ich möchte erreichen dass der »hero« die Bühne links nicht verlassen.
Wenn (leftPressed) und mein hero die Position x 25 hat dann soll die Anweisung nicht ausgeführt werden.
Geht das so und wie muss ich das schreiben?
 

keul3

3dsMax | 3D-Contest

Code:
var bL:Number = 25;
var p:uint = 4;
var s:Number = 50;
var r:Rectangle = new Rectangle(bL, 0, (p-1) * s, 0);

if (leftPressed)
{
    hero.x -= s;
    if (hero.x < r.left) hero.x = r.left;
}
if (rightPressed)
{
    hero.x += s;
    if (hero.x > r.right) hero.x = r.right;
}
 
Zuletzt bearbeitet:

tutto

Nicht mehr ganz neu hier

erstmal danke es funktioniert!!

Nur verstehe ich den Code noch nicht ganz.
Du würdest mir sehr helfen wenn Du mir den Code erklären könntest.

Die Bedingung ist klar.
Wenn die Position x kleiner als r.right ist dann soll es bei r.right bleiben.

var bL:Number
deute ich als bounderieLeft mit der Positon 25 (Warum spielt hier x keine Rolle?)

var p:uint = 4;
ich weiß nicht wofür das p steht.
Unit bezeichnet wohl das userInterface (die Tastaturbelegung) Warum wird das gebraucht? das Programm reagiert doch auf KEYBOARD-LEFT und die Taste left ist doch die 37.

var s:Number = 50;
aus der Zahl entnehme ich dass es sich um den Versatzhandelt

var r:
erklär mir das bitte
 

keul3

3dsMax | 3D-Contest

var bL:Number
deute ich als bounderieLeft mit der Positon 25 (Warum spielt hier x keine Rolle?)
richtig gedeutet, das ist erstmal nur ein Wert. x kommt erst beim Instanzieren des RectangleObjects ins Spiel.

var p:uint = 4;
ich weiß nicht wofür das p steht.
Unit bezeichnet wohl das userInterface (die Tastaturbelegung) Warum wird das gebraucht?
p ist die Anzahl der Positionen die dein hero einnehmen kann
p habe ich als uint und nicht Number deklariert, da dieser Wert nur positive, ganze Werte annehmen soll, 2.5 oder -6 Positionen gibts ja nicht oder?;)
Nix Unit, nix UserInterface, uint ist einfach nur der VariablenTyp;)

var s:Number = 50;
aus der Zahl entnehme ich dass es sich um den Versatzhandelt
yep


var r:
erklär mir das bitte
r ist ein RectangleObject, welches ich genutzt habe um den Bewegungsbereich deines heros abzustecken ---> new Rectangle( x /*da ist das x;)*/, y /*wird nicht gebraucht, deshalb = 0*/, width /*der Bewegungsbereich auf der Horizontalen*/, height /*wird auch nicht gebraucht, deshalb = 0*/)
Rectangle hält nur ein paar Werte die ein Rechteck in der Ebene beschreiben und die Werte lassen sich mit den Properties wie z.B. left oder right auslesen, für weitere Infos schau bitte in der Documentation nach: http://help.adobe.com/de_DE/FlashPlatform/reference/actionscript/3/flash/geom/Rectangle.html

Man hätte auch auch 2 Variablen für die Begrenzung nehmen können, ist so imo aber praktischer.

Im Grunde ist das alles nur so geschrieben um den Code schön flexibel zu gestalten;)
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.621
Beiträge
1.538.378
Mitglieder
67.545
Neuestes Mitglied
helenkitina
Oben