[過去ログ]
NScripter Ver.19.00 (553レス)
NScripter Ver.19.00 http://mevius.5ch.net/test/read.cgi/gamedev/1391089268/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
57: 名前は開発中のものです。 [sage] 2014/03/10(月) 22:17:24.88 ID:8VIsfxv+ ; 立ち絵を動かすサブルーチンで呼ばれるサブルーチン。弄るのは・・・X,Y座標関係と傾きのみ? @lcanimation param %spname,%to.cx,%to.cy,%to.rot,%time ; SP "window:linebreak",{name={%ld1 , %ld2 , %ld1 , %ld2 , %ld1},xs=%size,ys=%size,cx=(%send_cx+%xpos),cy=(%send_cy+%ypos),animtime=100,animtype="round"} GETSPINFO %spname,%from ; CPRINT %from.cx ;----------------- ; %from から %to の値に %time掛けて 移行させる処理 ;------------------ RESETTIMER ;---- 時間処理開始 do %nowtime=GETTIMER() ;---- 経過時間取得 if %nowtime > %time then exit ;---- 経過時間が超過したらloopを抜ける end if ;---- 全体の何割経過したかを %parcentへ算出 %parcent = %nowtime / %time %now.cx = %from.cx - ((%from.cx - %to.cx) * %parcent) %now.cy = %from.cy - ((%from.cy - %to.cy) * %parcent) %now.rot = %from.rot - ((%from.rot - %to.rot) * %parcent) ; CPRINT "%parcent:"+STR(%parcent)+" / %now.cx:"+STR(%now.cx)+" / %now.cy:"+STR(%now.cy)+" / %now.rot:"+STR(%now.rot) SPMOVELT %spname,%now.cx,%now.cy, %from.xs , %from.ys , %now.rot , 255 print #C loop ; 【※】loop抜け@一番最後の処理で最終目標の to 値で表示させる。 cx,cyだけは中心位置が変更しないので、そもそもtoが存在しない SPMOVELT %spname, %to.cx , %to.cy , %from.xs , %from.ys , %from.rot , 255 print #C return http://mevius.5ch.net/test/read.cgi/gamedev/1391089268/57
59: 名前は開発中のものです。 [sage] 2014/03/10(月) 22:22:16.10 ID:8VIsfxv+ >58 それで、すみません、 >>55-57 は拡大縮小のアニメーション処理は行っていないです 立ち絵をブルブル震わせたり、ジャンプぽい動きをさせたりだけで済ませるための命令として用意したので.. 概念としては >>57 の @lcanimation 内にある RESETTIMER do loop あたりに囲まれている処理をなんとなく読み解けば、応用できるのではないかと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1391089268/59
63: 名前は開発中のものです。 [sage] 2014/03/10(月) 22:51:06.07 ID:8VIsfxv+ ・立ち絵である某さんを、1000ミリ秒(1秒)かけて、x100から x200へ移動させたい ・まずは RESETTIMER さんと GETTIMER さんの力を借りる 1000ミリ秒経過するまでは、ずっとループし続ける枠組みを作ります ; ▼ここから RESETTIMER do %nowtime=GETTIMER() ; loopでやり直されるたびに何秒経ったか常に数える if %nowtime > %time then ; パラメータで送られた 1000ミリ秒 になれば、loopを抜ける。逆に言えば時間になるまでは繰り返す exit ; 時間になるまでこのifの中は処理されません。 exit されません。 end if ; このあたりに、スプライトを描画させる処理を組む ; 例えば、500ミリ秒経過していれば、 1000ミリ秒でx100からx200への移動を行う過程で、 ; x150の座標を描画してあげればOK ; 200ミリ秒経過していれば、200と100の移動距離の差である 100 を、 1000ミリ秒 ÷ 200ミリ秒 = 1/5 もとい 20% にする ; 最初の位置 x100 + 移動距離 100 の 20% を足す → x120で某さん描画 みたいな感じ。 loop ; doに戻れ (exit でのみ loppをすり抜けられる) ; ここに、最終描画 (x200へ移動しきった) を行う処理。 ; ここに達しているという事は、 地獄の 1000ミリ秒 loop 工程を無事クリアしたという事 ; ▲ここまで 自分が >>57 で書いたのは、多分こんな感じになっています。 sleepとかwait入れてないや・・・(;゚ω゚) 大丈夫かしら http://mevius.5ch.net/test/read.cgi/gamedev/1391089268/63
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s