FC2ブログ

サンプルSTGその2

前回:http://orekoro.blog26.fc2.com/blog-entry-597.html

特にニーアやストパン等ゲームをするでもなくブログに書くこともないので、
進捗状況でも。

サンプルSTG2
矢印キーで移動、Zキーでショット。(当たり判定はありません)

まあ何が増えたって、
見た目的には背景が真っ黒だと寂しいから星を追加したのと、ショットが撃てるようになったってとこ。
あと敵らしきものを設置できた。
内部的にはスプライトを描画するのにちょっと楽になるクラスを作って、真っ黒な背景、星、ショットなど、スプライトで描けるものにそのクラスを使ってるってとこ。
そして描画したスプライトにイベントを設定しているってとこ。かな。
別に大したことやってるわけでもないんだけどね。

あとは、新たに設定した敵に動きを設定する、敵がショットを撃つ、敵ショットの挙動、自機・敵・ショットに当たり判定を設定する、などをやっていく予定。
敵を破壊してスコアが増えて弾に当たるとゲームオーバー、までできればサンプルとしては十分だろう。

久々にflash

サンプルSTG
startボタンをクリックした後、矢印キーで三角形のものを移動できます。

たまーにAS3でSTGゲームのサンプルを求めてネットをさまよってた人がここを訪れることがあるようなので、
AS3超初心者による超初心者のためのサンプルでも用意しようかとサンプルSTGを作ることにしました。
まあ、本気で完成させるかどうかは分かりませんけどね。
完成っていうか、一通りの処理ができればそこで終わりにする予定だけど、そこまでたどり着くかどうか。

Flashを立ち上げるのはほんと久しぶり。ビリビリ魔人さん以降ろくに触ってなかったからな。
だから当然かつで自分がこのブログで書いた内容すら忘れてます。

とりあえずビリ魔のソースを見ながら必死に思い出して、とりあえず↑のとこまで。

いつもはフレームを利用してアニメーションとか画面切り替えとかをやってたんだけど、
今回はAS3の練習も兼ねてFLASH CS3のタイムラインの利用を基本的に禁止してます。
処理は全て外部のASファイルで行う、という方向で。

これが意外とムズイのね。
タイトル画面にスタートボタンを置いて、それを押したらゲーム開始、という当たり前の流れも、
タイムラインやフレームアクションを使えば簡単なんだけど、結局丸一日かかってしまった。

さらにそこから自キャラを動かすクラスがうまく機能せず。
スタートボタンを押した後、一度ステージ上をクリックしないとキー操作を受け付けてくれない。

そうか、キーイベントはstage以外にセットしたときはフォーカスしないといけないとか、そんな話があったな…。
あったのは分かるんだけど、なかなかフォーカスがうまくいかない。
stage.focusにフォーカスするものを=で結べばいいってのはわかったんだけど、
nullの参照だったり未定義のなんたらだったりで大苦戦。

結局、trace(stage.focus)で一個一個調べて、フォーカスがデフォでnullになってることを確認、
スタートボタンを押した後はスタートボタンにフォーカスがあたったままになってて、
ステージ上をクリックするとまたnullになるということがわかった。
あとはstage.focus=○○の一文を追加しても未定義のなんたらエラーが出ない無難な場所にこれを置いて、
具体的にはプレイヤーキャラのENTER_FLAMEを受けて発動するfunctionの中に、
フォーカスがstage以外のときにstageを代入するようif文の中に「stage.focus=stage;」を置く。

これでなんとか…。無理矢理だなあ。
ソースは公開する予定だけど、一通りの処理ができたらにしようと思います。
専門用語とかよく知らないからアバウトな記事で申し訳ない、というか、完成したところであまり役には立たないだろうけど。

次:http://orekoro.blog26.fc2.com/blog-entry-600.html

CS3のライセンスがどうとか

実は最近になってPCのパーツを換装し、結果的にPCが2台になったんだ。これについてはまた別の記事で。

今は新しい方のPCにいろんなソフトを入れてる最中。
今日はFlash CS3を入れました。
ところがライセンス認証で引っかかった。
正確な文面は忘れたが「このPCでCS3を使うためには前のPCのライセンスを解除しないといけません」みたいな感じ。
仕方ないので前のPCを立ち上げてヘルプからライセンス認証の解除を行う。

