ページ 11

アクションプログラム

Posted: 2010年12月09日(木) 11:53
by 駄文使い
DXライブラリのサンプルを利用し、基本の動きである左右移動、ジャンプを実装し、ゲームの計画通りキャラクタチップのサイズを30bitから60bitサイズに変更を行いました。
基本動作の状況~
キャラクタチップの変更により
接地判定などに問題が起こりました。
マップチップで一つだけをおいたところに飛ぼうとすると、何もない中間点でとまってしまいます。
1マスだけの状態での判定のとき、通り抜けてしまいました。

理由としては、判定をマップチップを左上、右上、左下、右下の四点の座標位置で判定しているからだと予想しています。
その為、現在、真上と真下の判定を組み込んだ段階です。
何もない中間点での動作をどうするかが問題となっています。

攻撃方法~
弾丸を発射できるようになりました。
問題は発射後の弾丸にも割り込みでのキーボード判定が反映されていることです。

添付ファイルに必要データをつけておきます。
char.pngなのですが、これをhg.bmpに変更お願いします。

回答お願いします
右側に弾丸を発射した後、左ボタンを打つと左に発射後の弾丸がついてくる。
どのように改善するといいのかわかりません。

質問で聞きたいことは攻撃法方法である弾丸の制御の仕方
キャラクタの動きに関してです。

Re: アクションプログラム

Posted: 2010年12月09日(木) 14:07
by softya(ソフト屋)
幾つか問題あるので列挙します。
(1)chara.pngが60x60の倍数では無いグラフィックサイズです。360x360に7x7のパーツが入っているので整数で割りきれません。
60x60なら420x420ドットになるはずです確認して下さい。

(2)LoadDivGraph( "chara.png" , 16 , 4 , 4 , 60 , 60 , image );が実際のグラフィックと一致していません。
LoadDivGraph( "chara.png" , 49 , 7 , 7 , 60 , 60 , image );が狙ったものと思いますが(1)で指摘した通り現状はそれにも合っていません。
LoadDivGraph( "chara.png" , 16 , 4 , 4 , 51 , 51 , image );が今のグラフィックだと妥協案です。

(3)弾の向きがキャラクタの向きに左右される。
弾を発射した瞬間に弾毎の向きを固定するため向きを複製してください。
つまり、

コード:

struct shot{
	int x2,y2;  //座標
	int flag;
};
は、

コード:

struct shot{
	int x2,y2;  //座標
	int muki;
	int flag;
};
に変えてこのmukiをうまく使うのです。

【追記】
って書いてから思ったけど次見てくれるの来週の月曜日なんだろうか?
毎週月曜日と木曜日の午前中しかここに来れないみたいですが、現状のペースだと年内に弾発射でさえ正常になるかどうか微妙だと思います。
それに上で指摘してませんが、モーションがかなり怪しいです。
実のところ、あまりDXライブラリの使い方を理解していらっしゃるとも思えませんのでかなり厳しいと思ってください。

Re: アクションプログラム

Posted: 2010年12月13日(月) 12:13
by 駄文使い
softyaさん回答ありがとうございます。
施設の関係でデータとソフトが使用できない状態ですので、おっしゃるように月曜日、木曜日の午前中にしかこれません。

モーションの動きがかなり怪しいというのは、私が書いた問題点以外にもあるのでしょうか。

弾丸発射時にmuki変数を追加するということですよね。

回答ありがとうございました

Re: アクションプログラム

Posted: 2010年12月13日(月) 12:18
by softya(ソフト屋)
データやソースがそのまま持ち出せないにしてもソースを印刷するとか書き写すとか、机上で出来ることも沢山あるはずです。
それとネットカフェ等の利用など、この掲示板に訪れる方法も無いとは思えません。
本当に手はないのでしょうか?良く考えてみてください。

Re: アクションプログラム

Posted: 2010年12月13日(月) 12:26
by softya(ソフト屋)
駄文使い さんが書きました: モーションの動きがかなり怪しいというのは、私が書いた問題点以外にもあるのでしょうか。
プレーヤーキャラの動きがかなり不思議な動きをします。
原因は画像データとプログラムの整合性が取れていないって事に尽きるとおもいます。
駄文使い さんが書きました: 弾丸発射時にmuki変数を追加するということですよね。
弾の制御は弾専用のmukiを使って、プレイヤーはプレイヤーのmukiを使います。
弾を発射した瞬間に、プレーヤーのmukiを弾のmukiにコピーしてください。
これで弾が発射した瞬間の方向に固定されます。

Re: アクションプログラム

Posted: 2010年12月13日(月) 12:38
by マグロ丼
モーションの動きがあやしいというか、こうすればもっと歩いているように見せられるのに、と思った点で書かせていただきます。
根本的な話として、一番上のモーションでは右足で接地したのにまた右足で前に行こうとしています。
これでは少しびっこを引いている感じになってしまいます。
歩くというのはうまく倒れずに前につんのめっていく動作です。
上から二番目のモーションでは確実にこけます。実際にご自身で動いてみるといいですね。
あと、頭の位置も上下しますし、また上半身も動くので銃も上下に動きます。
頭は若干ながら動いているように見えますが、銃も動けばもっとらしく見えるようになると思いますよ。

Re: アクションプログラム

Posted: 2010年12月14日(火) 10:34
by 駄文使い
softyaさん、わかりやすい解説ありがとうございます。
マグロ丼さん、具体的に不具合を指摘していただきありがとうございます。
モーションの動きが早く、そこまで確認をしておりませんでした。ありがとうございます。

データやソースがそのまま持ち出せないにしてもソースを印刷するとか書き写すとか、机上で出来ることも沢山あるはずです。
それとネットカフェ等の利用など、この掲示板に訪れる方法も無いとは思えません。

机上での作業では、コードの整合性を確認できないもので、していませんでした。
DXライブラリをうまく扱えていない現状、ソレができるとは思えず、避けて考えていました。
時間がないのですから、それくらいのことはしないと完成しないですね。がんばります。