トップページ > FLASH > 2011年05月18日 > st4y2XQS

書き込み順位&時間帯一覧

1 位/87 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000000000147340000019



使用した名前一覧書き込んだスレッド一覧
Now_loading...774KB
ActionScript 誰かが物凄い勢いで解答するスレ28

書き込みレス一覧

ActionScript 誰かが物凄い勢いで解答するスレ28
507 :Now_loading...774KB[]:2011/05/18(水) 14:36:25.70 ID:st4y2XQS
2chで書き込みするのは初めてです。よろしくお願いします。
私は今adobe CS5の AS3でビリヤードゲームを作ろうと思ってます。 
http://hakuhin.jp/as/block.html
今こちらのサイトを参考に作っています。
これを参考にしようと思ったのはボールが壁に当たったら返ってくるからです。
ここのサイトの内容はAS2っぽいので自分なりにAS3に変えて作り始めました。
if (ball.x < 0 + 5) {
ball.x = 0 + 5;
dx = dx * -1;
}
if (ball.x > 200 - 5) {
ball.x = 200 - 5;
dx = dx * -1;
}
if (ball.y < 0 + 5) {
ball.y = 0 + 5;
dy = dy * -1;

}
if (ball.y > 250 + 5) {
ball.y = 250 + 5;
dy = by * -1;
このif文のところが移動方向を反対にさせる文なんですがなぜか反転しません。
traceで中身を見たところ 値自体は反転しているのですが・・・
どこかおかしいところはありませんか?
全体を見なければ分からないのであれば他の部分も乗せたいと思います。

よくネチケットとかわかりませんがこんな感じでよかったでしょうか?

ActionScript 誰かが物凄い勢いで解答するスレ28
509 :Now_loading...774KB[]:2011/05/18(水) 15:43:13.62 ID:st4y2XQS
>>508
bar.y = 230;var dx = 1;var dy = -3;
if (bar.x < 0+20){bar.x = 0+20;
}if (bar.x > 200 - 20)
{bar.x = 200 - 20;}
if (ball.x < 0 + 5)
{ball.x = 0 + 5;dx = dx * -1;}
if (ball.x > 200 - 5)
{ball.x = 200 - 5;dx = dx * -1;}
if (ball.y < 0 + 5)
{ball.y = 0 + 5;dy = dy * -1;}
if (ball.y > 250 + 5)
{ball.y = 250 + 5;dy = dy * -1;}
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler);
function fl_KeyboardDownHandler(event:KeyboardEvent):void
{if (event.keyCode == 37)
{bar.x = bar.x - 3;
}if (event.keyCode == 39)
{bar.x = bar.x + 3;
}}
addEventListener(Event.ENTER_FRAME, ugoki);
function ugoki(event:Event):void {
ball.x = ball.x + dx;ball.y = ball.y + dy;trace(dx);trace(dy);}
全体はこちらになります。
改行が多いとこちらでエラーになったので修正してます。見辛くてすいません。
ActionScript 誰かが物凄い勢いで解答するスレ28
511 :Now_loading...774KB[]:2011/05/18(水) 15:53:26.41 ID:st4y2XQS
ちなみにball.xが無いのはこちらを例えば
ball.x = 100;
としてしまうと 挙動が変になるからです。
バー自体の位置はこれでも十分なのでこれでいこうと思っています。
ball.x又は.yのif文の場所をずらしたり値を変えたりとしたのですが駄目でした。
画面のサイズは 200px×250pxです。
yの反射の位置を250じゃない場所にずらしたりもしてみました。
ActionScript 誰かが物凄い勢いで解答するスレ28
512 :Now_loading...774KB[]:2011/05/18(水) 15:55:11.72 ID:st4y2XQS
>>510
最初のif文は私が最初に質問したとif文のことでしょうか?
それでしたらそのif文の始まりはさっき上げた全文の5行目になります。
ActionScript 誰かが物凄い勢いで解答するスレ28
514 :Now_loading...774KB[]:2011/05/18(水) 15:59:40.26 ID:st4y2XQS
すいません 最近作れと言われたばかりでロクな勉強をしてないので
イベントリスナと言われてもよくわかりません
おそらくevent:KeyboardEventやEvent.ENTER_FRAMEの中のことを指してると
考えて回答します。
最初にEvent.ENTER_FRAMEの中にif文を入れていたのですが今なってる結果と
同じだったのでif文の位置を変えてみた結果が今の全文です。
ActionScript 誰かが物凄い勢いで解答するスレ28
517 :Now_loading...774KB[]:2011/05/18(水) 16:06:27.87 ID:st4y2XQS
>>516
traceの下にballのif文を入れたのですがやはり挙動は同じでした。
動き的には壁に当たったら反射したいのですがずっとマゴマゴとはまったまま
帰ってきません。
ActionScript 誰かが物凄い勢いで解答するスレ28
519 :Now_loading...774KB[]:2011/05/18(水) 16:15:02.54 ID:st4y2XQS
1
-3
と最初に動き
壁に当たると
1
-3
1
3
1
-3
-1
-3
という動きを永遠に繰り返します。
ActionScript 誰かが物凄い勢いで解答するスレ28
522 :Now_loading...774KB[]:2011/05/18(水) 16:16:58.91 ID:st4y2XQS
>>520
ありがとうございます!まさにフレームが一個多い状態でありました。
早速こちらを削除したところ成功しましたありがとうございます
ActionScript 誰かが物凄い勢いで解答するスレ28
526 :Now_loading...774KB[]:2011/05/18(水) 16:27:52.61 ID:st4y2XQS
>>523
まさにその通りでした。
フレームを削除したら無限に移動するようになってしまいました。
そこでfl_KeyboardDownHandlerにifを入れたら直りました。
本当に皆さんありがとうございました。
ActionScript 誰かが物凄い勢いで解答するスレ28
528 :Now_loading...774KB[]:2011/05/18(水) 16:31:59.07 ID:st4y2XQS
すみません さらに質問なのですがこの後これを応用してビリヤードゲームを
作っていこうと思ってます。
デザインはもうできているので流れ的にはボール一個ごとの処理と反射の計算
をして穴のピクセルの部分に触れたらそのボールを消滅させてカウントを1増やし
カウントがゲームクリアの個数になったらクリア画面に飛ばすという流れで間違いは
ないでしょうか? 先輩に聞くと流れは最初にキチンと作らないと修正した時に
苦労をすると聞いたので少し不安です。
ActionScript 誰かが物凄い勢いで解答するスレ28
530 :Now_loading...774KB[]:2011/05/18(水) 16:44:10.19 ID:st4y2XQS
玉を突くのは難しいと思いまして自分で妥協し
方向をマウスの方向で点線を出して指定する。
下の画面にパワー目盛を出してどのくらいの力で発射するかを決めてとやっていこうと思ってます。
とこっちでいろいろ調べてたらASファイルというのを作らなければむりっぽいので
もう一回勉強しなおします。
ちなみにASファイルとか無しでもいけますか?

