Vietnam Single Tim Ban Bon Phuong  


HOME  -  FORUM  -  REGISTER  -  MY ACCOUNT  -  NEW  PHOTOS  -  BROWSE  -  SEARCH  -  POEM  -  ECARD  -  FAQ  -  NCTT  -  CONTACT



Diễn Đàn
 Những chủ đề mới nhất
 Những góp ý mới nhất
 Những chủ đề chưa góp ý

 
NCTT Những chủ đề mới nhất

NCTT Những góp ý mới nhất
NCTT Website


Who is Online
 

 

Forum > Âm nhạc, điện ảnh >> Nhạc Flash: Trống Cơm - Cách vẽ nhện bằng code

 Bấm vào đây để góp ý kiến

1

 amoremio
 member

 ID 32666
 11/16/2007



Nhạc Flash: Trống Cơm - Cách vẽ nhện bằng code
profile - trang ca nhan  posts - bai da dang  email -goi thu   Thong bao bai viet spam den webmaster  edit -sua doi, thay doi edit -sua doi, thay doi  post reply - goy y kien








Trống cơm
Dân ca Quan Họ Bắc Ninh


Tình bằng có cái trống cơm
Khen ai khéo vỗ
Ố mấy bông mà nên bông
Ố mấy bông mà nên bông

Một đàn tang tình con nít
Một đàn tang tình con nít
Ố mấy lội, lội, lội sông
Ố mấy đi tìm, em nhớ thương ai
Đôi con mắt ố mấy lim dim
Đôi con mắt ố mấy lim dim

Một bầy tang tình con nhện
Ô ố ô ô mấy giăng tơ
Giăng tơ ô mấy đi tìm, em nhớ thương ai
Duyên nợ khách tang bồng
Duyên nợ khách tang bồng...




Xin chân thành cảm ơn các tác giả Robert Penner, Adam Bowman đã giúp Phượng Các học hỏi được cách thức vẽ hình bằng code

* Cách làm:

Trên Timeline, tạo layer mới và chọn frame thứ 6 của flash nhạc (hoặc frame nào khác tùy ý muốn cho xuất hiện nhện) và đưa code sau vào.



Math.easeInOutQuad = function (t, b, c, d){
if ((t/=d/2) <1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2)-1) + b;
};
Math.fixAngle = function (angle) {
angle %= 360;
return (angle < 0) ? angle + 360 : angle;
};

numWalkers=3;
stride=50;
legHeight=8;
buffer=50;
stepHeight=6;

