FLASHで格闘ゲーを作りたい!

1Now_loading...774KB05/02/10 17:48:20ID:numT7sLH
しかし、格闘ゲーの作り方が全くわからない・・・。
HPの設定の仕方とか、当たり判定のつけ方とか・・・。
ツクールなんか買ってられるか!FLASHで作るんだぃ!
って思ったんだけど、全然成功しないんです・・・orz
誰か助けてください、お願いします。

4053412009/01/09(金) 20:14:01ID:TvAHjdbH
http://swfup.info/view.php/10066.swf
ななめジャンプ足してみました
でもなんだか挙動が怪しい気がする・・

406Now_loading...774KB2009/01/09(金) 20:42:16ID:bS3Bayp2
キー同時押し対策が今後の鍵

407Now_loading...774KB2009/01/13(火) 18:32:11ID:I88BLj1z
>>355はなんで>>370にしないと動かないのですか?
動かしたいものの中の第1フレームに記述すれば動くはずですよね。

4083482009/01/13(火) 22:04:34ID:fug/qDbX
>>407

>>379にも書きましたが
たしかに動かしたい物の中に書けば動きます
しかしそれはフォーカスが当たっている間のみなので
対象のMCを一度クリックしてやらないといけないし、
ほかのMCにフォーカスがあたるとまた動かなくなります

今回の場合そんなやり方は非効率的ですしflashが動作している間ずっと
キーイベントが受け取れればベストなはずです
flashが動いている間ずっとキーイベントを受け取りたい場合は
stageに登録してやるとflashにフォーカスが当たっている間
常にキーイベントが取れるというわけです

4094072009/01/13(火) 22:56:54ID:2t+1o7c3
>>408
むは、ごめんなさい>>379スルーしてました。

4104072009/01/13(火) 23:04:08ID:2t+1o7c3
書き込んでしまった。
>>408
これまた丁寧にありがとうございます。
クリックすれば動きはするんですね。
難しい。

アルゴリズムマニアックス買ってきた。
こちらはとても面白い。
なんか色々妄想してしまいますね。

4113412009/01/15(木) 23:23:32ID:f0vgtzOv
必殺技のコマンドがわからんね
押したキーの取得は分かるが、一定時間以内に入力したかどうかを
判定する必要があると思うけど、どうやるのだろう
一定時間ごとに変数消す、ぐらいしか思いつかない

というかこれから作る必要のある、当たり判定やらキャラ選択やら考え出したら
頭パンクしそう

4123612009/01/16(金) 00:08:34ID:sztcwXhJ
>>411
>押したキーの取得は分かるが、一定時間以内に入力したかどうかを
ttp://hakuhin.hp.infoseek.co.jp/main/as3/date.html#DATE_00
↑ここの「測定中の経過時間を調べる」を参考に試してみれば良いかと。

>というかこれから作る必要のある、当たり判定やらキャラ選択やら考え出したら
>頭パンクしそう
当たり判定は妥協する点によって難易度が違うと思う。
他に作るべきモノはまだあるけど、一つ一つこなしていきましょう。
なるべくここを覗きますので。
がんばれ。

4133482009/01/16(金) 01:31:08ID:g5MIia36
>>411

コマンドは入力したキーと時間を配列に溜めていけばいける気がする
・・・と思ったけどどんなゲームにするかによっては難しくなるかな・・・?
状態遷移を考えてみるといいかもしれません

当たり判定は精度によってだいぶ難易度が変わるけど、ある程度すばやい格闘ゲームなら
そこまで精度を高くしなくてもごまかせるので、とにかく単純化して考えた方がいいです
当たり判定はすべて矩形で十分それっぽくみえます

キャラは形式化しておくのがポイントです
ある基本クラスから継承していろいろなキャラのクラスを作っておけば、
基本クラスだけを考えるだけですべてのキャラに適用できます

キャラ選択ってGUIのことだったかな・・・?w

一気にやると自分でもごちゃごちゃになる 安心してくださいww

414Now_loading...774KB2009/01/20(火) 18:40:56ID:IVuG/w7m
function xBlur(eventObject:Event):void { // 追加
var nBlur:Number = ぼかす値;
var myBlur:BlurFilter = new BlurFilter(nBlur, nBlur/2);
filters = [myBlur];
}
これの最後[myBlur]の配列インスタンス名は何になるの?

4153482009/01/20(火) 19:54:17ID:pF291nP1
ん・・・?
ごめんなさい意味がよくわからないです。。。
filtersがどのインスタンスに適用されるかってことですかね?

416Now_loading...774KB2009/01/20(火) 20:45:20ID:IVuG/w7m
ああ…なんかわけのわからんこと言ってるのかな…。
配列ってmy_array[0]みたいにmy_arrayって名前が付いてるじゃない。
[myBlur]ってその名前がないじゃない。
変じゃない?

4173482009/01/20(火) 21:49:48ID:pF291nP1
あぁなるほど

