まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プチコンにはSPANGLEというスプライトを回転させる命令があるのですが
スプライト座標の左上を中心にして回転してしまうので、そのまま使用すると
当たり判定などがズレてしまい、ゲームとして成立しなくなってしまうんですよね。
他にもスプライト同士を繋げて回転するキャラを作りたくても、上手く繋がらなかったりと
イマイチ使い勝手が良くありません。
なので、スプライトの中心を軸にして回転させるようなプログラムを作ってみました。
動かすとこんな感じです↓
画像では全く伝わりませんが中心を軸にくるくると回転しています^^
考え方としては、スプライトの回転に合わせてスプライト自体の座標を回転させるような感じ。
上記のプログラムを実行すると、見た感じはスプライトの座標が全然動いていないように見えますが
実際には円を描くように回転しています。
(15行目のSPANGLEを削除して実行するとわかりやすいと思います)
上記を踏まえて回転する敵を制作中です^^
スプライト座標の左上を中心にして回転してしまうので、そのまま使用すると
当たり判定などがズレてしまい、ゲームとして成立しなくなってしまうんですよね。
他にもスプライト同士を繋げて回転するキャラを作りたくても、上手く繋がらなかったりと
イマイチ使い勝手が良くありません。
なので、スプライトの中心を軸にして回転させるようなプログラムを作ってみました。
動かすとこんな感じです↓
画像では全く伝わりませんが中心を軸にくるくると回転しています^^
考え方としては、スプライトの回転に合わせてスプライト自体の座標を回転させるような感じ。
上記のプログラムを実行すると、見た感じはスプライトの座標が全然動いていないように見えますが
実際には円を描くように回転しています。
(15行目のSPANGLEを削除して実行するとわかりやすいと思います)
上記を踏まえて回転する敵を制作中です^^
PR
先日の状態から自機の爆破処理とスプライトを繋げたキャラを追加してみました。
こんな感じ↓
システムとしては、自機弾発射ボタンを押していれば通常弾発射。押していなければシールド展開
&波動砲チャージ。チャージ後に発射ボタンで波動砲発射といった感じ。
雑魚キャラは通常弾で倒して、大きいキャラは波動砲で狙って撃つ・・・みたいなのを考えてます^^
本当は回転するスプライトを繋げたキャラも追加したかったんですが、プチコンの回転機能は
キャラ座標の左上を軸にして回転するので、2つのキャラを繋げて表示ってのが非常に難しい
んですよね・・・
とりあえず、中心座標を軸にして回転出来るようなプログラムが出来ないか考え中です。
(中心座標を軸にして回転してもキャラ繋げるのはヤヤコシイんですけどね^^;)
こんな感じ↓
システムとしては、自機弾発射ボタンを押していれば通常弾発射。押していなければシールド展開
&波動砲チャージ。チャージ後に発射ボタンで波動砲発射といった感じ。
雑魚キャラは通常弾で倒して、大きいキャラは波動砲で狙って撃つ・・・みたいなのを考えてます^^
本当は回転するスプライトを繋げたキャラも追加したかったんですが、プチコンの回転機能は
キャラ座標の左上を軸にして回転するので、2つのキャラを繋げて表示ってのが非常に難しい
んですよね・・・
とりあえず、中心座標を軸にして回転出来るようなプログラムが出来ないか考え中です。
(中心座標を軸にして回転してもキャラ繋げるのはヤヤコシイんですけどね^^;)
先日からプチコンでSTGを作っているのですが、BGMや効果音を確認するのに
いちいちBGMPLAY 3とかBEEP0,2とか入力して演奏させて確認していて、とても面倒だなーと
思ったので、簡単なBGM&効果音プレイヤーを作ってみました。
こんな感じ。
リストはエントリ最後に掲載しておきます。
Bボタンで効果音再生
Aボタンでピッチを0に
↑↓ボタンで波形選択
←→ボタンでピッチ変更
YボタンでBGM再生
XボタンでBGMストップ
LRボタンでBGM選択
が出来ます。
そして、コード表を見ているとタッチパネルも弄れる事がわかったのでタッチパネルでも
選曲出来るようにしてみました。
一番右のボタンを押すとBGMと効果音を変更出来ます。
こう言うの作るときのグラフィックのセンスが欲しいです^^;
タッチパネル操作の命令は押した場所を取得するTCHX/TCHY命令以外にも
タッチしているかどうか?とか、タッチしている時間の取得も可能なので、アイデア次第で
色んなゲームが作れそうですね^^
今回悩んだのが、タッチパネルに任意の数字を表示する方法。
PNLSTR命令を使えば文字列は表示出来るのですが、普通の変数だと表示出来ないんですよね。
例えばPNLSTR X,Y,"XXYY",0と書けばXXYYと言う文字は表示されますが
XXYY=0:PNLSTR X,Y,XXYY,0と書いても0は表示してくれなくてエラーになってしまいます。
で、説明書を熟読していくとSTR$()命令が目につきました。説明には数値から文字列を得ると
書いてあるので、コレを使えば上手く出来そうやなーと思ってやってみたら上手く出来ました^^
X=0
XXYY$=STR(X)
PNLSTR X,Y,XXYY$,0
と書けば、タッチパネルに0を表示してくれます^^
今回もリスト掲載の為に画面を撮影したのですが、プログラム入力画面が右端までいくと
折り返さずに右にスクロールするので、撮影&画像加工が面倒なんですよねぇ^^;
何か良い方法がないものでしょうかねぇ・・・
内蔵BGM&効果音プレイヤーリスト(画像クリックで拡大されます)
いちいちBGMPLAY 3とかBEEP0,2とか入力して演奏させて確認していて、とても面倒だなーと
思ったので、簡単なBGM&効果音プレイヤーを作ってみました。
こんな感じ。
リストはエントリ最後に掲載しておきます。
Bボタンで効果音再生
Aボタンでピッチを0に
↑↓ボタンで波形選択
←→ボタンでピッチ変更
YボタンでBGM再生
XボタンでBGMストップ
LRボタンでBGM選択
が出来ます。
そして、コード表を見ているとタッチパネルも弄れる事がわかったのでタッチパネルでも
選曲出来るようにしてみました。
一番右のボタンを押すとBGMと効果音を変更出来ます。
こう言うの作るときのグラフィックのセンスが欲しいです^^;
タッチパネル操作の命令は押した場所を取得するTCHX/TCHY命令以外にも
タッチしているかどうか?とか、タッチしている時間の取得も可能なので、アイデア次第で
色んなゲームが作れそうですね^^
今回悩んだのが、タッチパネルに任意の数字を表示する方法。
PNLSTR命令を使えば文字列は表示出来るのですが、普通の変数だと表示出来ないんですよね。
例えばPNLSTR X,Y,"XXYY",0と書けばXXYYと言う文字は表示されますが
XXYY=0:PNLSTR X,Y,XXYY,0と書いても0は表示してくれなくてエラーになってしまいます。
で、説明書を熟読していくとSTR$()命令が目につきました。説明には数値から文字列を得ると
書いてあるので、コレを使えば上手く出来そうやなーと思ってやってみたら上手く出来ました^^
X=0
XXYY$=STR(X)
PNLSTR X,Y,XXYY$,0
と書けば、タッチパネルに0を表示してくれます^^
今回もリスト掲載の為に画面を撮影したのですが、プログラム入力画面が右端までいくと
折り返さずに右にスクロールするので、撮影&画像加工が面倒なんですよねぇ^^;
何か良い方法がないものでしょうかねぇ・・・
内蔵BGM&効果音プレイヤーリスト(画像クリックで拡大されます)
先日DSiウェアのプチコンが配信されたので早速ダウンロードしてみました。
プチコンはDS上で動くBASICって事で、ファミリーベーシックをポチポチ弄っていた
オッサン大喜びです(笑)
当時は小学生だったので殆ど理解出来ていませんでしたが、今説明書を読んでみると
凄くHSPっぽいなぁーと思って、試しに簡単なSTGを作ってみています。
いまの所こんな感じ↓
ザナックや烈火を意識して作っています^^;
リストはブログの最後に掲載しておきます。
ちょっと作ってみて思ったのは、やはり重いって事です。
現状だと、自機弾x2、敵x4、敵弾x4を超えると処理落ちする感じ。
当初はもっと重かったんですが当たり判定の方法を変更すると、ちょっとマシになりました。
はじめは絶対値を使って常に当たり判定を行っていました。
こんな感じ↓
ddx=(ex+8)-(px+8)
ddy=(ey+8)-(py+8)
if (abs(ddx)<10)AND(abs(ddy)<10)
でもプチコンの公式にあったSTGのサンプルを見てみると、当たって無いときは判定しないって
感じの書き方だったので、真似してみると結構軽くなりました^^
こんな感じ↓
if (ex+8)<(px+8)-8 then @throu
if (ex+8)>(px+8)+8 then @throu
if (ey+8)<(py+8)-8 then @throu
if (ey+8)>(py+8)+8 then @throu
実行したい処理
@throu
と言った感じ。
それでも重いので、当たり判定を空間分割を使って処理してみたりしたのですが、コチラは
あまり変化なし。(私のやり方がおかしかったのかもしれませんが)
背景もBG2枚使って2重スクロールにしたかったんですが、そうすると凄く重かったので
後ろのBGを20フレームに1回動かして、手前のBGは固定しておいてスプライトで高速にスクロール
してるように見せかけて多重スクロールっぽくしてみました。
はじめはタッチペンでの入力って面倒くさそうやなーと思っていたのですが、実際に入力してみると
面倒には代わり無いですが思っていたよりは入力出来てしまいます^^
ちょっとした時間にサクっと制作を始められるので、とても手軽で良いなぁと思いました。
ただ、説明書などをみてみても、ある程度解ってる人向けだなぁといった感じなので、もっと初心者
でも解るような解説サイトみたいなのがあれば良いのになーとは思います。
せめて、命令毎にサンプルプログラム位は付けておいても良かったんじゃないかと^^;
あと、ゲームの配信方法がすれちがい通信しかないのもツライ所。
SDカードなどに保存してwebで公開出来たら、制作に対するモチベーションも変わってくると
思うんですが、セキュリティ面などで入れれなかったようなのが残念です。
せめてリストの出力機能は欲しかったですねぇ・・・
現状だとDSの画面を直接撮影するか、PCなどに直接入力するしか方法がなくて非常に面倒です^^;
今回のプログラムのリストを公開しようと思って撮影したのですが、画像の加工などで
とても暇がかかりました。
DSiウェアなので、その辺のアップデートがないかなぁ~と期待しております^^
試作STGリスト(画像クリックで拡大)
プチコンはDS上で動くBASICって事で、ファミリーベーシックをポチポチ弄っていた
オッサン大喜びです(笑)
当時は小学生だったので殆ど理解出来ていませんでしたが、今説明書を読んでみると
凄くHSPっぽいなぁーと思って、試しに簡単なSTGを作ってみています。
いまの所こんな感じ↓
ザナックや烈火を意識して作っています^^;
リストはブログの最後に掲載しておきます。
ちょっと作ってみて思ったのは、やはり重いって事です。
現状だと、自機弾x2、敵x4、敵弾x4を超えると処理落ちする感じ。
当初はもっと重かったんですが当たり判定の方法を変更すると、ちょっとマシになりました。
はじめは絶対値を使って常に当たり判定を行っていました。
こんな感じ↓
ddx=(ex+8)-(px+8)
ddy=(ey+8)-(py+8)
if (abs(ddx)<10)AND(abs(ddy)<10)
でもプチコンの公式にあったSTGのサンプルを見てみると、当たって無いときは判定しないって
感じの書き方だったので、真似してみると結構軽くなりました^^
こんな感じ↓
if (ex+8)<(px+8)-8 then @throu
if (ex+8)>(px+8)+8 then @throu
if (ey+8)<(py+8)-8 then @throu
if (ey+8)>(py+8)+8 then @throu
実行したい処理
@throu
と言った感じ。
それでも重いので、当たり判定を空間分割を使って処理してみたりしたのですが、コチラは
あまり変化なし。(私のやり方がおかしかったのかもしれませんが)
背景もBG2枚使って2重スクロールにしたかったんですが、そうすると凄く重かったので
後ろのBGを20フレームに1回動かして、手前のBGは固定しておいてスプライトで高速にスクロール
してるように見せかけて多重スクロールっぽくしてみました。
はじめはタッチペンでの入力って面倒くさそうやなーと思っていたのですが、実際に入力してみると
面倒には代わり無いですが思っていたよりは入力出来てしまいます^^
ちょっとした時間にサクっと制作を始められるので、とても手軽で良いなぁと思いました。
ただ、説明書などをみてみても、ある程度解ってる人向けだなぁといった感じなので、もっと初心者
でも解るような解説サイトみたいなのがあれば良いのになーとは思います。
せめて、命令毎にサンプルプログラム位は付けておいても良かったんじゃないかと^^;
あと、ゲームの配信方法がすれちがい通信しかないのもツライ所。
SDカードなどに保存してwebで公開出来たら、制作に対するモチベーションも変わってくると
思うんですが、セキュリティ面などで入れれなかったようなのが残念です。
せめてリストの出力機能は欲しかったですねぇ・・・
現状だとDSの画面を直接撮影するか、PCなどに直接入力するしか方法がなくて非常に面倒です^^;
今回のプログラムのリストを公開しようと思って撮影したのですが、画像の加工などで
とても暇がかかりました。
DSiウェアなので、その辺のアップデートがないかなぁ~と期待しております^^
試作STGリスト(画像クリックで拡大)
カレンダー
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が特に好きで、並木学氏は最高!
ブログ内検索
最古記事