| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jun 2010
Beiträge: 1
| Collision Detection Problem
Hallo, ich hab ein Problem mit der Collision Detection bei meinem Buzzwire-Spiel (Heißer Draht). Die Collision Detection funktioniert im Full Screen nur teilweise, nur der linke Teil eines Objektes(Kreis) wird als Kollision erkannt. Die rechte Seite des Objektes leider nicht. Verlässt man jedoch den Fullscreen funktioniert die Detection einwandfrei. Skaliert man die Auflösung jedoch nach oben tritt der Fehler wieder auf je nach größe des Fensters wird die Kollision früher oder später erkannt. Je größer das Fenster ist desto schlechter funktioniert die Kollision. Ich arbeite mit dem Flex Builder und lade mit dem swfloader die Stages. Code: private function init():void{
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
dataXML=new GetXml(10000,stage.stageWidth/2, stage.stageHeight/2);
dataXML.addEventListener(ScreenEvent.POINT_EVENT, getScreen);
loadSWFContent();
gameContainer.addEventListener(Event.ENTER_FRAME, updateScene);
initCDK();
ballIsOk=true;
timer=new Timer(2000,1);
timer.addEventListener(TimerEvent.TIMER,reset,false,0,true);
}
private function loadSWFContent():void {
//Inhalte der SWF laden
gameContainer=MovieClip(wireSwf.content);
//Variablen zeigen auf Instanzen der SWF Datei
ball=gameContainer.ball;
bulb=gameContainer.bulb;
hand=gameContainer.hand;
wire=gameContainer.wire;
wire2=gameContainer.wire2;
wire3=gameContainer.wire3;
wire4=gameContainer.wire4;
finish=gameContainer.finish;
swfHeight=gameContainer.height;
swfWidth=gameContainer.width;
}
public function getScreen(evt:ScreenEvent):void{
if(!ballIsOk){
bulb.alpha=1;
//ball.x=370;
//ball.y=250;
counter++;
Application.application.status=counter;
}
else{
bulb.alpha=0.3;
ball.x=evt.myScreenArray[0];
ball.y=evt.myScreenArray[2]*-3+800;
hand.x=ball.x-48;
hand.y=ball.y+78;
}
}
private function initCDK():void {
//Collision Detection - CollisionList - einer gegen alle
collisionList=new CollisionList(ball);
collisionList.addItem(wire);
collisionList.addItem(finish);
}
private function updateScene(e:Event):void {
var collisions:Array=collisionList.checkCollisions();
if (collisions.length) {
var collision:Object=collisions[0];
var angle:Number=collision.angle;
var overlap:int=collision.overlapping.length;
ballIsOk=true;
trace("collision.object1.name " + collision.object1.name);
trace("collision.object2.name " + collision.object2.name);
timer.start();
if(collision.object2.name=="finish"){
//txtColl.text="Finish!";
}
trace("hit");
}
else{
bulb.alpha=1;
//ballIsOk=false;
}
}
private function reset(e:TimerEvent):void{
ballIsOk=true;
trace("this is the timer");
} Danke Tommy Geändert von tomyh (17-06-2010 um 09:29 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Collision Detection Probleme | mirzahat | ActionScript 3 | 2 | 28-05-2010 02:22 |
| AS2: Collision Detection mit Quadtree | Padde85 | Flash CS3 Professional | 3 | 26-04-2010 17:52 |
| massen collision detection | _kweso | ActionScript 3 | 7 | 26-03-2010 12:57 |
| Collision Detection | FLASHStyler | ActionScript 3 | 2 | 03-09-2008 22:13 |
| ** Collision Detection ** | powl | ActionScript 1 | 7 | 31-01-2003 11:33 |