それは配列を初期化するときに使うものです
var arr:Array = new Array(myBlur);

var arr:Array = [myBlur];
は同じ意味です

418Now_loading...774KB2009/01/21(水) 01:12:43ID:ru4JXEih
>>417
そこで言うところのarrの部分が無い気がするんですよ。
filtersはプロパティだし。
>>414って
var arr:Array = [myBlur];
を更に省略して
[myBlur];
だけで配列作って中に素材突っ込んでるんですよね?
深く考えずにフィルタかけるときはこんなもんって覚えとくものなのかな。
脳みそパンクしそうだ。

4193482009/01/21(水) 01:44:55ID:z9j1bvs0
>>418
いやそのfiltersがプロパティであり配列なんですよ
filters = [myBlur, myGlow];
とか複数を配列にして渡すことでいろんな効果を重ねがけできるんです
ためしにtrace(filters[0]); とかやってみれば配列であることがわかるはずです
package {
import flash.display.Sprite;
import flash.filters.BlurFilter;
import flash.filters.GlowFilter;

public class Test extends Sprite {

public function Test():void {
var mc:Sprite = new Sprite();
mc.graphics.lineStyle(1);
mc.graphics.drawCircle(0, 0, 50);
mc.graphics.endFill();
addChild(mc);
mc.x = stage.stageWidth / 2;
mc.y = stage.stageHeight / 2;

var blur:BlurFilter = new BlurFilter();
var glow:GlowFilter = new GlowFilter();
mc.filters = [blur, glow];

trace(mc.filters[0]); //[object BlurFilter]
trace(mc.filters[1]); //[object GlowFilter]
}
}
}

4203412009/01/23(金) 13:46:04ID:3pYFtRUO
キャラ絵を全部かいてたら、それだけでキャラ一人当たり2ヶ月以上かかりそうなので
3Dモデル使って効率よく進めてみようと思う。
で、いまblenderの基礎勉強しています。
12キャラくらいは作りたいなぁ。

421Now_loading...774KB2009/01/27(火) 13:48:23ID:kGbIlBxB
>>419
>ためしにtrace(filters[0]); とかやってみれば配列であることがわかるはずです
あああ最初からそうすればよかったんですね。
ごめんなさい。
スッキリです。
ありがとう。

4223412009/04/05(日) 01:10:19ID:qui0NlgR

423Now_loading...774KB2009/04/06(月) 12:21:41ID:Wp6B3eZj
ほぅ

4243412009/04/08(水) 23:16:06ID:SXLQkr25
http://swfup.info/view.php/10590.swf
少し動くようになった

425Now_loading...774KB2009/04/08(水) 23:42:38ID:LSOQGgs4
ババア!結婚してくれ!

426Now_loading...774KB2009/04/10(金) 22:54:23ID:co7u+0IN
↓→と↓←のグラフィックがおかしいお

4273412009/04/11(土) 12:27:10ID:Rf2BErEV
うん。
if分岐がまだ甘いんだ。
たぶんキャラも一から作り直すと思う。

428Now_loading...774KB2009/04/12(日) 20:44:11ID:fLtSPJb+
http://swfup.info/view.php/10611.swf

24時間で作ったやっつけ
paraflaで制作

429Now_loading...774KB2009/04/12(日) 21:48:03ID:8A/X/ufk
何気に空中ダッシュが

430Now_loading...774KB2009/04/13(月) 02:15:02ID:a730Vbm8
歩き、しゃがみ、ダッシュ、バックステップ
ジャンプ、前斜めジャンプ、後ろ斜めジャンプ
空中ダッシュ、空中バックステップ、しゃがみからのハイジャンプ

はつけた

4313412009/04/15(水) 22:52:36ID:51rP0Sgl
モデリング難すぎワロタ
今更ながら、これは手描きのが早いかも・・
でももう少し頑張ってみようかな

4323412009/05/10(日) 01:26:42ID:xiGD+6MO
http://www.uploda.tv/v/uptv0020000.gif

ふぅーできた。
やさぐれ婦警、ごろ寝ver!

作り直し決定^^;!

4333412009/05/10(日) 21:46:18ID:xiGD+6MO
http://swfup.info/view.php/10796.swf
やっぱ2Dでいく・・
キャラも一から作り直す。とりあえず立ち絵のみ。

CS4の新しいトゥイーン使いづらいなぁ・・

434Now_loading...774KB2009/05/11(月) 12:30:36ID:+hgo3Pqt
ここ人いなさ杉

4353412009/05/23(土) 21:17:44ID:7BixkLhA

4363412009/05/24(日) 22:36:08ID:HcHFbwcu
ttp://swfup.info/view.php/10871.swf

今可能な動作
左右移動 ジャンプ しゃがみ 立ち状態でのZ・X攻撃
ダッシュ、ダッシュジャンプ、ダッシュバック

どうにもダッシュの挙動があやしい・・・
ヘルプ

