トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ブロック崩しのボールの速度を一定に。
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
野中文雄
Åê¹ÆNo.30060
投稿日時: 2006-11-16 22:21
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ブロック崩しのボールの速度を一定に。
geomは、幾何学(geometry)の略です。Pointクラスは、2次元座標ベクトルを扱います。
引用:
ebiさんは書きました:
....すいません。結局geomって何なんでしょう?
ゲオム?

見るべきだったのは、英和辞典ですね。
引用:
ちょっとリファレンスみても分かりませんでした。


----------------
 

森 巧尚
Åê¹ÆNo.30059
投稿日時: 2006-11-16 22:21
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: ブロック崩しのボールの速度を一定に。
引用:

ebiさんは書きました:
....すいません。結局geomって何なんでしょう?


geometryのことですね。


----------------
森 巧尚
http://www.ymori.com

ebi
Åê¹ÆNo.30058
投稿日時: 2006-11-16 22:07
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
Re: ブロック崩しのボールの速度を一定に。
ebiです。


....すいません。結局geomって何なんでしょう?
ゲオム?

ちょっとリファレンスみても分かりませんでした。
初期値 みたいな意味でしょうか?
ebi
Åê¹ÆNo.30055
投稿日時: 2006-11-16 21:33
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
Re: ブロック崩しのボールの速度を一定に。
ebiです。
引用:
どういう内容の計算をしている式なのかわかりませんけど


こりゃ失礼しました。そりゃそうですよね。とちりました。
(というか、特に出す必要のないスクリプトだったかもです...)

BALLがボールmc
PDLがパドル(棒)mc
MV_xがボールの_x移動数の変数

です。

MV_X = (BALL._x - (PDL._x + PDL._width/ 2)) * 8 / PDL._width;

は、パドル(棒)にボールが接触した時のスクリプトです。
ボールが接触したパドルの位置に(8段階)よって
角度(移動値)を変化させてるです。

お教えいただいたスクリプトは、いろいろ見た事ないのが
登場してますねーっ(鼻息)
リファレンスを参考にとりあえず何をやっているのか
理解しようと思います。
野中文雄
Åê¹ÆNo.30050
投稿日時: 2006-11-16 20:09
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ブロック崩しのボールの速度を一定に。
どういう内容の計算をしている式なのかわかりませんけど。角度を出す必要はないんですよね。たとえば、xy成分(10, 10)ピクセルを毎フレーム加算して動かしていたときに、何らかの計算で値を(5, 15)に変更すると、そのスピード(長さ)が変わるということですか?
引用:
ebiさんは書きました:
MV_X = (BALL._x - (PDL._x + PDL._width/ 2)) * 8 / PDL._width;

変化がつくのはいいんですが、やっぱコレ、そうすると、
早くなったり、遅くなったりしちゃうでしょう?
僕としては角度を変えたいだけなのに
速度まで変わっちゃうわけでして。

上記の前提で、Flash 8とします。
import flash.geom.Point;
// 原点(0, 0):
// var p_0:Point = new Point(0, 0);
// 変更前(10, 10):
var p_1:Point = new Point(10, 10);
// var nDistance:Number = Point.distance(p_0, p_1);  // 長さ
var nDistance:Number = p_1.length;  // 長さ
trace(nDistance);  // 出力: 14.142135623731 = 10√2
// 変更後(5, 15):
var p_2:Point = new Point(5, 15);
p_2.normalize(nDistance);  // 長さを同じに
// trace([p_2.x, p_2.y, p_2.y/p_2.x, Point.distance(p_0, p_2)]);
trace([p_2.x, p_2.y, p_2.y/p_2.x, p_2.length]);
// 出力: 4.47213595499958,13.4164078649987,3,14.142135623731
// xy成分: (4.47213595499958,13.4164078649987)
// y/x = 15/5 = 3
// 長さ: 14.142135623731 = 10√2

[追記] Point.lengthプロパティの存在を見落としていましたので、上記スクリプトはこのプロパティを用いる処理に書替えました。


----------------
 

ebi
Åê¹ÆNo.30045
投稿日時: 2006-11-16 18:50
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
Re: ブロック崩しのボールの速度を一定に。
ebiです。

引用:
移動値の符号を逆にしているのなら、移動方向が変わるだけで、早くなったり、遅くなったりしませんが・・・

失礼(´人`)そうでした。
パドルに当たった時に当たった箇所によって値に変化をつけてる事を
言い忘れてました。こういう事をしてます。
MV_X = (BALL._x - (PDL._x + PDL._width/ 2)) * 8 / PDL._width;

変化がつくのはいいんですが、やっぱコレ、そうすると、
早くなったり、遅くなったりしちゃうでしょう?
僕としては角度を変えたいだけなのに
速度まで変わっちゃうわけでして。

どうしたもんでしょうかねぇ。

蛇足 - - - - - - - - - -
リンク先のカスタマーレビュー好評ですねぇ
うすあじ
Åê¹ÆNo.30043
投稿日時: 2006-11-16 18:40
職人
居住地: 東京都杉並区
投稿: 211
使用環境:
FlashCS5.5 ,MacOSX 10.6.8
Re: ブロック崩しのボールの速度を一定に。
引用:
これだと急にボールが早くなったり、遅くなったりします。

移動値の符号を逆にしているのなら、移動方向が変わるだけで、早くなったり、遅くなったりしませんが・・・

もうちょっと問題にしているポイントが明確になるといいかもしれません。

一応、ブロック崩しに関して書いたものを何度か本にして、出版してるもので(^^A

これとか
http://www.amazon.co.jp/exec/obidos/ASIN/4875932898/


----------------
うすあじ(twitter)
うすあじFlash研究所
HSPセンター

ebi
Åê¹ÆNo.30035
投稿日時: 2006-11-16 17:33
フォーラム芸人
居住地: nagoya
投稿: 926
使用環境:
.6.8
CS6
<参考書>
・基本からしっかりわかるActionScript 3.0(既読)
・ActionScript3.0プロフェッショナルガイド(進行中)
・ActionScript3.0パフォーマンスチューニング(未読)
・ActionScript 3.0 逆引きクイックリファレンス(購入予定...
ブロック崩しのボールの速度を一定に。
ebiです。

ブロック崩し

参考書などで紹介されてるやり方はたいてい、
「分かり易いから」って理由で何かに接触すると
x移動値やy移動値をひっくりかえすやり方ですが、
これだと急にボールが早くなったり、遅くなったりします。

ボールの速度を変えたくないって場合は、
どのような方法が考えられますでしょうか。

x移動値・y移動値ひっくりかえし法から、
角度を算出してウンヌン法って事になるんかしら...
« 1 (2)
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops