http://dixq.net/Android/s02_01.html
こちらの動画のように当たってもセーフになる黒いラインはどのようなプログラムを書けばいいのでしょうか…。
初心者故なのか中々解決策が見つかりません…
力を貸していただけると助かります。
いらいら棒について
Re: いらいら棒について
壁に沿って玉を動かすために、数学や物理の知識を動員する必要があります。
難易度はかなり高いです。
難易度はかなり高いです。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 14年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: いらいら棒について
まず、ブロックのタイプを表す部分に「SAFE」を追加します。
そのブロックの属性をSAFEにしておき、SAFEブロックと接触した時は、
弾が動いている方向とSAFEブロックの線の方向との成す角を算出します。
壁に弾く方向に反射させて弾の進行方向を変えます。
弾は慣性が効いているのでバウンドしますからバウンドする速度をそのままにすると永遠にポンポン跳ね続けてしまいます。
そこで、バウンドする時に少し反射して進む速度を落とします。
こうすることで自然な跳ね返りが実現できるかと思います。
弾が動いている方向とSAFEブロックの線の方向との成す角を算出します。
壁に弾く方向に反射させて弾の進行方向を変えます。
弾は慣性が効いているのでバウンドしますからバウンドする速度をそのままにすると永遠にポンポン跳ね続けてしまいます。
そこで、バウンドする時に少し反射して進む速度を落とします。
こうすることで自然な跳ね返りが実現できるかと思います。
Re: いらいら棒について
Dixq (管理人)殿早速のご返答ありがとうございます
public enum eType については昨日書き込んだ後気付いたんですが肝心のsafeの中身が手が出しようがなく…
エミュレータで自動で動くボールが画面端にぶつかったら跳ね返るというのは作った事があるんですが、
センサーを使ったものとなると一気に混乱してしまします…
もしよければですが、動画のいらいら棒のプログラムがまだ残っていたら載せていただけないでしょうか…
public enum eType については昨日書き込んだ後気付いたんですが肝心のsafeの中身が手が出しようがなく…
エミュレータで自動で動くボールが画面端にぶつかったら跳ね返るというのは作った事があるんですが、
センサーを使ったものとなると一気に混乱してしまします…
もしよければですが、動画のいらいら棒のプログラムがまだ残っていたら載せていただけないでしょうか…
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: いらいら棒について
> もしよければですが、動画のいらいら棒のプログラムがまだ残っていたら載せていただけないでしょうか…
Androidは詳しくないので、細かい所にはお答えできませんが「s2.1 ゲームの骨格を作る」だけでなく講座を全部見れば書いてあるのではないでしょうか?
「Androidプログラミングの館」 → 「ゲーム イライラ棒アプリ作成」
http://dixq.net/Android/index.php
Androidは詳しくないので、細かい所にはお答えできませんが「s2.1 ゲームの骨格を作る」だけでなく講座を全部見れば書いてあるのではないでしょうか?
「Androidプログラミングの館」 → 「ゲーム イライラ棒アプリ作成」
http://dixq.net/Android/index.php
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: いらいら棒について
softya(ソフト屋) 殿
いらいら棒製作の講座は全部見よう見まねで直接打ち込みちゃんと起動しました。
が、動画のような当たってもアウトにならなくて跳ねる壁に関する記述がなかったので困っている現状なのです。
申し訳ないです。
いらいら棒製作の講座は全部見よう見まねで直接打ち込みちゃんと起動しました。
が、動画のような当たってもアウトにならなくて跳ねる壁に関する記述がなかったので困っている現状なのです。
申し訳ないです。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: いらいら棒について
見よう見まねではなく理解すれば追加できると思います。
勉強のためにやっているんですよね?
勉強のためにやっているんですよね?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: いらいら棒について
任意の向きの辺と接触した後のボールの向きを求めれば良いのですが、高度な内容なのでAndroidの館にこの部分の計算は出てきません。
センサーを使うかどうかはまったく関係ないですよ。
壁に沿って転がる玉:ISLeのビデオゲーム工房
センサーを使うかどうかはまったく関係ないですよ。
- Playerクラスにバウンド処理用のメソッドを追加してください。
例えば
void bounce(Vec vec)
という形で引数に接触した障害物の辺の向きを表すベクトルを与えます。 - Barricade#isHitメソッド、GameMgr#Collisionメソッドにコードを追加して、安全な障害物に接触したとき、1.で追加したメソッドが呼び出されるようにしてください。
壁に沿って転がる玉:ISLeのビデオゲーム工房
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 14年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: いらいら棒について
すみませんが、探してみましたがもう昔のプロジェクトコードは無いようです。
後、ISLeさんが仰るようにセンサーを使うかどうかは全く関係ないですよ。
どういう処理を追加すればいいかはもう既に述べたので・・。
見ようみまねではなく、特にPlayerクラスと物体との接触計算部分を理解しながら作っていってみて下さい。
後、ISLeさんが仰るようにセンサーを使うかどうかは全く関係ないですよ。
どういう処理を追加すればいいかはもう既に述べたので・・。
見ようみまねではなく、特にPlayerクラスと物体との接触計算部分を理解しながら作っていってみて下さい。