437Now_loading...774KB2009/05/25(月) 19:53:17ID:+RSdmO/J
二回押しの判定はどういう風にしてる?

4383412009/05/25(月) 21:35:14ID:1a+gGgj/
ttp://www1.axfc.net/uploader/Ne/so/53108
 ソース

4393412009/05/25(月) 22:08:48ID:1a+gGgj/
if (isLeft&&motion==false) {
//左移動
if (lefttime==false) {
//一回目の左入力時間記録&普通に歩き
lefttime=true;
time=getTimer();
human.x-=3;
human.gotoAndStop("walk");
trace("left");
}
else if (lefttime==true&&getTimer()-time<300&&getTimer()-time>30) {
//0.03秒以上0.3秒未満の間隔で左入力するとダッシュ開始
lefttime=false;
stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
stage.addEventListener(Event.ENTER_FRAME,onEnterFrameDash);
}
else {
//それ以外の間隔なら普通に歩き
lefttime=false;
time=0;
human.x-=3;
human.gotoAndStop("walk");
}
}

440Now_loading...774KB2009/05/25(月) 22:55:04ID:eLruhobH
キーを押す(1回目)→キーを離す→キーを押す(2回目)=間隔内であればダッシュ成立

↑が基本だと思っていますが、キーを離す時の処理が無いから上手く動作しないのでは?

4413412009/05/25(月) 23:11:16ID:1a+gGgj/
キーを離したときの処理、押したときの処理は別のメソッドで動いていて、
離した瞬間に初期状態に戻るようになってます
isLeftっていう条件は押している状態です

439のスクリプトはonEnterFrameHandlerの一部です。
左を連続入力すると、このメソッドを止めて↓を開始します
//左ダッシュ処理
function onEnterFrameDash(event:Event):void {
human.gotoAndStop("dash");
if (isLeft==true&&isUp) {
//左と上を押しているなら左ダッシュジャンプ開始
stage.addEventListener(Event.ENTER_FRAME,onEnterFrameDashJump);
stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameDash);
}
else if (isLeft==true) {
//左にダッシュ
human.x=human.x-6;
}
else {
//ダッシュ止め&初期状態に
human.gotoAndStop("normal");
lefttime=false;
stage.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameDash);
}
}

4424402009/05/25(月) 23:44:31ID:eLruhobH
ソースあったのね。
>>439しか見てなかった。スマソ。

キーを入力した時「今回は何回目」という情報が無いからかな。
毎回押された時に一回目として判断していると思う。

キー入力後、最初のフレームで毎回リセット&入力時間記録。
押し続けて2フレーム目で間隔判定。
この時間隔の最小値(0.03秒)が小さすぎるため、フレームによっては判定が成立してしまい
一度押しただけでもダッシュ出来てしまう。

現在の状況はこんな感じかと。

4433412009/05/26(火) 07:09:44ID:pPOWhDs8
なるほど・・間隔ですか
あとは押し続けた後、一瞬はなしてもう一度入力したときに
ダッシュするのを防ぐ工夫がいるようですね

444Now_loading...774KB2009/06/02(火) 08:25:40ID:+cegc2Q/
コマンド入力の間隔をミリ秒じゃなくってフレーム数でやってみると
すこし誤差は、出るもののスクリプト組みやすいよ。

445Now_loading...774KB2009/06/07(日) 23:33:32ID:pAe2m6Ca
いまだにダッシュであーでもないこーでもない中
なんぞー

446Now_loading...774KB2009/08/27(木) 23:33:41ID:OMh5+7u6
2ch格闘を解析しているのですが、
キャラクター選択でどん詰まりました。
キャラ選択は大体わかったのですが
インスタンスを"giko"または"si"と名付けている場所がわかりません…。
それとも何か変な勘違いしているのか。
助けて

447Now_loading...774KB2009/08/27(木) 23:35:54ID:OMh5+7u6
下げ忘れスマソ

448Now_loading...774KB2009/09/01(火) 22:19:00ID:AAKZiswi
ライブラリの、書き出しの名前が「A_Char_giko」「A_Char_si」のムービークリップを
呼び出してステージに配置するようになっているんじゃないかな。

フレーム50あたりの、「//ゲーム」のラベル部分の「mainStage」インスタンスに
scriptが書かれているね。

間違ってたらゴメンね。

4494462009/09/02(水) 18:47:12ID:IPalCN2h
ありがとう!
引き続き頑張ります

450Now_loading...774KB2010/04/07(水) 23:25:33ID:VGrrUFiW
がんがれ

451Now_loading...774KB2010/06/06(日) 01:43:21ID:J22wQhZT
age

452Now_loading...774KB2010/06/13(日) 13:27:44ID:agHzH3cs
ムリポ

作れた?

454Now_loading...774KB2013/04/19(金) 20:45:40.59ID:xggo6tdP
うむ

455Now_loading...774KB2019/01/21(月) 18:12:22.36ID:Gvy1GwkL
age

新着レスの表示
レスを投稿する