//frames between steps
wait=2;
//make sure the number of legs is even
walkCycle=new Array({leg:"R2",length:35},{leg:"L1",length:25},{leg:"L3",length:30},{leg:"R4",length:25},{leg:"R1",length:25},{leg:"L2",length:35},{leg:"R3",length:30},{leg:"L4",length:25});
numLegs = walkCycle.length;
for(i=1;i<=_root.numWalkers;i++){
_root.createEmptyMovieClip("body"+i,depth++);
for(j=0;j<_root.numLegs;j++){
_root["body"+i].createEmptyMovieClip(_root.walkCycle[j].leg,depth++);
_root["body"+i][_root.walkCycle[j].leg].length=_root.walkCycle[j].length;
}
_root["body"+i]._x=Math.random()*Stage.width;
_root["body"+i]._y=Math.random()*Stage.height;
_root["body"+i].angle=_root["body"+i]._rotation=Math.random()*360;
_root["body"+i].resetMove=function(){
for(j=1;j<=(_root.numLegs/2);j++){
delete this["R"+j].onEnterFrame;
delete this["L"+j].onEnterFrame;
this["R"+j].beginX=false;
this["L"+j].beginX=false;
this["R"+j].time=0;
this["L"+j].time=0;
}
this.setLegs();
};
_root["body"+i].setLegs=function(){
var legAngle = 360/(2+_root.numLegs);
for(j=1;j<=(_root.numLegs/2);j++){
this["R"+j].shadow_x=this["R"+j].x=this._x-(Math.sin((this.angle-90+(legAngle*j))*(Math.PI/180))*this["R"+j].length);
this["R"+j].shadow_y=this["R"+j].y=this._y+(Math.cos((this.angle-90+(legAngle*j))*(Math.PI/180))*this["R"+j].length);
this["L"+j].shadow_x=this["L"+j].x=this._x+(Math.sin((this.angle+90-(legAngle*j))*(Math.PI/180))*this["L"+j].length);
this["L"+j].shadow_y=this["L"+j].y=this._y-(Math.cos((this.angle+90-(legAngle*j))*(Math.PI/180))*this["L"+j].length);
}
};
_root["body"+i].setLegs();
_root["body"+i].onEnterFrame = walk;
_root["body"+i].duration = 9+(int(Math.Random()*4));
_root["body"+i].angleSpeed = 20+(int(Math.Random()*10));
}
function move(){
if(!this.beginX){
this.beginX=this.shadow_x;
this.changeX=this.targetX-this.beginX;
this.beginY=this.shadow_y;
this.changeY=this.targetY-this.beginY;
}
this.shadow_x=Math.easeInOutQuad(this.time++,this.beginX,this.changeX,this._parent.duration);
this.shadow_y=Math.easeInOutQuad(this.time,this.beginY,this.changeY,this._parent.duration);
this.footHeight = _root.stepHeight*Math.sin((this.time/this._parent.duration)*Math.PI);
this.x = this.shadow_x;
this.y = this.shadow_y-this.footHeight;
if (this.time>this._parent.duration){
this.beginX=false;
this.time=0;
delete this.onEnterFrame;
}
};
function walk(){
if(this._x>(Stage.width+_root.buffer)){
this._x=-_root.buffer/1.5;
this.resetMove();
}
if(this._x<-_root.buffer){
this._x=Stage.width+(_root.buffer/1.5);
this.resetMove();
}
if(this._y>(Stage.height+_root.buffer)){
this._y=-(_root.buffer/1.5);
this.resetMove();
}
if(this._y<-_root.buffer){
this._y=Stage.height+(_root.buffer/1.5);
this.resetMove();
}
var totX;
var totY;
for(i=1;i<=(_root.numLegs/2);i++){
totX+=this["L"+i].shadow_x;
totY+=this["L"+i].shadow_y;
totX+=this["R"+i].shadow_x;
totY+=this["R"+i].shadow_y;
}
this._x=totX/_root.numLegs;
this._y=totY/_root.numLegs;

//rear coordinates
var aveX1 = (this.L4.shadow_x + this.R4.shadow_x)/2;
var aveY1 = (this.L4.shadow_y + this.R4.shadow_y)/2;
var bodyAngle=Math.atan2((this._y-aveY1),(this._x-aveX1))+Math.PI;
this.rear_x = this._x + 18/2*Math.cos(bodyAngle);
this.rear_y = this._y + 18/2.5*Math.sin(bodyAngle);
this.rear2_x = this._x + 25/2*Math.cos(bodyAngle);
this.rear2_y = this._y + 25/2.5*Math.sin(bodyAngle);

if (this.counter==_root.wait){
var currLeg=_root.walkCycle[this.leg].leg;
var legLength=_root.walkCycle[this.leg].length;
//randomly change direction
if ((int(Math.random()*8)+1 == 8)&&(currLeg.charAt(1)=="1")){
(Math.round(Math.random())) ? this.angle-=this.angleSpeed : this.angle+=this.angleSpeed;
this.angle = Math.fixAngle(this.angle);
}
(this.leg<(_root.numLegs-1)) ? this.leg++ : this.leg=0;
(currLeg.charAt(0)=="R") ? this.side=-1 : this.side=1;
var legStride = _root.stride - ((currLeg.charAt(1))-1)*(_root.stride/(_root.numLegs/3));
var dest_x=this._x+(Math.cos(this.angle*(Math.PI/180))*(legStride));
var dest_y=this._y+(Math.sin(this.angle*(Math.PI/180))*(legStride));
this[currLeg].targetX=dest_x+(this.side*(Math.sin(this.angle*(Math.PI/180))*legLength));
this[currLeg].targetY=dest_y-(this.side*(Math.cos(this.angle*(Math.PI/180))*legLength));
this[currLeg].onEnterFrame = move;
}
(this.counter<_root.wait) ? this.counter++ : this.counter = 0;
};
onEnterFrame = function(){
_root.clear();
var i=1;
for(i=1;i<=_root.numWalkers;i++){
//shadow
_root.lineStyle(8, 0x979698, 20);
_root.moveTo(_root["body"+i]._x, _root["body"+i]._y);
_root.lineTo(_root["body"+i]._x+.5, _root["body"+i]._y);
_root.lineStyle(13, 0x979698, 20);
_root.moveTo(_root["body"+i].rear_x, _root["body"+i].rear_y);
_root.lineTo(_root["body"+i].rear2_x, _root["body"+i].rear2_y);

_root.lineStyle(3, 0x979698, 25);
for(j=1;j<=(_root.numLegs/2);j++){
_root.moveTo(_root["body"+i]["R"+j].shadow_x, _root["body"+i]["R"+j].shadow_y);
_root.lineTo(_root["body"+i]._x, _root["body"+i]._y);
_root.moveTo(_root["body"+i]["L"+j].shadow_x, _root["body"+i]["L"+j].shadow_y);
_root.lineTo(_root["body"+i]._x,_root["body"+i]._y);
}
_root.lineStyle(1, 0x333333, 100);
for(j=1;j<=(_root.numLegs/2);j++){
_root.moveTo(_root["body"+i]["R"+j].x, _root["body"+i]["R"+j].y);
_root.curveTo(_root["body"+i]["R"+j].x, _root["body"+i]["R"+j].y-15, _root["body"+i]._x, _root["body"+i]._y-_root.legHeight);
_root.moveTo(_root["body"+i]["L"+j].x, _root["body"+i]["L"+j].y);
_root.curveTo(_root["body"+i]["L"+j].x, _root["body"+i]["L"+j].y-15, _root["body"+i]._x, _root["body"+i]._y-_root.legHeight);
}
_root.lineStyle(5, 0x333333, 100);
_root.moveTo(_root["body"+i]._x, _root["body"+i]._y-_root.legHeight);
_root.lineTo(_root["body"+i]._x+.5, _root["body"+i]._y-_root.legHeight);
_root.lineStyle(10, 0x6C020B, 100);
_root.moveTo(_root["body"+i].rear_x, _root["body"+i].rear_y-_root.legHeight);
_root.lineTo(_root["body"+i].rear2_x, _root["body"+i].rear2_y-_root.legHeight);
}
};