ActionScript 誰かが物凄い勢いで解答するスレ28
533 :Now_loading...774KB[]:2011/05/18(水) 16:52:58.98 ID:st4y2XQS
>>532
わかりましたーいきなりrootで躓いたので質問してたのですがどうやら
MovieClip(root)
でいけるみたいですね。こうやってだましだましやっていきます。
ActionScript 誰かが物凄い勢いで解答するスレ28
536 :Now_loading...774KB[]:2011/05/18(水) 17:02:26.80 ID:st4y2XQS
いきなり躓きました
if (_root.ball.hitTest(_root.bar)) {
_root.ball._y = _root.bar._y - 10;
rad = Math.atan2(_root.ball._y-_root.bar._y,_root.ball._x-_root.bar._x);
dx = Math.cos(rad)*3;
dy = Math.sin(rad)*3;
}
rootはMovieClip(root)でなんとかできましたがMathがどう検索してもAS以外でやる方法を見つけ出せません・・・
ActionScript 誰かが物凄い勢いで解答するスレ28
537 :Now_loading...774KB[]:2011/05/18(水) 17:03:08.61 ID:st4y2XQS
ちなみにactionscript3.0の話です。自分の状況を伝えずに申し訳ない。
ActionScript 誰かが物凄い勢いで解答するスレ28
541 :Now_loading...774KB[]:2011/05/18(水) 17:32:00.00 ID:st4y2XQS
>>540
Mathが使えないみたいな表示が出てきます。

ActionScript 誰かが物凄い勢いで解答するスレ28
545 :Now_loading...774KB[]:2011/05/18(水) 18:08:16.44 ID:st4y2XQS
>>542,543
すいません解決しました。 varが入っていなかっただけでした。
こんなくだらない間違えで騒いで申し訳ありませんでした。
ActionScript 誰かが物凄い勢いで解答するスレ28
548 :Now_loading...774KB[]:2011/05/18(水) 18:26:08.82 ID:st4y2XQS
またまたすいません
var flg = new Array();
for (i=0; i<5; i++) {
if(flg[i] == 1) continue;
if (MovieClip(root).ball.hitTestObject(this.("MovieClip(root).brock"+i))) {
flg[i] = 1;
this.("MovieClip(root).brock"+i).visible = false;
if (MovieClip(root).ball.x+5 < this.("MovieClip(root).brock"+i).x-20+4 && MovieClip(root).ball.y+5 < this.("MovieClip(root).brock"+i).y-7.5+4) {
dx = -3;
dy = -3;
}}}
なんですが、TypeError: Error #1123: Filter 演算子は型 _fla.MainTimeline でサポートされていません。
とでてうまくいきません。
検索をかけてみたんですがうまく引っかからずに困ってます。
ActionScript 誰かが物凄い勢いで解答するスレ28
550 :Now_loading...774KB[]:2011/05/18(水) 18:28:00.34 ID:st4y2XQS
>>548はAS3.0です。
ActionScript 誰かが物凄い勢いで解答するスレ28
553 :Now_loading...774KB[]:2011/05/18(水) 18:50:00.53 ID:st4y2XQS
>>551
ありがとうございます。
brockには突っ込まないで下さい・・・


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。