まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
先日作った小さい回転砲台を実装しました。
ちゅうか、やっと出来た・・・ここ数日、ずーーーーと悩んでました(汗)
先日このような砲台の絵を作成したのですが、これを動かす為の
スクリプトを考えようと思って、まずは、どういう風に表現するか考えてみました。
考え方としてはこの砲台画像にこのハッチ画像をかさねれば
下から砲台が出来て来るような感じに出来るはず。
スプライト番号を上手く管理して砲台よりもハッチのスプライト番号を若くすれば
上手く重なって見えます。
と、ここまでは良かったんですが、ここからが大変でした・・・
とりあえずハッチのアニメとかは置いておいて、砲台を設置して自由に動かせる
ようにしようとしたのですが、この砲台は戦艦に設置されています。
と言う事は、動きとしては戦艦と同じように動かなければなりません。
でずが、砲台の設置されている座標は砲台ごとに違います。
砲台の座標は、戦艦の座標を基準にして計算しますので
例えば戦艦のx座標をsenkanx、y座標をsenkanyとしたとすると
砲台の座標はsenkanx+任意のx座標、senkany+任意のy座標
ってな感じで計算します。
じゃあ、配列変数に任意のx/y座標を代入して計算すれば余裕やんって思ったのですが
任意のスプライト番号に任意の配列変数を足すというスプリクトの作り方が思いつかず
非常に悩みました。
例えば2台の砲台があったとして、砲台のスプライト番号が100と101だったとします。
で、スプライト番号100の砲台には配列変数(1)を足したい!と思っても
この砲台と配列変数を結び付ける方法が良くわからなかったんですが、試行錯誤して
いる内に何とか出来ました。
方法としては、砲台が生成された第1フレーム目に砲台が発生した回数をカウントする
変数を用意し、このカウント数によって砲台の座標を決める配列変数を設定するように
すると上手く動いてくれるようになりました。(上手く文章に書けません^^;)
で、砲台が上手くいったので次はハッチを重ねて表示しようとして、また躓きました。
これも上の問題と同じで、任意のスプライトの砲台と、任意のスプライトのハッチを
結びつける方法がわからなかったんですが、良く考えてみると悩んでいいる事が
上の問題と同じやな~と思って、それなら同じように生成時間の第1フレーム目に
ハッチをes_setで設置すれば良いはずや!と思って設置してみたら
最初は上手く動かなかったんですが、スプライト番号にも配列を使用して指定したら
何とか上手くいってくれました^^
で、ハッチのアニメーションは生成時間によって。↓こんな感じで変更するようにしています
if (et.enemy>0)&(et.enemy<10) : es_chr enemy31s.enemy,877
if (et.enemy>10)&(et.enemy<15) : es_chr enemy31s.enemy,878
・
・
・
これも、もっと良い方法がないもんかと思っているのですが、es_linkだと勝手に
元に戻ってしまうし、どうしたもんだかって感じで今の所、アニメの為に生成時間に
合わせて延々とスプリクトを書いています^^;
何とかハッチが開いたり閉じたりして砲台が見え隠れするようになったのですが
今度は当り判定で躓きました。
ハッチが開いている時だけ当り判定があって、閉じている時は当り判定を無くしたい
と思って、まずタイプ値を変更して対応しようとしたんですが上手くいかず
どうしたもんかと思ったんですが、ふっと思い出した事がありました。
デバック用に自機を無敵にしているのですが、この無敵にする方法に
私はes_size命令のヒットチェック領域を0にして無敵にしています。
これと同じで砲台も2種類作って、es_sizeでヒットチェック領域が有る物と無い物を
作製し、生成時間によって切り替えれば良いんだ!と思ってやってみたら
上手くいきました^^
とりあえず、こんな感じ。
砲台が隠れている時は、ちょっと暗い画像に変更するようにしてみました。
最初に作った、ハッチが空いた後にニョキっと出てくる砲台は廃止しました。
ちゅうか、そこまで作りこむ元気がもうありません(汗)
ただの砲台だったら、こんなに苦労せずに出来たと思うんですが
たったコレだけの事でも、色々とやらなければならない事があるんやな~と
感じました。
背景が凝ってるゲームって、見た目以上に作製時間が掛かるんでしょうね。
砲台スクリプトも出来たので、やっと戦艦本体の作成に取り掛かれそうです^^
ちゅうか、やっと出来た・・・ここ数日、ずーーーーと悩んでました(汗)
先日このような砲台の絵を作成したのですが、これを動かす為の
スクリプトを考えようと思って、まずは、どういう風に表現するか考えてみました。
考え方としてはこの砲台画像にこのハッチ画像をかさねれば
下から砲台が出来て来るような感じに出来るはず。
スプライト番号を上手く管理して砲台よりもハッチのスプライト番号を若くすれば
上手く重なって見えます。
と、ここまでは良かったんですが、ここからが大変でした・・・
とりあえずハッチのアニメとかは置いておいて、砲台を設置して自由に動かせる
ようにしようとしたのですが、この砲台は戦艦に設置されています。
と言う事は、動きとしては戦艦と同じように動かなければなりません。
でずが、砲台の設置されている座標は砲台ごとに違います。
砲台の座標は、戦艦の座標を基準にして計算しますので
例えば戦艦のx座標をsenkanx、y座標をsenkanyとしたとすると
砲台の座標はsenkanx+任意のx座標、senkany+任意のy座標
ってな感じで計算します。
じゃあ、配列変数に任意のx/y座標を代入して計算すれば余裕やんって思ったのですが
任意のスプライト番号に任意の配列変数を足すというスプリクトの作り方が思いつかず
非常に悩みました。
例えば2台の砲台があったとして、砲台のスプライト番号が100と101だったとします。
で、スプライト番号100の砲台には配列変数(1)を足したい!と思っても
この砲台と配列変数を結び付ける方法が良くわからなかったんですが、試行錯誤して
いる内に何とか出来ました。
方法としては、砲台が生成された第1フレーム目に砲台が発生した回数をカウントする
変数を用意し、このカウント数によって砲台の座標を決める配列変数を設定するように
すると上手く動いてくれるようになりました。(上手く文章に書けません^^;)
で、砲台が上手くいったので次はハッチを重ねて表示しようとして、また躓きました。
これも上の問題と同じで、任意のスプライトの砲台と、任意のスプライトのハッチを
結びつける方法がわからなかったんですが、良く考えてみると悩んでいいる事が
上の問題と同じやな~と思って、それなら同じように生成時間の第1フレーム目に
ハッチをes_setで設置すれば良いはずや!と思って設置してみたら
最初は上手く動かなかったんですが、スプライト番号にも配列を使用して指定したら
何とか上手くいってくれました^^
で、ハッチのアニメーションは生成時間によって。↓こんな感じで変更するようにしています
if (et.enemy>0)&(et.enemy<10) : es_chr enemy31s.enemy,877
if (et.enemy>10)&(et.enemy<15) : es_chr enemy31s.enemy,878
・
・
・
これも、もっと良い方法がないもんかと思っているのですが、es_linkだと勝手に
元に戻ってしまうし、どうしたもんだかって感じで今の所、アニメの為に生成時間に
合わせて延々とスプリクトを書いています^^;
何とかハッチが開いたり閉じたりして砲台が見え隠れするようになったのですが
今度は当り判定で躓きました。
ハッチが開いている時だけ当り判定があって、閉じている時は当り判定を無くしたい
と思って、まずタイプ値を変更して対応しようとしたんですが上手くいかず
どうしたもんかと思ったんですが、ふっと思い出した事がありました。
デバック用に自機を無敵にしているのですが、この無敵にする方法に
私はes_size命令のヒットチェック領域を0にして無敵にしています。
これと同じで砲台も2種類作って、es_sizeでヒットチェック領域が有る物と無い物を
作製し、生成時間によって切り替えれば良いんだ!と思ってやってみたら
上手くいきました^^
とりあえず、こんな感じ。
砲台が隠れている時は、ちょっと暗い画像に変更するようにしてみました。
最初に作った、ハッチが空いた後にニョキっと出てくる砲台は廃止しました。
ちゅうか、そこまで作りこむ元気がもうありません(汗)
ただの砲台だったら、こんなに苦労せずに出来たと思うんですが
たったコレだけの事でも、色々とやらなければならない事があるんやな~と
感じました。
背景が凝ってるゲームって、見た目以上に作製時間が掛かるんでしょうね。
砲台スクリプトも出来たので、やっと戦艦本体の作成に取り掛かれそうです^^
PR
この記事にコメントする
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
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 | 30 |
リンク
カテゴリー
最新記事
(04/04)
(12/26)
(12/25)
(11/17)
(10/11)
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
最古記事