Nhắn Bimbim: nếu em muốn thử đoạn code, em có thể thay đổi giá trị các biến số sau để điều chỉnh số nhện (numWalkers), các thông số liên quan đến chân của nhện,v.v... (chị vẫn chưa thử hết vì có ít thời gian).

numWalkers=3;
stride=50;
legHeight=8;
buffer=50;
stepHeight=6;

PC cảm ơn Anh MN và Bimbim thật nhiều. Chúc hai anh em vui nhé.



Alert webmaster - Báo webmaster bài viết vi phạm nội quy
 

 bimbim118
 member

 REF: 255737
 11/16/2007

  profile - trang ca nhan  posts - bai da dang  email - goi thu  Thong bao cam nhan spam den webmaster  edit - sua bai, thay doi  edit - sua bai, thay doi post reply - goy y kien, dang bai

Wooa đẹp và hay quá chị PC ơi, hihi để bữa nào rảnh em học theo chị nhé!
Chị giỏi quá!
hihihiii


 

 amoremio
 member

 REF: 255804
 11/16/2007

  profile - trang ca nhan  posts - bai da dang  email - goi thu  Thong bao cam nhan spam den webmaster  edit - sua bai, thay doi  edit - sua bai, thay doi post reply - goy y kien, dang bai
Bimbim ơi, em còn trên net? Sáng nay công việc quay chị quá trời. Bi giờ lại đến giờ ăn trưa rồi, huhu...tại đói bụng đó :-)... chị sẽ ráng xem phần LOADING trong chiều nay, nếu không được sẽ gởi file qua mail yahoo cho em. Như vậy em so sánh từng frame và code thì sẽ rõ.

Chị thấy Bimbim rất chịu khó học, ngoài ra tính tình dễ thương dễ mến lắm. Chị hy vọng từ từ em sẽ quen flash dần dần và làm nhiều hoạt hình hay.

Vậy nhé, bi giờ chị đi kiếm gì bỏ bụng nha, hihi....

Thân


 
  góp ý kiến

 
   

  Kí hiệu: : trang cá nhân :chủ để đã đăng  : gởi thư  : thay đổi bài  :ý kiến

 
 

 


Nhà | Ghi danh Thành Viên | Thơ | Hình ảnh | Danh Sách | Tìm | Diễn đàn | Liên lạc | Điều lệ | Music | Link | Advertise

Copyright © 2024 Vietnam Single & Tim ban bon phuong All rights reserved.
Hoc Tieng Anh - Submit Website Today - Ecard Thiep - Hot Deal Network