コッコ隊はねる893ヘッド君 ver02 (2005-09-24)
893ヘッド君をつまんでなげることができます。マウスの動かす速度で動きが変わります。壁に当たると跳ね返ったり、床に当たると跳ねたりします。床の摩擦抵抗はありません。893君はいつも実験役ですが、彼にとってこれは一生ついてまわるジレンマなのです。そして今日も893ヘッド君は跳ねるのです。
893ヘッド君のプログラムは以下のとおりになっています
ロードした時点で、893君の初期値を設定します
onClipEvent (load) {
speedx = 5;
speedy = 4;
pickup = 0;
}
マウスで893ヘッド君をとばす勢いを設定するためのプログラムをします
onClipEvent (enterFrame) {
if (pickup == 1) {
x1 = x2;
y1 = y2;
x2 = this._x;
y2 = this._y;
speedx = (x2-x1);
speedy = (y2-y1);
止まるタイミングを設定します
} else {
if (Math.abs(speedx)<0.2) {
speedx = 0;
}
if (Math.abs(speedy)<0.2) {
speedy = 0;
}
跳ね返るタイミングを設定します
if (this._x>300-this._width/2) {
this._x = 300-this._width/2;
speedx = speedx*-1*0.8;
}
if (this._x<0+this._width/2) {
this._x = 0+this._width/2;
speedx = speedx*-1*0.8;
}
if (this._y>193-this._width/2) {
this._y = 193-this._width/2;
speedy = speedy*-1*0.8;
}
if (this._y<0+this._width/2) {
this._y = 0+this._width/2;
speedy = speedy*-1*0.8;
}
擬似的な空気抵抗を設定します
speedx = speedx*0.99;
speedy = speedy*0.99+0.98;
893ヘッド君の動きを設定します
this._x = this._x+speedx;
this._y = this._y+speedy;
}
}
今回のFLASHはいろいろさんこうにさせてもらって作ったんだけど、物を動かす方法の1つが少し理解できた。次回からの作品にはこの方法も取り入れてなんかやってみたい
今後の話をすると実は物理運動をFLASHで再現してみたいと思ってる。ってゆうか物理法則の式を使って再現できるようなプログラムを作りたい。微分積分ができないからこっちで計算しないといけないな・・・。まぁやってみたいことだから出来ると思うけど。プログラムができるかどうかはべつとしてw
今回製作したファイル
・hane_893_ver02.fla
・hane_893_ver02.swf(「右クリック→対象をファイルに保存(A)...」で保存できます)
|