Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-10-2011, 09:17   #1 (permalink)
Neuer User
 
Benutzerbild von chrisflasher
 
Registriert seit: Mar 2008
Beiträge: 98
Sinvolle Steuerung per Actionscript ?

Hallo zusammen,

ich bastel mal wieder ein wenig in Flash rum. Ich habe einen schwarzen Punkt (Instanzname = hero) und 96 Felder (die grauen zählen nicht) mit den jeweilige Kennzeichnungen a1, a2, a3 ...........

hero wird per Actionscript gesteuert:

Code:
hero.onEnterFrame=function() {
		
if(Key.isDown(Key.LEFT))
{    
this.play();                           
this._x=this._x-5; 
} 

if(Key.isDown(Key.RIGHT))
{    
this.play();                         
this._x=this._x+5;                  
}

if(Key.isDown(Key.DOWN))  
{    
this.play();                           
this._y=this._y+5;                   
}

if(Key.isDown(Key.UP))
{    
this.play();                          
this._y=this._y-5;                
}
}
Ich habe mit einem "hitTest" versucht das wenn hero bei manchen Feldern (beispielsweise c6) anstösst stehen bleibt, jedoch weiß ich nicht wirklich wie ich den Code so schreibe, das hero, egal in welche Richtung er gesteuert wird stehen bleibt sobald er auf das Feld c6 trifft.

Mit Variablen hat es leider auch nicht funktioniert.

Gibt es für diese Angehensweise einen einfacheren Lösungsweg ?
Sollte ich die Steuerung anders schreiben ?
Wie geht man einen solchen Aufbau am besten an ?

Über Rückantworten würde ich mich freuen

Gruß

Chirsflasher

__________________
Actionscript bringt mich eines Tages noch um ^^
chrisflasher ist offline   Mit Zitat antworten
Alt 20-10-2011, 01:10   #2 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.495
Hi,

das ist jetzt zwar AS3 und ... Geschmackssache ... ziemlich oldschool, aber mal schauen. Vielleicht gefällt dir sowas ja.

PHP-Code:
import flash.display.Sprite;
import flash.events.KeyboardEvent;
stage.align "TL";

const 
SPRITE_SIZE:int 32;
const 
HERO_SPEED:int 4;
const 
MAP_HEIGHT:int 8;
const 
MAP_WIDTH:int 10;

var 
hindernisse:Array = [];

function 
createBox(x:inty:into:Boolean=false):void
{
    if(
x==|| x==MAP_WIDTH-|| y==|| y==MAP_HEIGHT-1true;
    var 
s:Sprite = new Sprite();
    
s.graphics.lineStyle(10);
    
s.graphics.beginFill(0xCCCCCC 0xFFFFFF);
    
s.graphics.drawRect(00SPRITE_SIZESPRITE_SIZE);
    
s.graphics.endFill();
    
s.SPRITE_SIZE x;
    
s.SPRITE_SIZE y;
    
hindernisse[x] +=  1<<0;
    
addChild(s);
}

for (var 
posx:int=0posx MAP_WIDTHposx++)
{
    
hindernisse[posx] = 0;
    for (var 
posy:int=0posy MAP_HEIGHTposy++)
    {
        
createBox(posxposyMath.random()<.1);
    }
}

var 
hero:Sprite = new Sprite();
hero.graphics.lineStyle(10);
hero.graphics.beginFill(0xFF0000);
hero.graphics.drawCircle(SPRITE_SIZE*.5SPRITE_SIZE*.5SPRITE_SIZE*.5);
hero.graphics.endFill();
hero.hero.SPRITE_SIZE;
addChild(hero);


stage.addEventListener(KeyboardEvent.KEY_DOWNkdh);
function 
kdh(e:KeyboardEvent):void{
    if(
e.keyCode == 37 && !(hindernisse[int((hero.x-HERO_SPEED ) / SPRITE_SIZE)] & (<< int(hero.SPRITE_SIZE)))     && !(hindernisse[int((hero.x-HERO_SPEED ) / SPRITE_SIZE)] & (<< int((hero.y+(SPRITE_SIZE-1)) / SPRITE_SIZE))) )    hero.-= HERO_SPEED;
    if(
e.keyCode == 39 && !(hindernisse[int((hero.x+SPRITE_SIZE) / SPRITE_SIZE)] & (<< int(hero.SPRITE_SIZE)))    && !(hindernisse[int((hero.x+SPRITE_SIZE) / SPRITE_SIZE)] & (<< int((hero.y+(SPRITE_SIZE-1)) / SPRITE_SIZE))) )    hero.+= HERO_SPEED;
    if(
e.keyCode == 38 && !(hindernisse[int(hero.SPRITE_SIZE)] & ((<< int((hero.y-HERO_SPEED ) / SPRITE_SIZE))))    && !(hindernisse[int((hero.x+(SPRITE_SIZE-1)) / SPRITE_SIZE)] & ((<< int((hero.y-HERO_SPEED ) / SPRITE_SIZE)))) )    hero.-= HERO_SPEED;
    if(
e.keyCode == 40 && !(hindernisse[int(hero.SPRITE_SIZE)] & ((<< int((hero.y+SPRITE_SIZE) / SPRITE_SIZE))))    && !(hindernisse[int((hero.x+(SPRITE_SIZE-1)) / SPRITE_SIZE)] & ((<< int((hero.y+SPRITE_SIZE) / SPRITE_SIZE)))) )    hero.+= HERO_SPEED;

mfg

sx
__________________

flintfabrik.de
shin10 ist offline   Mit Zitat antworten
Alt 20-10-2011, 19:03   #3 (permalink)
Neuer User
 
Benutzerbild von chrisflasher
 
Registriert seit: Mar 2008
Beiträge: 98
ich habe inzwischen ein Prinzip gefunden das mir gut gefällt =)

Tile based games

Trotzdem danke für die Antwort
__________________
Actionscript bringt mich eines Tages noch um ^^
chrisflasher 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
Steuerung eines Autos mit ActionScript andiwini Flash Einsteiger 5 17-06-2006 18:52
steuerung von mcs mit actionscript noStein ActionScript 1 10 06-07-2004 09:44
Umgang mit mc steuerung und actionscript tampler Flash MX 2 22-10-2003 10:15
probleme mit flash5-actionscript konvertierung in flash4-actionscript !!! theWEBster Flash 4 und Flash 5 5 19-02-2003 07:46
mit actionscript alpha bestimmen und auch mit actionscript ändern (auftauchen) IcePick Flash 4 und Flash 5 3 29-01-2002 22:00


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele