ä»åã¯ActionScript 2(以äžãAS2)ã§è±ç«ãã·ãã¥ã¬ãŒãããŠã¿ãããAS2ã®ç¥è以å€ã«ãå€å°ã®æ°åŠãåæã«ããã®ã§ãã¡ãã£ãšåã£ä»ãã«ããæ¹ããããããããªããããããŸã§ãèãæ¹ããçè§£ããŠããããããã«èª¬æããŠããããã
è±ç«ãšããŒãã£ã¯ã«
ãŸããè±ç«ã¯äžè¬ã«ããŒãã£ã¯ã«ãšããææ³ãçšãããããŒãã£ã¯ã«æŒç®ãšã¯ç°¡åã«ãããšãããç°å¢ã®äžã§ã®å€æ°ã®ç²åã®åããç©çã·ãã¥ã¬ãŒããããã®ã ããã®ç²åãç ãæ°Žãªã©ã®äžå®åœ¢ãªãã®ã«èŠç«ãŠãããšã§ããããããªå Žé¢ã§å¿çšãå©ãè¡šçŸæ¹æ³ã ãè±ç«ã®å Žåã¯ãã®ãŸãŸç²åãç«è±ã«ãªãã
æŒç®ãªã©ãšãããšé£ãããã ããåŠçã®æµãèªäœã¯æå€ãšã·ã³ãã«ã ãå®éã®è±ç«ã®èŠçŽ ãç°¡åã«ãããããšæ¬¡ã®3ã€ã«ãªãã
ã1. ççºãâè±ç«ãçæãã
ã2. æ¡æ£ãâåããèšç®ãã
ã3. çºå ãâè±ç«ãããæç»ãã
|
|
èšç®èªäœã¯MCãªã©ã¯äœ¿ããã«åº§æšããŒã¿ã®ã¿ã§è¡ãã®ã§Objectã¯ã©ã¹ã«ç²åããŒã¿ãšããŠçæããé åã«æ ŒçŽããŠãã |
/* [åæå] */
// ãããããèšç®çšã®ãªããžã§ã¯ããããããçæãã
var particleList:Array = new Array(); //è±ç«ã²ãšã€åã®ããŒãã£ã¯ã«ç²åã®éãŸã
var count:Number = 100; // è±ç«ã²ãšã€ãããã®ç²åã®æ°
for( var i:Number=0; i < count; ++i ) {
var particle:Object = new Object(); // ç²å1ã€åã®æ
å ±
particleList.push( particle );
}
// æ¯ãã¬ãŒã ã®åŠç
onEnterFrame = function () {
/* [èšç®] */
for( var i:Number=0; i < count; ++i ) {
var particle:Object = particleList[i];
// åå¥ã®ããŒãã£ã¯ã«ã®èšç®åŠç
}
/* [æç»] */
}
ç«è±ã®ç¹æ§ãèãã
è±ç«ã®ç«è±ã¯çºç«ããŠãããã°ããçºå ãããããŠæ¶ããŠãããéåã®é床ãªã©ã«ãããããå ãç¶ãããšããããšã¯ãççºã®ãšãã«ã®ãŒã空æ°äžã§æ¶ããŠããã€ã¡ãŒãžãªã®ã§ããæç¶ãšãã«ã®ãŒããšããæŠå¿µãæãããšããããã ããŸãæç¶æ§ã¯æéãšãšãã«æžè¡°ããŠããã®ã§ããããæéããšã«èšç®ããããšã§è¡šçŸã§ããã
|
|
ãã®ããã«æçµçã«ãšãã«ã®ãŒãäžå®éãäžåã£ãããã®ç«è±ãæ¶ããéã«ããã°æç¶ãšãã«ã®ãŒãå°œãããŸã§ç©çæŒç®åŠçãªã©ãè¡ãããããšã«ãªã |
/* [åæå] */
particle.energy = 10; // åæãšãã«ã®ãŒãèšå®ãã
/* [èšç®] */
//æ¯ãã¬ãŒã ã®åŠç
particle.energy *= 0.95; // ã¡ãã£ãšãã€ãšãã«ã®ãŒæžè¡°ããã
//èšç®ãããããšã
if( particle.energy < 0.1 ) continue;
å é床ãšéåã®è¡šçŸ
è±ç«ã¯åºæ¬çã«ãäžå¿ããå «æ¹ã«é£ã³æ£ãã®ã§ã空æ°äžã®ç«è±ã®åãã¯ççºãããšãã®æ¹å(è§åºŠ)ãšå¢ã(é床)ã§æ±ºãŸããã²ãšãŸã座æš(100, 100)ãã5ã®å¢ãã§ãã©ã³ãã ãªæ¹åã«åéãäžãããæ¯ãã¬ãŒã ãçŸåšäœçœ®ã«é床ãè¶³ãããšã§ç«è±ã®åãã衚çŸã§ããã
/* [åæå] */
// ç²åã®åæå€ãèšå®ãã
var angle:Number = 360*Math.random(); //è§åºŠ
var velocity:Number = 5; //å¢ã
particle.x = 100;
particle.y = 100;
// è§åºŠãšåéããX,Yã®é床æåãèšå®ãã
particle.vx = Math.cos( angle ) *velocity;
particle.vy = Math.sin( angle ) *velocity;
/* [èšç®] */
//æ¯ãã¬ãŒã ã®åŠç
particle.x += particle.vx;
particle.y += particle.vy;
確èªãã
ãšããããäœããæç»ããªããšããããªãã®ã§ãMovieClipã®æç»ã¡ãœããã§ç¹ã衚瀺ããã
/* [åæå] */
// 衚瀺çšMC
var viewmc:MovieClip = this.createEmptyMovieClip("viewmc",0);
/* [æç»] */
// æç»åŠçæºå
this.viewmc.clear();
this.viewmc.lineStyle( 3, 0xFFFFFF );
// åç¹ã®æç»åŠç
this.viewmc.moveTo( particle.x, particle.y );
this.viewmc.lineTo( particle.x, particle.y );
this.viewmc.lineTo( particle.x+0.5, particle.y+0.5 );
|
|
ç»åãã¯ãªãã¯ãããšãµã³ãã«ãéãããã®ãŸãŸã§ã¯äœã圱é¿ããªãã®ã§ç¡æ©è³ªãªçéçŽç·éåã |
|
|
ç«è±ã¯ã»ãšãã©éãããªãããå€å°ã®éåãç©ºæ°æµæã®åœ±é¿ãåããã®ã§ããããèšç®ãããåãåæããèšç®ã¯åºæ¬çã«å šéšè¶³ãã°ããã®ã§ãé ã«èšç®ããŠããã |
/* [èšç®] */
// ç©ºæ°æµæ(åããŠããæ¹åã«å²æž)
particle.vx *= 0.95;
particle.vy *= 0.95;
// éå(ç²åã®éåã«ãããããåžžã«äžã«åã)
particle.vx += 0;
particle.vy += 0.03;
|
|
ããã§ãšããããè±ç«ãããåããã§ããŠããã¯ããªã®ã§ãç»åãã¯ãªãã¯ããŠãµã³ãã«ã確èªããŠã¿ãã |
èšç®ãšæç»ããããŠåŠçãã
ãããŸã§ãæç¶ãšãã«ã®ãŒãé床ãç©ºæ°æµæãéåãªã©ããã€ãã®åŠçãã§ãŠããããããããªåœ±é¿ãèšç®ããå Žåããããããåç®ããŠããŸã£ãŠãããåŸã§èŠãç®ã®åæ ãããããšã§ããšãŠãèŠããããªã調æŽãããããªãããŸãæç»ã1åã§ããã®ã§è² è·ã®è»œæžã«ããªãã
ãããããèãããšã1åã®åŠçã«ã€ãèšç®ãšæç»ã®ããããã§ãåãé åãè€æ°åã«ãŒãåŠçãããšãã£ãéå¹çãªé¢ããããéå¹çã§ã¯ããããããŸãåæã«åŠçãæžããšãããã°ã調æŽããã¥ããã®ã§ãã²ãšãŸãåããŠäœã£ãŠãããŠãåŸèšããæé©åã®éšåã§ç¡é§ãçãããã«ãããšããã ããã
èè¶³ã ããã©ã®ãããªããã°ã©ã ã§ããåæåãç¶æ åŠçãèŠãç®ã®åæ ãšåãåããŠå®è£ ããããšã§ãäžèŠåé·ã«ãªãããé·ãç®ã§èŠãŠéçºããããã³ãŒãã«ãªãããšãå€ããšæãã皌åããã©ãŒãã³ã¹ãšã®ãã¬ãŒããªãã«ã€ããŠãåæ§ã ã
ãã£ãšè±ç«ãããã工倫ãã
ã²ãšãŸã茪ç¶ã«è±ãå²ããããããã ãšè±ç«ãããã«ããŸãã¡æ¬ ããããã£ãšã°ãããæããåºãããã«ã©ã³ãã ããå ããåŠçãããŠãããã
ç²åã®åéãããããšããå¢ã(Velocity)ãåäžã«ããŠããã®ãã©ã³ãã ã«å€æŽããã
//è§åºŠãšåéããX,Yæåã®éåºŠãæ±ºå®
var velocity:Number = 5*Math.random();
particle.vx = Math.cos( angle ) *velocity;
particle.vy = Math.sin( angle ) *velocity;
ãŸãããšãã«ã®ãŒãäžç·ã ãšç²åã®æ¶ãéãåæã«ãªãäžèªç¶ãªã®ã§ãæç¶ãšãã«ã®ãŒãããã©ã³ãã ã«ããéšåçã«ä¹±æ°ããããããšã§5以äž10以å ã«èšå®ããã
particle.energy = 5 + 5*Math.random();
|
|
ããã§ç¢ºèªããŠã¿ããšã©ãã ãããå°ãè±ç«ããããåºãŠããã®ã§ã¯ãªãã ããã |
ç«è±ã®è¡šçŸ
æåŸã«èŠãç®ã®ä»äžããšããŠç«è±ã®è¡šçŸã®åŠçãããããMCã®ã€ã³ã¹ã¿ã³ã¹ãç²åããšã«çæãããšã倧å€åŠçãéããªããšäºæ³ãããã®ã§ç»é¢å šäœãããããããåŠçããããšã§æŒåºããã
å ã»ã©ãšã®å€æŽç¹ã¯ããŸãç¹æç»çšã®MCãšã¯å¥ã«ããããããçšã«MCãçæãããã¡ãã«ãããããããæç»ããŠãããæç»ãšåæã«åéæã®ãããããããéããããšã§ä»¥åã®ç«è±ãå°ããã€æ¶ãããã§ãããäœé»ã衚çŸãããæ¬¡ã«èµ€ãåéæã®MCããªãŒããŒã¬ã€ã§éããŠçè²ããã
//æç»çšã®æºå
this.createEmptyMovieClip( "drawmc", 0 ); //æ§viewmc
this.createEmptyMovieClip( "viewmc", 1 );
var bm:BitmapData = new BitmapData( 300, 300, true, 0x00000000 ); //ç¹æç»çš
var bm2:BitmapData = new BitmapData( 300, 300, true, 0x60000000 ); //äœé»çš
this.viewmc.attachBitmap( bm, 0 );
//è²ãã€ããããã®ã«ã©ãŒãã¹ã¯(ãªãŒããŒã¬ã€)
this.mask.swapDepths(10);
//ã«ãŒãåŸãç»é¢å
šäœã®ãã³ããæç»ãã
bm.draw( this.bm2 );
bm.draw( this.drawmc );
|
|
ããã§äžéã宿ã ãç»åãã¯ãªãã¯ããŠãµã³ãã«ã確èªããããé³ãä»ãããããªãè±ç«ããããªãã®ã§ã¯ãªãã ããã |
ãªãã¹ããã¥ãŒãã³ã°ããããã«
1.äœèšãªèšç®ã¯ããªã
å°ããªèšç®åŠçã§ãäžã€èšç®ãå¢ãããšÃç²åæ°åè² è·ãå¢ãããå°ãã§ãå¹çããé«éã«èšç®ãããããã¥ãŒãã³ã°ãããã
2.ã«ãŒãå ã§ã®å€æ°ã®å®£èšããªãã©ã«ã®çæãæžãã
倿°ã®å®£èšããªãã©ã«(倿°ãããªãæååãæ°å)ã¯ãå éšã§ã¡ã¢ãªã確ä¿ããåŠçãå ¥ãããã倧éã«ã«ãŒããããšè² è·ã«ãªãå¯èœæ§ããããããããã宣èšãã倿°ã䜿ããŸãããã«ãŒãå ã§å€åããªãå€ã¯ã«ãŒãå€ã§å€æ°åããŠãããªã©ã®å·¥å€«ããããšé«éåã§ããã
// æ¹åå
for( ⊠) {
particle.energy * = 0.95;//æ°å€ãªãã©ã«
}
// æ¹ååŸ
var damp:Number = 0.95;//
for( ⊠) {
particle.energy * = damp;
}
3.ããŒã«ã«å€æ°ã䜿ã
ã¯ã©ã¹ã®ããããã£ãã°ããŒãã«å€æ°ããããŒã«ã«å€æ°ã®æ¹ãé«éã«åŠçã§ããŸããã«ãŒãå ã§äœåºŠãã¢ã¯ã»ã¹ããéšåã¯æ³šæãå¿ èŠã ã
4.ãããããããMCã®äœ¿çšåæ°ãæãã
FlashPlayerã§äžçªè² è·ãé«ãã®ã¯ãæç»ã«é¢ä¿ããåŠçãèŠãç®ã«ãã ããã€ã€ããªãã¹ãå°ãªãåŠçã§ãã¬ã€ã«è¡šçŸã§ãããã工倫ããããä»åã®äœé»çšããããããã®ããã«1åçæããã°ãããã®ã¯ããã®éœåºŠçæããªãã§äœ¿ããŸãããã
ãŸãšã
æçµçã«æé©ååŠçãããã®ã«ã¯ãªãã¯ã€ãã³ãã§è±ç«ãé©åœã«çæããããã«ãããœãŒã¹ãäœæãããè€æ°ã®è±ç«ãæç»ãããšããã§ãè¥å¹²æç»ã®ã¿ã€ãã³ã°ãªã©èª¿æŽããŠããã
ãµã³ãã«ã®ãã©ã¡ãŒã¿ãå€ãããšãããã«ãããããªè±ç«ãäœãããšãã§ããã ããããã®ãµã³ãã«ã¯è±ç«ãç®æãããããã©ã¡ãŒã¿ãæç»åŠçãå€ããŠããã°ãã¡ãã£ã衚çŸãã§ãããšæãã®ã§ã詊ããŠããã ãããã
æçµçã«ã¯ããã¢ãã¯ãªéšåã«ãè§ŠããããäžåºŠã«é£ããããšãããªãã§ãããããšããããã¡ãã£ãšãã€èä»ãããŠããããã»ã¹ã倧åã ãè€éãªéšåã¯åãåããŠè§£æ±ºããŠãããšããã ãããæ¬çš¿ãéããŠãæ¡å€ç°¡åã ãªãšæã£ãŠããã ããã幞ãã ã
æäŸ:ãã€ãã転è·ãšãŒãžã§ã³ã
ãäžæµã§WEBãµã€ãã®äŒç»ã»ãããã¥ãŒã¹ã«æºãããã!ããåŸ éãè¯ãããã!ã ãèªåã®çµéšã»ã¹ãã«ã§ã¯ã©ããªã®ã ããâŠ?ããå¿ãããŠè»¢è·æŽ»åããæéããªã!ã ãããªããªãã«âŠè»¢è·æŽ»åãç·åçã«ãµããŒãããŠããããããæ¢ããŠã¿ãŸãããïŒ ããã€ãã転è·ãšãŒãžã§ã³ããã¯ã人æç޹ä»åè»¢è·æ å ±ãµã€ãã ããªãã®è»¢è·æŽ»åãæåã«å°ãããã®ã³ã³ãµã«ã¿ã³ãããã£ãšèŠã€ãããŸã! éå ¬éæ±äººæ å ±ãªã©ãè»¢è·æ å ±ãµã€ãã§ã¯æ²èŒãããŠããªãæ±äººæ å ±ãæºèŒã§ã!
æ¯æ¥ã³ãã¥ãã±ãŒã·ã§ã³ãºã¯ãã©ã€ãã·ãŒããŒã¯ãååŸããŠããŸãã