Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Teorema diPitagora - collisione tra due MovieClip

This is a discussion on Teorema diPitagora - collisione tra due MovieClip within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Eccoci al secondo appuntamento con il teorema di Pitagora. Consiglio di leggere la prima parte di questo articolo in modo ...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 20-09-07, 14:48
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Teorema diPitagora - collisione tra due MovieClip

Eccoci al secondo appuntamento con il teorema di Pitagora.
Consiglio di leggere la prima parte di questo articolo in modo da poter meglio concepire quanto andrò a dimostrare.
Nella prima parte abbiamo visto come calcolare la distanza reale tra due oggetti.
Ora scopriremo come controllare una collisione tra oggetti con il teorema di Pitagora.
Molti di voi sicuramente penseranno: ' che senso ha calcolare Pitagora per controllare una collisione quando ho a disposizione il metodo hitTestObject ? '
Per eseguire collisioni semplici, hitTestObject rimane un ottimo metodo. Per collisioni molto più complesse e soprattutto nello sviluppo di video giochi con Flash, Pitagora rimane indiscutibile.

Vediamo l' esempio...

Creo un FLA, che salvo con nome ' collisione_pitagora.fla ' al cui interno creo due MovieClips alle quali assegno nomi istanze ' ball_0_mc ' e ' ball_1_mc ' .
Creo la Document Class, un fila AS che salvo con nome ' Collisione.as ', implementata in questo modo:
Code:
package
{
	import flash.display.MovieClip;
	import flash.events.Event;
	
	public class Collisione extends MovieClip
	{
		public function Collisione()
		{
			init();
		}
		
		private function init():void
		{
			stage.frameRate=31;
			
			ball_0_mc.x=0;
			ball_1_mc.x=stage.stageWidth;
			
			this.addEventListener(Event.ENTER_FRAME,go);
		}
		
		private function go(e:Event):void
		{
			var x:Number=ball_0_mc.x-ball_1_mc.x;
			var y:Number=ball_0_mc.y-ball_1_mc.y;
			var distance:Number=Math.sqrt(x*x+y*y);
			if(distance<=ball_0_mc.width)
			{
				this.removeEventListener(Event.ENTER_FRAME,go);
				trace('stop');
			}
			else
			{
				ball_0_mc.x++;
				ball_1_mc.x--;
			}
		}
	}
}










Analizziamo il codice

Metodi
init();
imposto la velocità del frame rate
stage.frameRate=31;
posiziono le MovieClips
ball_0_mc.x=0;
ball_1_mc.x=stage.stageWidth;
aggiungo un intervallo ENETR_FRAME
this.addEventListener(Event.ENTER_FRAME,go);

go();
applico il teorema di Pitagora come già visto in questo articolo
var x:Number=ball_0_mc.x-ball_1_mc.x;
var y:Number=ball_0_mc.y-ball_1_mc.y;
var distance:Number=Math.sqrt(x*x+y*y);
se la distanza è minore del width di ball_0_mc ( questo perchè le MovieClips hanno il punto di registrazione al centro )
if(distance<=ball_0_mc.width)
{
rimuovo l' intervallo e faccio un trace che mi avvisa
this.removeEventListener(Event.ENTER_FRAME,go);
trace('stop');
}
altrimenti muovo le due MovieClips una verso l' altra
else
{
ball_0_mc.x++;
ball_1_mc.x--;
}

Alla prossima !
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
Actionscript 3 collisione tra sfera e superficie curva jacu85 Actionscript 3.0 avanzato 6 13-11-08 15:18
Actionscript 3 Evento rollover su movieclip sotto ad altro movieclip rajan Actionscript 3.0 base 2 16-10-08 18:42
Teorema di Pitagora con Actionscript 3.0 Flep Articoli e tutorials 1 23-04-08 16:43
[as 2] Collisione tra MC niubbo Flash CS3 generale 2 10-03-08 10:23
Aggiungere dinamicamente un MovieClip figlio ad un altro MovieClip nextpaco Actionscript 3.0 avanzato 17 17-10-07 07:05


All times are GMT. The time now is 12:58.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406