今回はたまたまPCが2台になったからいいものの、
パーツの移植によって前のPCがPCとして機能しなくなった場合、
あるいは前のPCが壊れて起動しなかった場合とか、どうすりゃいいのよ。
もう一個新しいソフトを買えってか?さすがにそれは勘弁だな。
金汚い。

つかFlash CS3に限らず最近のAdobe製品はみんなこうなのだろうか。
みんなも、PCがぶっ壊れそうなときや新しいPCに乗り換えるときには、ソフトのアンインスコの前にライセンス認証の解除を忘れずにNE!
下手したら詰むかもしれません。

今日のビリビリ魔人さん4

大分完成に近づいてきますた。
今はヘルプ画面を作っています。これができれば一応の完成にはなります。
その後はバランス調整やバグフィックスに最大限時間を費やしたいものです。
まだ謎のエラーが出ることがあるから。

ただ、この数週間flashを触り続けた甲斐あって、エラーの種類とかその対処法とかもちょっとずつ分かってきた気がします。
nullの参照しかり、「ArgumentError: Error #2025」しかり。
前者は本当に参照してるどれかがnullになってる。怪しいものを逐一traceしていけば何がnullなのか分かると思う。
後者はこれ、俺の場合はだいたいgetChildAt()とかを使ってるところで起こる感じかな。
表示されてるオブジェを削除するときに対象をgetChildAtとかthisとかで指定したりするんだけど、既に削除されてるものを参照しようとしたときとかに起こってるんじゃないかな、と思う。
名前が分かりやすいものはgetChildByNameで指定した方が安全かもしれない。
ただ2025エラーは今もたまに出るから対策は完璧ではない。

他にもいろいろあったけど、いちいちメモ取ってるわけじゃないからどんなエラーが出たか覚えてないや。
そういうのをまとめれば後々の自分や他の人にも役に立つ情報サイトになるんだけどな…正直まとめる時間すら惜しかったからなあ。
まあ置き場のコンテンツを充実させたいし、無事ゲームを企画主に提出できてから、今回のゲームを作る際のポイントなんかをまとめていけたらいいな…。
結局やらずに終わりそうだけど。シュタインズゲートとかあるし。

今日のビリビリ魔人さん3

途中経過。
biribiritst2
読み込みに若干時間かかるかも。

当たり判定については、まだ問題はあるにしてもなんとか解決した。
対象となるオブジェクトを、numChildrenとgetChildAtを駆使して無理矢理参照することにしました。
スマートなやり方じゃないと思うけど、これで何とか…。
しかし、これだと表示コンテナに追加されていないオブジェについては当たり判定を参照できないどころかパブリッシュ時にエラーが出る。
その辺の関係で弾は一発ずつにすることに。まあとりあえずこれでいいだろ…。
しかし書き方がAS3.0とAS1.0とで全然違うせいで、当たり判定の処理をするときもAS3.0の方が圧倒的に軽いっぽいな。

当たり判定を取るときに、今回はhitTestObjectではなく円を使ってます。
二つのオブジェ間の距離と、それぞれの辺り判定半径の和を比較するってアレね。
矩形の当たり判定では大雑把だし回転に対応できないし、ベクトルや行列を使い出すと俺の知識が付いていけないし、
円が一番楽だと思う。

当たり判定まわりの詳しいソースは、また後日置き場にうpしてみようと思う。
AS3.0に慣れてないけどゲーム作りたい、っていう人の助けに、もしかしたらなるかもしれない。
ならないかもしれない。
むしろ助けてください。

しかしアレだ。
CS3を使うにあたって、スクリプトは基本的に外部ファイルにクラス.asで書いてるけど、
なんか全部フレームアクションで書いちゃった方が都合がいい感じがする。
クラス内部からgotoAndPlayとか使って1フレーム目に戻るとバグるとかまじふざけてやがる。
プロフィール

oisu-

Author:oisu-
趣味はゲームと深夜アニメ実況。
絵を描いたりFlashゲーを作ったりもするけど、一つのことにのめり込むと他のことがおざなりになるので結局あまり成果が出ない。その上根気が続かないのですぐ飽きる人。

pixivb

FC2カウンター
検索フォーム
カレンダー
01 | 2020/02 | 03
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
円卓の生徒
円卓の生徒応援バナー

XBOX360用ダンジョンRPG『円卓の生徒』を全力で支援中!
Twitter

Twitter Updates

    follow me on Twitter
    広告
    円卓の生徒応援バナー


    ここからアフィ注意