連続技が使いのアクションゲームです。キャラクターの動きが軽快で時々出るカッコイイ技が決まるとスカッとした気分になります。シンプルなゲームだけどやはり制作には相当な苦労があったのかな。
上の画像でかっこいいシーンをキャプチャしようと思ったのですが、予想に反して情けないシーンが集まってしまいました。
Thursday
2010年9月09日
2009/12/29 (火) 11:54
連続技が使いのアクションゲームです。キャラクターの動きが軽快で時々出るカッコイイ技が決まるとスカッとした気分になります。シンプルなゲームだけどやはり制作には相当な苦労があったのかな。
上の画像でかっこいいシーンをキャプチャしようと思ったのですが、予想に反して情けないシーンが集まってしまいました。
2009/12/27 (日) 12:25
TOTOのサイトの水面の断面図を再現しようと色々しらべて、ActionScript 3.0で実験していますが、なかなかうまくいきません。
どうやら波動方程式を応用するようで、とりあえず公式をActionScript 3.0にしてみました。
2次元波動方程式の数値計算例(C言語)
http://www.geocities.jp/supermisosan/secondwaveequation.html
しかし、式のどの部分をいじれば改良できるのか。まだまだ検討中です。
var N:int=100;
var tmax:int=3;
var c:Number=1;
var dt:Number=1;
var dx:Number=1.5;
var t:int=0;
var i:int;
var j:int;
//ステージを画面に100%表示
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
//二次元配列の作成
//二次元配列(二次元目
var subYs:Array = new Array();
for (j = 0; j < N; j++) {
subYs.push(0);
}
//二次元配列(一次元目
var Ys:Array = new Array();
for (i=0; i<tmax; i++) {
Ys.push(subYs);
}
var sps:Array = new Array();
for (i=0; i<N; i++) {
var sp:Sprite = new Sprite();
sp.graphics.beginFill(0xff0000);
sp.graphics.drawCircle(0,0,2);
addChild(sp);
sps.push(sp);
}
//波の初期条件の決定
for (i=0; i<N; i++) {
if (30<i&&i<70) {
Ys[0][i]=-150;
} else {
Ys[0][i]=0;
}
//trace(Ys);//fprint
graphics.beginFill(0x000000);
graphics.drawCircle(i*5, Ys[0][i]+stage.stageHeight*1/4,2);
}
//マウスダウンのときに再初期化
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMD);
function onMD(e:MouseEvent):void {
t = 0;
for (i=0; i<N; i++) {
if (0<i&&i<100) {
Ys[0][i]=-550;
} else {
Ys[0][i]=0;
}
//graphics.beginFill(0x00ff00);
//graphics.drawCircle(Math.random()*stage.stageWidth,Math.random()*stage.stageHeight,10);//fprint
}
}
//n
//初期状態から次の状態を計算する
addEventListener(Event.ENTER_FRAME, onEF);
function onEF(e:Event):void {
t++;
if (t==1) {
for (i=1; i<N; i++) {
Ys[1][i]=Ys[0][i]+c*c/2*dt*dt/(dx*dx)*(Ys[0][i+1]+Ys[0][i-1]-2*Ys[0][i]);
}
Ys[1][0]=Ys[1][N-1]=0;//境界条件
for (i=0; i<N; i++) {
//trace(Ys);//fprintf
graphics.beginFill(0x000000);
graphics.drawCircle(i*5, Ys[1][i]+stage.stageHeight*2/4,2);
}
} else if (t>=2) {
//以降の波の状態を計算する
for (i=1; i<N; i++) {
Ys[2][i]=2*Ys[1][i]-Ys[0][i]+c*c*dt*dt/(dx*dx)*(Ys[1][i+1]+Ys[1][i-1]-2*Ys[1][i]);
}
Ys[2][0]=Ys[2][N-1]=0;
for (i=0; i<N; i++) {
//trace(Ys);//fprintf
sps[i].x = i*5,
sps[i].y = Ys[0][i]+stage.stageHeight*3/4;
}
//n
for (i=0; i<N; i++) {
Ys[0][i]=Ys[1][i];
Ys[1][i]=Ys[2][i];
}
}
}
2009/12/26 (土) 16:33
2009/12/26 (土) 15:07
ActionScript 3.0辞典 [FlashPlayer10/9対応]
伊藤 のりゆき (著), 大重 美幸 (著), 野中 文雄 (著), 植木 友浩 (著), 林 拓也 (著)
ActionScript 3.0の辞書が前々からほしかったのですが、どれにしようか悩んで結局買えない日が続いていました。年末集中的に制作しようと決め、ついに買ってしまいました。
似たような本が何冊がでているので本当に迷いました。この本に決めた理由はつぎです。
まだパラパラとしかめくっていませんが、ひとつFLASHを作ってみると、わからないスクリプトを調べるときに、パソコンで検索より、本で探した方がはやいことに気付きました。
また、空いた時間にパラパラとめくっていくだけでも色々な発見があっておもしろいです。この辞典をもとに新しいアイデアが生まれそうです。
この本がぼろぼろにはなるころにはActionScript 3.0が上達しているはず。
2009/12/26 (土) 13:22
クリスマスカードなるものが世間では流行っているそうで、WEBレターと言ってメールでクリスマスカードを送る人も多いそうです。
WEBの制作会社では自社のデザイン力をアピールするために、総力を結集して、WEB年賀状を作成するという話も聞いたとこがあります。そこで、自分でもActionScript 3.0を使ってクリスマスカードを作ってみました。
すぐできると思いきや、予想を大きく上回り、3時間以上かかっていました。
1番は何度もプレビューを繰り返して再現。さらに本来の雪と同様につもるように工夫しました。
2番は単純に知識と経験不足。変数を配列に割り当てている部分でミスに気がつかず苦戦。
ちなみに、雪に関しては少しこっています。工夫した点は次です。
どんどん雪が積もっていくということで初期では、ブラウザ画面を起動していればずっとつもよるようにしていました。
自分でも公開した画面を確認し、しばらく放置。しらばくするとなんかパソコン動作がおかしい。異常に重い。
ということで、デバイスマネージャーを見てみると、どうやらIEが動作が原因とのこと。そしてIEを改めて立ち上げてみると、さきほど公開したばかりのクリスマスカードの画面がとんでもないことになっていました。
つもった雪はパソコンのメモリとCPUをどんどん圧迫し、IEの応答しない、終了もできない。最近購入した自慢の高性能パソコンも苦しんでいます。(下の画像)あわてて修正して再度公開まで至りました。
ちなみに↓がパソコン泣かせのクリスマスカードです。数分開いているとブラウザの動きが鈍くなります。
(パソコン泣かせの)初期クリスマスカード(クリスマスツリー)
再度、アップロードしたクリスマスカードははじめの数分は つもっていく動作をみせますが、しばらくすると積もらなくなります。これでメモリとCPUの以上の問題は解決。クリスマスカードとしてはこれで十分。ついでに文字も加えておきました。
一日遅れのハッピーメリークリスマス。次は年賀状だ。
var yukis:Array = new Array();
var rads:Array = new Array();
var angles:Array = new Array();
var tumo:Sprite = new Sprite();
var i:int = 0;
var yuki_num:int = 200;
var tumoh:Number = -2;
var angle:Number = 0;
for(i=0; i<yuki_num; i++){
var yuki:Sprite = new Sprite();
var size:Number = Math.random();
yuki.graphics.beginFill(0xffffff, size * 0.3 + 0.7);
yuki.graphics.drawCircle(0,0,size*2+3);
yuki.x = stage.stageWidth * Math.random();
yuki.y = stage.stageHeight * Math.random();
angle = 30 * size + 30;
angles.push(angle);
rads.push(0);
addChild(yuki);
yukis.push(yuki)
}
addChild(tumo);
addEventListener(Event.ENTER_FRAME,onEF);
function onEF(e:Event):void {
//trace(tumoh);trace(5 * Math.sin(rads[10]));
tumoh += 0.005;
for(i=0; i<yuki_num; i++){
yuki = yukis[i];
rads[i] += Math.PI / angles[i];
yuki.x += 1 * Math.sin(rads[i]);
yuki.y += 2;
if(stage.stageHeight - tumoh < yuki.y){
tumo.graphics.beginFill(0xffffff);
tumo.graphics.drawCircle(yuki.x,yuki.y-Math.random()*2,5);
yuki.y = - 10;
yuki.x = Math.random() * stage.stageWidth;
}
}
}
2009/12/12 (土) 17:55
チームラボのFLASHがすごい。
5年前以上にかなりはまったただいじるだけのゲーム
「すなめ地獄」
に似ています。
DOFI-BLOG どふぃぶろぐ すなめ地獄 (HELL OF SAND)
http://ishi.blog2.fc2.com/blog-entry-164.html
チームラボのFLASHがすごいのは
図形の衝突判定。
三角形でも、長方形でもより自然に衝突して跳ね返る。
これがなかなか考えることができない物理計算。
さらに、図形ではなく、適当な落書きも形状を認識して
地面やら他の物体と衝突する。
一体どうやっているのだろう。
チームラボ株式会社-TEAM☆LAB Inc.
http://www.team-lab.com/
2009/12/10 (木) 22:57
面白法人カヤックのFLASHチームのブログです。
_level0.KAYAC
http://level0.kayac.com/
濃い情報がいっぱいつまっています。
全く見れていません。
FLASHが自由に使いこなせるようになると
きっと面白いものができるというのを予感させてくれます。
このサイトの中ですごいFLASH見つけました。
筆が画面上を走ります。
しかもランダムに筆の流れが変化します。
いったいこんなのどうやって作るんだ?
Labuat
http://soytuaire.labuat.com/
このサイトFLASHはすごいのですが、
肝心のメインサイトは何をしているサイトか全くわかりません。
どうやらスペイン語のサイトらしいです。
2009/11/28 (土) 16:42
Papervision3Dを使ってみる。
BitmapAssetMaterialクラスを使って描画テスト
3Dの分野はインパクトが強くで制作していてわくわくです。
2009/11/25 (水) 23:24
Amazon.co.jp: Papervision3Dではじめる Flash3Dアニメーション: ハヤシ カオル: 本
今一番気になっている本。
FLASHの世界が一気に広がる気がします。
問題はどう時間を捻出するか・・・
面白いことは間違いない。
© 2009 News Theme by DD & WordPress theme. Produced by Soccerlens - Football News Blog.
関連する記事