無料flash作成ソフト“ParaFla!” part21
質問です。
アクションゲームを作っていて、右キーを押すとプレイヤーキャラが右に歩くようにしたいのですが、
プレイヤーにこのやり方を記述して右キーを押しっぱなしにすると歩き始める最初の画像のまま固まってしまいます。どうしたらいいのでしょうか?
onClipEvent(load){
}
function Walk(){
if(Key.isDown(Key.RIGHT)){
this._xscale=100;
this._x+=6;
gotoAndPlay("WALK");
}
else if(Key.isDown(Key.LEFT)){
this._xscale=-100;
this._x-=6;
gotoAndPlay("WALK");
}
}
-
onClipEvent(enterFrame){
Walk();
}
プレイヤーのスプライトの中身はこのようになっています。
■[STAND]
(立ち状態の画像)
■[WALK]
(歩き状態の画像 1)
(歩き状態の画像 2)
(歩き状態の画像 3)
(歩き状態の画像 2)
ラベル:[_PrevLabel]
>>952-953 「gotoAndPlay("WALK");」を1回だけ呼び出せば良いはずなのに、ボタンを押してる間はフレーム毎に何度も呼び出してるからだ。
フラグとか適当に用意しておいて、ボタンが押された瞬間のみ「gotoAndPlay("WALK");」を呼び出すようにさせればいい。
以下、修正例。(キーが押されてなかったら立ち状態にできるおまけ付)
ただ、テストしてないから動くかどうかはわからない。
onClipEvent(load){
animation_start=0; //アニメーション開始フラグの初期化
}
function Walk(){
if(Key.isDown(Key.RIGHT)){
this._xscale=100;
this._x+=6;
if(!animation_start){ //アニメーション開始してない?
gotoAndPlay("WALK"); //アニメーションスタート
animation_start=1; //アニメーション開始フラグセット
}
}else if(Key.isDown(Key.LEFT)){
this._xscale=-100;
this._x-=6;
if(!animation_start){ //アニメーション開始してない?
gotoAndPlay("WALK"); //アニメーションスタート
animation_start=1; //アニメーション開始フラグセット
}
}else{
gotoAndPlay("STAND"); //アニメーション停止(立ち状態)
animation_start=0;//アニメーション開始フラグクリア
}
}
-
onClipEvent(enterFrame){
Walk();
}
>>955 思った通りにできました!!ありがとうございました。
毎日暑くて作品作るの進まないお
>955
function文はonClipEvent(load)の後ならクリップアクションに書けるってことを初めて知った
この位置だと整理しやすいな
今までずっとスプライトのフレームアクションに書いていて探すのに苦労してたよorz
あれ?_visibleがfalseになってるムービークリップのクリップアクションってその間実行されないんじゃなかったっけ?
試してみたらちゃんと実行されてるみたいなんだが・・
ムービークリップを削除はせずに、好きなときだけそのすべての処理を実行させない方法ってない?
ある
>>959 ごめん。
ちょっと「じゅん(^_^)V」の反応を試した。
どっちでもなく中立なのが分かって安心した。
それでも今後反発する人に関しては知らん。
誤爆?
>>965 「誤爆」と思い込みたいんですねー (^_^)V
偶然そのスレの中の二つは俺の常駐スレだった
> 1 位/208 ID中
> 今日書き込まれた全ID数 208
> 今日書き込まれた全レス数 277
FLASH板ものすごい過疎
>>970 うわぁ、数値で見るとわかりやすいなぁ・・・
ニコニコに止めを刺された感が
1年以上ぶりにこの板に帰ってきたけど、ずいぶん静かだね
それと知りたいんだけど、Coa氏ってどうしたの?
ブログもしばらく更新されてないし、調べてみたら最後に書き込みがあったのは去年の感謝祭の日だったし
∧__∧
(´・ω・`) 知らんがな。
.ノ^ yヽ、
ヽ,,ノ==l ノ
/ l |
"""~""""""~"""~"""~"
おさぶらいさんっ
>おさぶらいさんっ
そんな日本語はありません。
じゃ?南倍南?
. ∩∩
| | | |
( ゚ω゚)
.ノ^ yヽ
ヽ,,ノ==l ノ
/ l |
"""~""""""~"""~"""~"
おさぶらいさんはかっこいいなぁ
教えてくれぇ〜
web上でタイムラグ無しにmovie1.swf・movie2.swf・movie3.swf…を繋ぐ方法をぉ〜
こちら
http://okwave.jp/qa1667293.html の
◎少し確実な方法を参考に色々弄ってみたけど、ちゃんと動作しないの…
何故かmovie1.swfがループしてしまう…
"親SWFのフレームのスクリプトに
_root.loadMC1.loadMovie("movie1.swf");
と書けば,「loadMC1」というインスタンス名のムービークリップに「movie1.swf」が読み込まれます"
で、
"そして,「movie1.swf」の最終フレームに,
_root.loadMC2.play();
_root.loadMC1.unloadMovie();
と書きます。これで,「loadMC2」に読み込まれた「movie2.swf」がスタートし,
「movie1.swf」自信はアンロードされます"
なんだけど、親フレームの本編の方は残ってることにならないの…?
単にこれがループされてるんじゃ…?
というか、あれもこれもで混乱してしまってもう良く解らんの…!!
この件でもう数日間ずーーっと停滞中…
誰か優しい人…
教えて…orz
>>980 「をぉ〜」「…!!」等の余計な演出をすることばかりに夢中にならず
まず回答に必要な情報をきちんと他人にわかるように書きましょう
アクションスクリプトに関する質問です。
上キーを入力してからプレイヤーがジャンプするまでになぜか数フレーム感覚が空いてしまうのですが、なぜでしょうか?
処理が間に合わないのかと思いFPS1にしてみましたが感覚が空くのは変わりませんでした。
どうしたらすぐに反応させられるのでしょうか?
pflファイルはこれです。よろしくお願いします。
ttp://up.40ch.net/file/src/up0064.zip
onClipEvent (enterFrame) {
if(step==STEP_STAND_EXEC){
// 上を押したら
step=STEP_JUMP_START_INIT; <上を押したフレームはここで終了
}
else if(step==STEP_JUMP_START_INIT){
// しゃがみ
step=STEP_JUMP_START_EXEC; <2フレーム目はここで終了
}
else if(step==STEP_JUMP_START_EXEC){
dy=-20; // ジャンプ
step=STEP_JUMP_INIT; <3フレーム目はここで終了
}
_y+=dy;
}
キー操作の部分を略して書くとこんな感じで、else if で条件式全体を
つなげているため、1フレームに一回しか判定が行われず、↑キーが押され
てから数フレーム経たないと上に移動(dy=-20;)しなくなってる。
>>980 構造をイメージすることが大事です。
この場合はステージ上で違う演目が
連続で行われる風にしたいんですね。
ここでステージがMC、演目がmovie1.swf movie2.swf movie3.swfです
MC SWF
| | ○◎●
ステージ 演目
MC.loadMovie(movie1.swf) をするとMC(ステージ)にmovie1.swfが入り、
再生されます。
|○|≡ ◎●
MC.loadMovie(movie2.swf) をするとMC(ステージ)にmovie2.swfが入り、
再生されます。このとき、movie1.swfの中身
記憶した変数、画像などは movie2.swf のものに上書きされます。
ステージの袖に撤収すると考えるといいかもしれません。
○≡ |◎|≡ ●
んで、とりあえず実際にどう使うのかサンプル作ってくるからちょっとお待ち!
985 :
980:2008/07/26(土) 18:28:23 ID:za/4xqT7
>>981 ごめんなさい<(_ _)>
これだけじゃなくMovieClipLoaderやらリスナー登録やら
何日も色々調べまくってたんで頭の中がごちゃごちゃになってて
時間も時間だったので もう寝るってことでアルコールを少々、
それにしてもParaFlaってのは奥が深くておもしろいなぁ…と
ちょっと変な方向にハイになってしまった状態でこちらの板を思い出し
そのままカキコって流れだったもので
>>984 ありがとう!!!
ヒントを元に本日も自分でやってみます。
(自分の感覚では結構イイところまで辿りついてる感があるものの
何かがちょっと足りない、何処かが少しおかしいとも感じてて、でも
それが何なのかが良く解らない…orz)
サンプル、待ってます。
宜しくお願いします<(_ _)>
>>987 var listener = new Object();
ParaFla では型を指定する(:Object や :MovieClip などを付ける)とエラーになる。
公開されているスクリプトをコピペするときには必ずそれを外すこと。
>>988 お! ご指摘の部分を削除したら確かにエラーは無くなりました!
なるほど〜そういうことでしたか…
http://www.geocities.jp/para_core/kouza/index.html http://www.geocities.jp/dr0p4u/how2/ をはじめ、2chを筆頭にあっちこっちのHPを調べまくって
それでも分からなかったので(見逃してただけ??)、
公開者に直接質問してみたりもしてみたのですが回答無く…
の状況の下、いきなりの正答、ありがとうございました<(_ _)>
(しかしながら…早速活用してみましたが動作せず…(^^;)
何がどうおかしいのだろう…?(-_-;))
実はスクリプトについては全くの素人(CGI、Perlあたりをちょっと、
ほんのちょっと囓ったことがある程度)でして、ParaFlaを知って数ヶ月、
早速アニメを作成してみて、ここにきてやっと完成、が、思っていた以上に
サイズが大きくなりすぎてしまってUP制限に引っ掛かり仕方なく分割、
でもloadMovieではあまりにも露骨なタイムラグ…
なので(半強制的に)スクリプトを…という流れでして…
次回からは是非ともUP制限内に…という自戒の念を抱きつつ…
(にしても、新たな知識(技術・ワザ)がドクドクと脳味噌に流入…
この感覚…実に心地良い…p(´⌒`;))
言い訳とか感想うぜえええええええええええええええええええ
>>991 感想はともかく言い訳って?
ま、いいけどw
それはともかく不愉快な思いをさせたことは明らかなようなので、謝ります
ごめん<(_ _)>
とにかくどーにも上手くいかないので
もう例の如く酒飲んでふて寝する!w
_root.loadMC1.loadMovie("movie1.swf");
_root.loadMC2.play();
この loadってのが効いていない気がする…
貴方、なんか有用なレスは無い?
(というか、くれ)
>>992 -----------------------
感想はともかく言い訳って? ←明らかに自覚無し: -15
ま、いいけどw ←なれなれしい態度: -20
それはともかく不愉快な思いをさせたことは明らかなようなので、謝ります ←分かっていない空謝罪:-30
ごめん<(_ _)> ←無意味な顔文字: -20
とにかくどーにも上手くいかないので ←無意味な長音(ー): -5
もう例の如く酒飲んでふて寝する!w ←身勝手な行動: -30
_root.loadMC1.loadMovie("movie1.swf");
_root.loadMC2.play();
この loadってのが効いていない気がする… ←あいまいな「load」: -10
貴方、なんか有用なレスは無い? ←手当たり次第の強要: -25
(というか、くれ) ←まさかの命令形: -50
BONUS:スレ立て無視: -50
----------------------------
計: -255点
_root.loadMC2.loadMovie("movie2.swf"); はどのタイミングで書いてるの?
>>994 実はまだ起きてたりしてw
それからもゴチャゴチャ弄ってて
アルコールに毒されながらw
にしても、大笑いしたよwww
特に後半
←身勝手な行動: -30
←あいまいな「load」: -10
←手当たり次第の強要: -25
←まさかの命令形: -50
中でも"あいまいな"って部分ww
いいセンスしてると思う
サンキュウ!
で、貴方、教えてくれない?
「web上でタイムラグ無しにmovie1.swf・movie2.swf・movie3.swf…を繋ぐ方法」を
2chだからってことでそれなりに対応してるけど、
ただ単にこれだけを知りたいだけなのよホントは
とりあえず、寝る、身勝手にw -30
(スレ最終でこんな流れになってちょっとヤバいね…?)
>>995 レス、ありがとうございます
新スレ誘導後に…<(T T;)>
999
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。