Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-08-2008, 10:08   #1 (permalink)
Neuer User
 
Benutzerbild von chrisflasher
 
Registriert seit: Mar 2008
Beiträge: 98
Probleme beim Hittest

Hallo zusammen
ich habe eine Figur gebaut (mann_mc) die beim einer Kollisionsabfrage nicht mehr durch die Plattformen (plattform_1_mc und plattform_2_mc) fallen soll.

Das Problem ist, das die Figur kurz in der Plattform stoppt und letzendlich trotzdem durchfällt.

Was mache ich falsch ?




stop();
// Verhalten des Helden
mann_mc.onEnterFrame = function() {

// Hittest
for ( var i=1; i <= 2; i++ )
{
var name = eval("_root.spiel_mc.plattform_" + i + "_mc");

if ( this.hitbereich_mc.hitTest(name) )
{
// Steht auf einer Plattform. Daher kein Fallen und
// gelandet keine velocity mehr
_root.game.falling = false;
_root.game.velocity = 0;

// y-Position korrigieren
this._y = name._y;

break;
}
else
{
// Scheinbar noch kein Halt
_root.game.falling = true;
}

}



// Gravitation
if (_root.game.falling == true) {
// Der Held ist am fallen. Daher beschleunigt er
_root.game.velocity += _root.game.gravity;
this._y += _root.game.velocity;
}
};
chrisflasher ist offline   Mit Zitat antworten
Alt 18-08-2008, 11:43   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
hier links unten mal auf 'vB Code' klicken,
da steht, wie man beiträge im forum gestalten kann.


// var name = eval("_root.spiel_mc.plattform_" + i + "_mc");
richtiger:
var name = _root.spiel_mc["plattform_" + i + "_mc"];


if ( this.hitbereich_mc.hitTest(name) )
hitTest erwartet globale koordinaten

natürlich ungetestet:
Code:
mann_mc.onEnterFrame = function() {
  _root.game.falling = true;
  for (var i = 1; i<=2; i++) {
    var plattform = _root.spiel_mc["plattform_"+i+"_mc"];
    if (this.hitbereich_mc.hitTest(plattform)) {
      _root.game.falling = false;
      _root.game.velocity = 0;
      this._y = plattform._y;
      continue;
  } }
  if (_root.game.falling) {
    _root.game.velocity += _root.game.gravity;
    this._y += _root.game.velocity;
  }
};
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 18-08-2008, 23:03   #3 (permalink)
Neuer User
 
Benutzerbild von chrisflasher
 
Registriert seit: Mar 2008
Beiträge: 98
Vielen Dank hat geklappt
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



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele