Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-06-2007, 22:38   #1 (permalink)
Neuer User
 
Registriert seit: May 2007
Beiträge: 2
Kollision zwischen zwei MCs wird nicht erkannt

Hallo,

ich arbeite gerade an einem sehr simplen Spiel, bei dem ein MC in einem quadratischen Raum hin und her fliegt (prallt von den Wänden ab).

Der zweite MC "hängt" am Mousecursor. Nun möchte ich per hitTest abfragen, ob eine Kollision zwischen den beiden Objekten besteht.

AS für den MC am Cursor:

Code:
onClipEvent (enterFrame) {
	Mouse.hide();
	this._x += _xmouse;
	this._y += _ymouse;
}

onClipEvent (enterFrame) {
	if (this.hitTest(_root.ball)){ 
		trace("hit");
	}
Der andere MC, welcher von selber im Raum herumfliegt, hat nur die Berechnungen für das Abprallen an den Wänden und die Geschwindigkeit im AS.

Wenn ich nun mit dem Cursor eine Kollision zwischen den beiden MCs herbeiführe, wird diese aber nicht erkannt, es wird also kein trace angezeigt.

Auch nach ewigem trial & error inklusive Studium der AS Referenz habe ich keine Ahnung, wo da genau der Fehler liegt, oder ob ich einfach nur irgendetwas vergessen habe.

Vielen Dank im Voraus.
timmsen ist offline   Mit Zitat antworten
Alt 18-06-2007, 06:15   #2 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
du hast 2 onClipEvent(onEnterFrame) Blöcke - soweit ich weiß geht das nicht.
Kommt überhaput irgendwas wenn du was im 2. trace()'d? (auch außerhalb des if-Block)

Am schluss fehl ein } aber das ist denk ich mal beim kopieren/einfügen verlorengegangen.

also pack das ganze mal in einen Handler

ActionScript:
  1. onClipEvent (enterFrame) {
  2.     Mouse.hide();
  3.     this._x += _xmouse;
  4.     this._y += _ymouse;
  5.  
  6.     if (this.hitTest(_root.ball)){
  7.         trace("hit");
  8.     }
  9. }

Müsste dann funzen.
Aber ein paar schönheitsfehler gibts noch
- Mouse.hide() jeden Frame ist überflüssig, einmal reicht (onLoad?)
- AS gehört imho immer auf einen frame. nicht auf ein symbol. also in deinem fall auf die hauptzeitleiste, etwa sowas: (angenommen dein MC heisst "cursor")

ActionScript:
  1. Mouse.hide();
  2.  
  3. onEnterFrame = function(){
  4.     cursor._x = _xmouse;
  5.     cursor._y = _ymouse;
  6.  
  7.     if(cursor.hitTest(ball)){
  8.         trace("hit");
  9.     }
  10. }

da gehört dann natürlich auch noch das script vom "ball" dazu, das der sich bewegt und abprallt usw.

mfg. Daniel
__________________
Some Flash Worx
Alphanimal 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:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele