[過去ログ]
NScripter Ver.19.00 (553レス)
NScripter Ver.19.00 http://mevius.5ch.net/test/read.cgi/gamedev/1391089268/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
51: 名前は開発中のものです。 [sage] 2014/03/10(月) 21:01:41.43 ID:8VIsfxv+ ここ数ヶ月全く触ってないけど、 自分はNS2で拡大縮小アニメーションや移動アニメーションなんかを弄ってました。 RESETTIMER と GETTIMER を利用して指定したミリ秒での操作を。 それと do と loop を利用して、その秒数の間だけ SPMOVELT を使ってアニメーションを行わせる、みたいな感じです。 http://mevius.5ch.net/test/read.cgi/gamedev/1391089268/51
55: 名前は開発中のものです。 [sage] 2014/03/10(月) 22:14:13.31 ID:8VIsfxv+ 今すぐの動作は確認してないけど、自分が実際に使っていたものをちょっと弄ってはっつけて見ます lceffect "キャラクタ名",1 とか lceffect "キャラクタ名",2 とかで動くと思います lceffect が気軽に呼び出して使うメインのサブルーチン。パラメータが多く見えるのは削り残しです。 lcanimation は、 lceffect の中でのみ呼ばれるもっと細かい挙動をつかさどるサブルーチン (シナリオ上からは呼ばない) http://mevius.5ch.net/test/read.cgi/gamedev/1391089268/55
56: 名前は開発中のものです。 [sage] 2014/03/10(月) 22:16:14.60 ID:8VIsfxv+ ; ニックネーム,エフェクトタイプ,画像中心からのX位置,画像中心からのY位置,サイズ @lceffect ; CTRL押されていれば処理しない if getskip() == 1 or 0<>GETKEY("CTRL") then return end if param %nick,%type,%xpos,%ypos,%size if %nick == #NIL or %nick == "" then OKBOX "立ち絵命令文のニックネームが不正です" , "lc命令文エラー" %spname = "character:" + %nick ; ★スプライトセット系。各自対応を getspinfo %spname , %spinfo if ISDEF(%spinfo.cx) == 1 and ISDEF(%spinfo.cy) == 1then ; ほしい情報がちゃんと定義されてる?(存在する?) if %type == 4 then lcanimation %spname,(%spinfo.cx+5),%spinfo.cy,0,60 lcanimation %spname,(%spinfo.cx-7),%spinfo.cy,0,60 lcanimation %spname,(%spinfo.cx+10),%spinfo.cy,0,60 lcanimation %spname,(%spinfo.cx-7),%spinfo.cy,0,60 lcanimation %spname,(%spinfo.cx+5),%spinfo.cy,0,60 lcanimation %spname,(%spinfo.cx),%spinfo.cy,0,60 elseif %type == 5 then lcanimation %spname,%spinfo.cx,%spinfo.cy-20,0,40 lcanimation %spname,%spinfo.cx,%spinfo.cy-40,0,40 lcanimation %spname,%spinfo.cx,%spinfo.cy-30,0,40 lcanimation %spname,%spinfo.cx,%spinfo.cy,0,30 end if end if end if return http://mevius.5ch.net/test/read.cgi/gamedev/1391089268/56
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.019s