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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-04-2007, 15:01   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 2
Frage bezüglich Figur-Steuerung

Hallo..

ich beschäftige mich schon seit längerer Zeit mit Flash, speziell Spieleprogrammierung.
Die Grundkenntnisse sind mir schon bekannt, jedoch beschäftige ich mich im Moment mit alternativen Wegen, Dinge zu programmieren.

Zur Zeit ist es die Figur-Steuerung.

Meine Frage bezieht sich im Moment auf das Umdrehen der Spielfigur, sprich, dass sie sich umdreht (gespiegelt wird).

Meine Lösung sah früher so aus

Zitat:
if(Key.isDown(Key.LEFT)) {
_y-=3;}
.
.
.
if(Key.isDown(Key.RIGHT)) {
_xscale=100;
_x-=3;}
Jetzt hab ich mal in verschiedene Tutorials reingeschaut und dieses Tutorial gefunden - http://www.pepworks.com/

Dort sieht das Script für die Bewegung, speziell für die Drehung, so aus:

Zitat:
onClipEvent (enterFrame) {
speed = 0;
if (Key.isDown(Key.LEFT)) {
speed = -1;
this.gotoAndStop(2);
}
if (Key.isDown(Key.RIGHT)) {
speed = 1;
this.gotoAndStop(1);
}
this._x = this._x+speed;
}
Jetzt hab ich aber das Problem, dass sich meine Spielfigur solange von alleine dreht, bis ich einen Zweig aktiviere, sprich, dass ich LINKS oder RECHTS drücke... danach bleibt die Figur normal und dreht sich erst dann, wenn ich auch tatsächlich die Taste drücke.

Ich bin mir sicher, dass es nur um eine Kleinigkeit handelt, aber ich komm nicht dahinter...

Hoffe ihr könnt mir helfen ;)
tenshi2rule ist offline   Mit Zitat antworten
Alt 12-04-2007, 15:37   #2 (permalink)
Flashbitch
 
Benutzerbild von X-Tender
 
Registriert seit: Oct 2003
Ort: Hannover
Beiträge: 279
In dem MC wo deine spielfigur die 2. States (nach links schauen, nach rechts schauen) hat. Musst du im ersten Frame ein stop(); machen ...
Die sache ist aber das man sich auch das sparen kann. Meiner meinung nach ist das etwas unflexibel gelöst. Das würde ich lieber so machen.
Dein spielfiguren MC hat nur 1 Frame für laufen, und zwar nach rechts.
und dann gebkommt sie folgenden code.
ActionScript:
  1. onClipEvent(load){
  2.     var nSpeed:Number = 3; //Laufgeschwindigkeit
  3.     var nDirection:Number = 0 //Laufrichtung 0==Stehen 1==Rechts -1==Links
  4. }
  5.  
  6. onClipEvent(enterFrame){
  7.     //Wenn links gedrückt wird dann setzt nDirection auf -1 und skaliere negativ auf -100%
  8.     //Wenn links gedrückt wird dann setzt nDirection auf 1 und skaliere auf 100%
  9.     //In beiden fällen wird auch nDirection geändert
  10.     //Wenn nix gedrückt wurd mach nDirection auf 0.
  11.     if (Key.isDown(Key.LEFT)) { 
  12.         nDirection = -1;
  13.         _xscale = -100;
  14.     }else if (Key.isDown(Key.RIGHT)) {
  15.         nDirection = 1;
  16.         _xscale = 100;
  17.     }else{
  18.         nDirection = 0;
  19.     }
  20.     //Addiere zur aktuellen _x possition den nSpeed abhängig zu nDirection auf.
  21.     //d.h. entweder macht er + 10 oder + -10, je nach richtung
  22.     _x += nSpeed * nDirection;
  23. }
__________________
Fuchtelworld

Geändert von X-Tender (12-04-2007 um 15:46 Uhr)
X-Tender 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