FLASHで格闘ゲーを作りたい!
■ このスレッドは過去ログ倉庫に格納されています
しかし、格闘ゲーの作り方が全くわからない・・・。
HPの設定の仕方とか、当たり判定のつけ方とか・・・。
ツクールなんか買ってられるか!FLASHで作るんだぃ!
って思ったんだけど、全然成功しないんです・・・orz
誰か助けてください、お願いします。 >>303
そうだなあ、とりあえず初心者向けのASの本買ってくる。 >>303
エッチな想像力ならいくらでも働くんだがなぁ 鉄拳みたいに、両手両腕がそれぞれ4つのボタンに対応してて
体位を完成させていく、みたいなのがいいwww
もちろん最後は5つめのボタンを押すのさwww セックスは闘争と似てる
ってバキさんも言ってましたしね。 ロボットゲー板の
ロボットアクションゲーの宇宙戦を考える
スレで宇宙空間でのロボットゲーム作ってる奴がいるんだけど。
だれか応援できないかな。
http://game10.2ch.net/test/read.cgi/gamerobo/1156004121/ 春風亭が出してきたぞ。
動かせるようにはなったらしいけど… こないだリメイクされたテイルズオブデスティニーの戦闘システムをベースに
Flashで格闘ゲームつくれんもんかのー だいぶ前にROの格闘作ろうとしてそのままほったらかしだったやつが・・。
現在新規で製作中
ttp://gamdev.org/up/img/9519.zip ttp://3rd.geocities.jp/sushinori2007/scf.htm
こんなのは出た 敵のAI作るのに参考になるHPとかってありますかね。 HAKUHIN VS NISSIN LIGHTが参考にはいいかな
キャラのクオリティ以外は多分一番市販のゲームに近いさ
でも手間が掛かりすぎて完成まで三年以上掛かったらしい HAKUHIN VS NISSIN LIGHTを初めてやってみて軽く感動したから
俺も挑戦してみる。
挫折しないよう、簡単なとこから。 このスレ良いな、おれもちょっとやってみようと思う。そこで一つ質問。漫画のキャラ使ってうpしたらまずい?すぐ消せばok? flashで格闘作った人の論文めっけて参考になるかなーっと思ったら
未完成に終わっている (´Д⊂
http://www.seihoku.asn.ed.jp/~th-c/pdf17/1713.pdf 左右移動とジャンプ、Z、x、で大小攻撃までは何とか行ったが
挙動がおかしい・・・
ジャンプしながら空中を走りつつ落下とかzキー押し攻撃が永遠に続くとか
アクションゲームのASちょっといじった程度ではだめか・・・
所で誰か見てる? みてるよ。
じゃぁ俺もやるわ
簡単なシューティング作った程度の知識だけど 人がいた!
アク禁で今まで書き込みできなかったが作ってるよ
まだ棒人間で動かしてる状態だよAS自体もhakuhinさんの所の
物をいじっただけだし、詳しい人が来てほしい。 z押すとでパンチって場合は、
ifでzを押したときに、パンチのアニメーションのフレームを再生って感じ?
それともモーションごとに別のオブジェクトに分けたりするの? if文使った4方向移動の延長のような感じで
パンチ、キックのMCに飛ぶようにしてるが
フレーム単位の判定が必要な場合はもっと複雑になるんじゃないかと思う >zキー押し攻撃が永遠に続くとか
攻撃モーションが終わったら立ちモーションに戻る処理をしていないだけだったりする? まずは2ch格闘のソースをベースにいじってみる
ゼロからはきつい AS3しかできないけど、共同で作りたいって人いたら手伝うよ >>346
立ちの待機に戻るようにしてあるけど、zキー入力の判定を取り続けてると思う
そこら辺を改良したい
いきなり0からはキツイと思ったので格闘系のソースを見たが
駄目だ・・・どの文が何の処理してるのかサッパリ
で、4方向の基本アクションゲームから始めました←今ココ つまりzキーでflagがonになるのかな
攻撃モーションに移行するときにそのflagをoffにするとかじゃ駄目なのかな
見当違いのこといってたらごめん http://swfup.info/view.php/10023.swf
とりあえず移動制御を何とかしないといけない。
まずジャンプが難しいな
途中だからなんかコレ潜るけども 潜るね
自分は4方向移動はこんな感じ
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP)) {
_y -= 10;
this.gotoAndPlay("アップ");
}
if (Key.isDown(Key.DOWN)) {
_y += 10;
this.gotoAndPlay("ダウン");
}
if (Key.isDown(Key.LEFT)) {
_x -= 10;
this.gotoAndPlay("レフト");
}
if (Key.isDown(Key.RIGHT)) {
_x += 10;
this.gotoAndPlay("ライト");
}
}
z攻撃の出続ける現象は何故だか直ったw
ただ移動と攻撃の優先順位で問題が・・・
講座開いてくれる奇特な人いませぬか 自分も同じつくりだけど、このやりかただと
後々問題が出てきそうな気がしてきた。
KeyboardEvenとか使ったほうがいいのかな
優先順位は攻撃>移動 じゃないのかなゲームだと AS3で申し訳ないけど、俺ならこんな感じでやる
const KEY_UP:uint = Keyboard.UP;
const KEY_DOWN:uint = Keyboard.DOWN;
const KEY_LEFT:uint = Keyboard.LEFT;
const KEY_RIGHT:uint = Keyboard.RIGHT;
var isUp:Boolean;
var isDown:Boolean;
var isLeft:Boolean;
var isRight:Boolean;
function onKeyDownHandler(e:KeyboardEvent):void{
switch(e.keyCode){
case KEY_UP: isUp = true; break;
case KEY_DOWN: isDown = true; break;
case KEY_LEFT: isLeft = true; break;
case KEY_RIGHT: isRight = true; break;
}
}
function onKeyUpHandler(e:KeyboardEvent):void{
switch(e.keyCode){
case KEY_UP: isUp = false; break;
case KEY_DOWN: isDown = false; break;
case KEY_LEFT: isLeft = false; break;
case KEY_RIGHT: isRight = false; break;
}
}
function onEnterFrameHandler(e:Event):void{
if(isUp){ 〜〜〜}
if(isDown){〜〜〜}
if(isLeft){〜〜〜 }
if(isRight){〜〜〜}
} 自分は他の板から来てフラッシュで格闘ゲーム作れればと言うことで
フリーのpalaflaと言うソフトを使ってますが
どうやらAS3は使えないみたいです。 ちょうどCS4が届いたのでAS3に移行してみる
>>355がさっぱりわからない・・
最初に変数を定義して、一つ目のfunctionはキーを押しているかどうか、
二つ目はキー判定の消去
3つ目が処理内容・・かな?
実装してみたけどなんで動かないか分からん
参考書が必要だ・・ >>358
あーごめん入りきらなかったから肝心の部分消してしまったわw
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler);
addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
こうやって、それぞれキーを押したとき、キーを離したとき、毎フレームにこのfunctionを実行しますよって宣言しなくちゃならない
最初の4つのconstはUP、DOWN、LEFT、RIGHTをどのキーコードにするか定義している
次の4つの変数はそれぞれ押されているかどうかのフラグ
onKeyDownHandlerはキーが押されたときに実行されて、キーコードを調べて、該当するキーコードがあったらフラグをたてる
onKeyUpHandlerはキーが離されたときに実行されて、キーコードを調べて、該当するキーコードがあったら、フラグを折る
onEnterFrameHandlerは毎フレーム実行されて、フラグを見て立っていたら移動するなりの処理をする
AS2でも似たような書き方できるしそんなに難しくないと思うけどな 本屋へ行ったらAS3の参考書がほとんどで2.0が併記されてるのが少し
入門書のような感じでした
むしろ>>359さんの説明がすごく解りやすくて感動。 既存の格ゲーを元とするのであれば
左右キー:左右の移動(連続で押すと前後ダッシュなど)
下キー:しゃがみ
上キー:ジャンプ(+左右キーで斜めジャンプ)
移動系統は大抵こうでしょうね。
ジャンプに関しては下記のようなことも発生しますけど。
・一度入力したら着地まで移動し続ける
・攻撃のキー入力しか受け付けない(空中ダッシュや多段ジャンプが無い場合)
AS3.0でなければいけない理由は無いですよ。
FGF07で公開された格ゲーはAS2.0ですし。
ASのどのバージョンでも作成は可能だと思います。
作る側の場合は技術より根気の方が重要とよく聞きます。
技術があるに越したことはないですけどね。 格闘ゲームではないですが、アクションゲームを作ろうと思うので今日からお世話になります。
AS3とかわけわからないのでとりあえず>>356の全部読もう。 >>362 やぁ大歓迎
今こんな感じ Z,Xで攻撃
http://swfup.info/view.php/10038.swf
でも押しっぱなしじゃないと駄目な現状・・
キー同時押しすると、スーッとすべるので同時押しの場合分けも入れなくちゃいけないない
ジャンプは現在のx座標を記憶してそこに足したり引いたりって感じなのかな
あとrootやらもう使えないんだな・・ややこしい
>>362
おーどんどん作っちゃってください
>>363
だいぶできてきましたねー!
ソース見せてもらえればいろいろ口出しできるかもしれませんw ttp://iroiro.zapto.org/cmn/jb2/data2/jb7970.zip
一応アップ
いじってたらまた動かなくなった。全然進まんw >>365
攻撃が押しっぱなしじゃないと駄目なのは
キーを離すと立ち状態に戻るようにしているからでしょうね。
モーションが終わったら立ち状態に戻るようにすれば良いかと。
キーのフラグは離したら折ってもおk。
ただし攻撃モーション中は他モーションに移らないようにしなければいけないと思います。 ぐおおおファイル開けねえw
お金ないからCS4買ってないです・・・w >>355の中身は理解できるようになった。
けども動いてくれない。
>>355と>>359の三つ入れて処理内容に座標増減するようなの入れてあげれば一応動くようにはなるのですよね? >>365
『攻撃モーションの最終フレームまで再生したら立ち状態に戻る』
↑この処理適当に追加してみたけど、いる?
>>367
一応CS4でもCS3ドキュメントでの保存が出来たので
341さんのアップ待ちですね。 自分も動かなくてかなり悩みましたが、
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler);
addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
これを
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler);
stage.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
こうしたら動きました。
理由は分かりませんw ttp://iroiro.zapto.org/cmn/jb2/data2/jb7972.zip
CS3verです
>>369
手からのどが出るほどいりますw >>371
ここへコード記載とflaとどちらが良いですか? flaのほうが有難いですが、
ここへ書いてくださるほうが全員が見れるのでこちらにお願いできますか? >>373
■事前準備
・変数『MC』をMoviClip型で宣言
・上段弱、強攻撃に、それぞれ『z_up』『x_up』とインスタンス名を付ける
■変更箇所
・キーを離したときの処理部分
case KEY_Z :
isZUP=false;
//human.gotoAndStop("normal"); ←これを消すかコメントにして無効にする
break;
case KEY_X :
isXUP=false;
//human.gotoAndStop("normal"); ←これを消すかコメントにして無効にする
break;
・キーに対応するアクション
function onEnterFrameHandler(event:Event):void {
if (isZUP) {
human.gotoAndStop("z_up");
MC=human.z_up ←ここを追加
stage.addEventListener(Event.ENTER_FRAME, onEnterFrameActEnd); ←ここを追加
}
if (isXUP) {
human.gotoAndStop("x_up");
MC=human.x_up ←ここを追加
stage.addEventListener(Event.ENTER_FRAME, onEnterFrameActEnd); ←ここを追加
} ■追加処理
//攻撃モーションが最終フレームまで再生されたら立ち状態に戻る
function onEnterFrameActEnd(event:Event):void {
if (MC.currentFrame == MC.totalFrames) {
human.gotoAndStop("normal");
stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameActEnd);
}
} ttp://www3.uploda.org/uporg1907603.jpg
息抜きにありがちなキャラ考えた 説明は特に無くてもいいよね?
>359の説明が理解出来ていれば大丈夫だと思っているけど。 分かっているつもりではありますが
実際良く分かってないので今日参考書買ってきます
>>370
すんません説明するの忘れてました・・
KeyboardEventはフォーカスがあたっている場所からじゃないとイベントを受け取れないので普通にやっても動いてくれません
stageはflashにフォーカスがある=stageにフォーカスがあるってことになるので受け取れるようになります
>>371
あれ、予期しないファイルですって言われてみれません・・・涙
でもfla一個ってことはみなさんタイムラインベースなんですねー >>379
自分はflaとasを分けてますよ。
FlashのASエディタは使いづらいので。 ttp://iroiro.zapto.org/cmn/jb2/data2/jb7991.zip
保存間違えたかな?もう一度アップし直して見た。
今374,375の分を加えて、下段攻撃に取り掛かっているところだけど
思ったより面倒なんだね。
if (isZUP) の下にelseでif (isDown)加えりゃいいと簡単に考えてたけど、
それでは駄目なのに気付いた。他のものまで同時に再生されている・・
これはif構文をごちゃごちゃやっていくのでいいのかな。
それとも新たに判定用の変数作るほうがいいのだろうか?
どっちが処理が軽いかな? >>381
自分はif構文ごちゃごちゃでやる派です。
処理の重さは個人的に気にしない。
やりやすいようにAS組んでやるだけですね。
各キー入力後の動作処理は、以前作成したとき下記のような感じでASを書きました。
・どのキーを押されたとき
・どのモーションだったら
・こう動作する
作業効率が良いかどうかはわかりませんが、一つの例と思ってください。 なるほど。そうですね、というか自分には処理を気にする余裕無かったです
このまま突っ走ります
http://swfup.info/view.php/10042.swf
ということで下段攻撃追加しました。
変数motionを追加して、攻撃動作が終わるまで動けなくなりました
>>375の処理に↓キーをし続けた場合は、しゃがみ動作を続ける分岐を足しました
ただ、下段攻撃中にキー離すとフリーズしますね >>383
>ただ、下段攻撃中にキー離すとフリーズしますね
↓キーを離すと、だよね?
推測ですけど、その場合『キーを離したときの処理』の部分が生きていて、normalへ移動してしまうからだと思われます。
そうするとActEndの処理内では、変数MCに下段攻撃のモーションの参照が入っていたけど
下段攻撃→立ちorしゃがみにフレームが移動したので
『下段攻撃のモーションなんて無いぞ!』っていうようなエラーになっていると思います。 >384の続き
>384のはムービープレビューでデバッグすると出力で警告が延々と出てくると思う。
問題はそういう状態のためActEndが終了せず、変数motionを折ることが出来なくなっているから、かな。 ttp://iroiro.zapto.org/cmn/jb2/data2/jb8001.zip
今こんな感じですが、この構造がこんなもんなのか
良くない書き方なのかさっぱり。
警告はでないですね何故か・・
なおった。次はジャンプだ
あとactionscript3.0逆引きクイックリファレンス買ってきた
これは良さそうです ttp://swfup.info/view.php/10049.swf
z.x.cと方向キーで動きます
講座を開いている方の所で配布しているファイル
をほぼそのまま使わせて頂きました
格闘じゃないファイルですが、フレームや当たり判定など凄く参考になる
要素が多いです。
ただpflと言う特殊なファイルですのでパラフラ専用のモノかもしれません。 >>387
おーみれました!
>>390
真っ白でみれません・・・
そういえばアクションゲームアルゴリズムマニアックスという本を持ってるのを思い出した
俺もなんか作ってみようかなぁ・・・
俺も何か作ろうかな。
モードって何があればいいものだろう?
サバイバルモードやトレーニングモードってあった方がいいのかね。
アクション部分以外のシーンも考えておかないと、後でえらい目にあう。 >>391
まったく真っ白の画面ですか?再生が失敗してるような感じでしょうか?
IEだと大丈夫なんですが・・・
>>392
正直しんどい時も有るので人が増えて情報交換や話できるといいかな >394
自分は見れています、と動作報告をしておきますね。
zxではモーションが出るけど、cを押しても無反応でした。 ジャンプで難儀中・・キー操作と絡めてフラグ管理するのがややこしい・・
>>393
アクションゲームですか? >>396
>アクションゲームですか?
格ゲーで、ですね。
通常の1vs1形式のです。 >>391
>そういえばアクションゲームアルゴリズムマニアックスという本を持ってるのを思い出した
その本買うつもりだったんだけど使いやすいかい?
評判はいいみたいだけど。 >>196のサイト、サルベージ成功!キタコレ
ttp://web.archive.org/web/20060715071029/http://redstar.skr.jp/flash/flash_2_/cat40/ >>395
なるほどcを押した時のASを少し直してみます。 http://swfup.info/view.php/10065.swf
ジャンプを追加しました
追加したソースは
var thispoint:Number=human.y;
var gravity:Number=2;
var jumpspeed:Number=30;
↑キー操作に追加
human.gotoAndStop("jump");
stage.addEventListener(Event.ENTER_FRAME, onEnterFrameJumpStart);
ジャンプの処理は
function onEnterFrameJumpStart(event:Event):void {
if (jumpspeed>=0) {
human.y=human.y-jumpspeed;
jumpspeed-=gravity;
gravity*=1.1;
}
else if (jumpspeed<0&&thispoint>=human.y) {
human.y=human.y-jumpspeed;
jumpspeed-=gravity;
gravity*=1.1;
}
else {
human.y=thispoint;
motion=false;
gravity=2;
jumpspeed=30;
human.gotoAndStop("normal");
stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameJumpStart);
}
}
こんなもんでどうか >>398
アクションゲームにありそうなアルゴリズムは大体書いてありますね
具体的にゲーム名まで出してあるのがいいですねw
コードはC++ですけどAS3が読める人なら余裕でわかるくらいの感じです
>>402
おー今度はみれました
ジャンプしたら真上に飛びますけど、移動してる方向にも動いてくれたら操作性がよくなりそうですね ■ このスレッドは過去ログ倉庫に格納されています