• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash CS3 Professional

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-01-2010, 00:39   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2009
Beiträge: 6
AS2 Problem bei Flashgame - hittest funktioniert nicht wie es soll

Hallo,

ich habe ein Problem bei einem Hittest.
Und zwar habe ich einen kleinen Helden "hero" , der durch ein Level läuft und mit den Pfeiltasten gesteuert wird. Wenn er gegen eine Wand läuft, soll er blockiert werden, sprich nicht durch die Wände laufen können. Allerdings klappt das nicht ganz so wie ich will. Wenn man die Pfeiltasten langsam drückt dann klappt es, dann wird er wieder zurückgesetzt auf die vorherige Position, bleibt man aber auf den Pfeiltasten, kann er einfach durchlaufen. Hier mal mein Actionscript, habe es in den Movieclip hero gesetzt. Hoffe jemand kann mir weiterhelfen.

Code:
onClipEvent (load) {
   movement = 10;
   radius = 6;
   _x = 42;
   _y = 376;
}

onClipEvent (enterFrame) {
   if (Key.isDown(Key.LEFT)) {
      _x -= movement;
   }
   if (Key.isDown(Key.RIGHT)) {
      _x += movement;
   }
   if (Key.isDown(Key.UP)) {
      _y -= movement;
   }
   if (Key.isDown(Key.DOWN)) {
      _y += movement;
   }
   if (_root.wall.hitTest(_x, _y+radius, true)) {
      _y -= radius;
   }
   if (_root.wall.hitTest(_x, _y-radius, true)) {
      _y += radius;
   }
   if(_root.wall.hitTest(_x-radius, _y, true)) {
      _x += radius;
   }
   if (_root.wall.hitTest(_x+radius, _y, true)) {
      _x -= radius;
   }   
}
jimbo_b ist offline   Mit Zitat antworten
Alt 31-01-2010, 17:18   #2 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 415
hittest ist nicht für solche kollisionsabfragen gedacht weil es nur eine kollision erfassen kann wenn sie stattfindet, bewegt sich dein held zb. schneller als die wand dick ist, ist es reiner zufall ob die hittest anschlägt oder nicht.

außerdem prüfst du nur einen pixel, du kannst hittest auch einfach ein anderen mc angeben, dann wird ein bounding boxes test durchgeführt was bei dir evtl. schon reicht.

sonst ist eine genauere abfrage zb. mit einem linien-schnittest nötig.

das zurücksetzen der spielfigur bei erfolgreichen hittest ist auch auch keine optimale lösung, außerdem setzt du es um radius zurück und nicht um movement was eine differenz von 4 pixeln zur folge hat.
ING ist offline   Mit Zitat antworten
Alt 31-01-2010, 22:05   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2009
Beiträge: 6
hey, danke für deine antwort, hab das ganze jetz bisschen umgebastelt und es funktioniert recht zufriedenstellend so. DANKE!
jimbo_b ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
game, hit test, hittest, spiel

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
hitTest funktioniert nicht!! ;-( Novanic ActionScript 1 3 17-03-2005 15:09
»Hittest« macht nicht was es soll? akigolf ActionScript 1 13 29-12-2004 22:42
hittest soll nicht sofort eintreten schmidi Flash MX 3 08-11-2004 10:11
hittest funktioniert nicht dance Flash 4 und Flash 5 0 03-06-2002 11:34


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele