ページ 1 / 1
いらいら棒について
Posted: 2013年9月10日(火) 14:52
by 黒猫
http://dixq.net/Android/s02_01.html
こちらの動画のように当たってもセーフになる黒いラインはどのようなプログラムを書けばいいのでしょうか…。
初心者故なのか中々解決策が見つかりません…
力を貸していただけると助かります。
Re: いらいら棒について
Posted: 2013年9月10日(火) 19:21
by ISLe
壁に沿って玉を動かすために、数学や物理の知識を動員する必要があります。
難易度はかなり高いです。
Re: いらいら棒について
Posted: 2013年9月10日(火) 20:32
by Dixq (管理人)
まず、ブロックのタイプを表す部分に「SAFE」を追加します。
コード:
public enum eType { // 障害物のタイプ
OUT, // あたるとアウトなタイプ
SAFE, // あたっても大丈夫タイプ
GOAL // あたるとゴールなタイプ
}
そのブロックの属性をSAFEにしておき、SAFEブロックと接触した時は、
弾が動いている方向とSAFEブロックの線の方向との成す角を算出します。
壁に弾く方向に反射させて弾の進行方向を変えます。
弾は慣性が効いているのでバウンドしますからバウンドする速度をそのままにすると永遠にポンポン跳ね続けてしまいます。
そこで、バウンドする時に少し反射して進む速度を落とします。
こうすることで自然な跳ね返りが実現できるかと思います。
Re: いらいら棒について
Posted: 2013年9月11日(水) 14:33
by 黒猫
Dixq (管理人)殿早速のご返答ありがとうございます
public enum eType については昨日書き込んだ後気付いたんですが肝心のsafeの中身が手が出しようがなく…
エミュレータで自動で動くボールが画面端にぶつかったら跳ね返るというのは作った事があるんですが、
センサーを使ったものとなると一気に混乱してしまします…
もしよければですが、動画のいらいら棒のプログラムがまだ残っていたら載せていただけないでしょうか…
Re: いらいら棒について
Posted: 2013年9月11日(水) 15:00
by softya(ソフト屋)
> もしよければですが、動画のいらいら棒のプログラムがまだ残っていたら載せていただけないでしょうか…
Androidは詳しくないので、細かい所にはお答えできませんが「s2.1 ゲームの骨格を作る」だけでなく講座を全部見れば書いてあるのではないでしょうか?
「Androidプログラミングの館」 → 「ゲーム イライラ棒アプリ作成」
http://dixq.net/Android/index.php
Re: いらいら棒について
Posted: 2013年9月11日(水) 15:49
by 黒猫
softya(ソフト屋) 殿
いらいら棒製作の講座は全部見よう見まねで直接打ち込みちゃんと起動しました。
が、動画のような当たってもアウトにならなくて跳ねる壁に関する記述がなかったので困っている現状なのです。
申し訳ないです。
Re: いらいら棒について
Posted: 2013年9月11日(水) 17:30
by softya(ソフト屋)
見よう見まねではなく理解すれば追加できると思います。
勉強のためにやっているんですよね?
Re: いらいら棒について
Posted: 2013年9月11日(水) 17:30
by ISLe
任意の向きの辺と接触した後のボールの向きを求めれば良いのですが、高度な内容なのでAndroidの館にこの部分の計算は出てきません。
センサーを使うかどうかはまったく関係ないですよ。
- Playerクラスにバウンド処理用のメソッドを追加してください。
例えば
void bounce(Vec vec)
という形で引数に接触した障害物の辺の向きを表すベクトルを与えます。
- Barricade#isHitメソッド、GameMgr#Collisionメソッドにコードを追加して、安全な障害物に接触したとき、1.で追加したメソッドが呼び出されるようにしてください。
Androidではないですがバウンド処理用メソッドの中身はこちらが参考になるでしょうか。
壁に沿って転がる玉:ISLeのビデオゲーム工房
Re: いらいら棒について
Posted: 2013年9月11日(水) 21:35
by Dixq (管理人)
すみませんが、探してみましたがもう昔のプロジェクトコードは無いようです。
後、ISLeさんが仰るようにセンサーを使うかどうかは全く関係ないですよ。
どういう処理を追加すればいいかはもう既に述べたので・・。
見ようみまねではなく、特にPlayerクラスと物体との接触計算部分を理解しながら作っていってみて下さい。
Re: いらいら棒について
Posted: 2013年9月12日(木) 12:15
by 黒猫
Dixq (管理人)殿、 ISLe 殿お二方
勉強なのでもっと悩んでみます。
有難うございました。