Skip to content

Instantly share code, notes, and snippets.

@kb10uy
Last active December 16, 2015 18:49
Show Gist options
  • Save kb10uy/5480106 to your computer and use it in GitHub Desktop.
Save kb10uy/5480106 to your computer and use it in GitHub Desktop.
AIMSで使えそうな関数をまとめてみました。
--[[
createDynamicText_Righter関数
右の方に動いて消えるテキストを生成します。
一応、テクスチャフォント専用です。
イメージとしては、東方のBGM名のアレみたいなのです。
1.濃くなりながら50fで200px右移動
2.3秒止まる
3.薄くなりながら右へ退場
引数
font フォントハンドル
str 文字列
sx,sy 開始位置(完全に止まるのは200px右です)
layer レイヤー
※22行目の、4をいじると、到着地を変更できます。
]]
function createDynamicText_Righter(font,str,sx,sy,layer)
local ret;
ret=createTextActor(font,str,sx,sy,layer);
addMover(ret,-1,1,MOVER_SETALPHA,0);
addMover(ret,-1,1,MOVER_SETSPEED,4);
addMover(ret,0,50,MOVER_ADDALPHA,255/50.0);
addMover(ret,0,50,MOVER_ACCEL,-4/50.0);
addMover(ret,230,60,MOVER_ACCEL,6/60.0);
addMover(ret,230,60,MOVER_ADDALPHA,-255/60.0);
addMover(ret,300,1,MOVER_VANISH);
return ret;
end
--[[
exease.lua
AIMS 1.90から追加されたaddMoverのイージングを、
フェード以外でも使いたい、ということで色々やってみました。
]]
--[[
getEasingValues関数
指定した値を、指定したイージング関数にしたがって
変化させた値を、テーブルで取得します。
ステップあたりの時間は、16.66..ms(1f)固定です。
引数
b :初期値
e :最終値
s :ステップ数(返り値のテーブルの要素数でもあります)
f :イージング関数(文字列ではなく直接指定です)
返り値
sステップでbからeまでfにしたがって変化した値のテーブル
(添字は1から);
]]
function getEasingValues(b,e,s,f)
local ret,ft;
ret={};
ft=1000/60;
for i=1,s-1,1 do
ret[i]=b+f((1/s)*i,i*ft,0,1,s*ft)*(e-b);
end
ret[s]=e;
return ret;
end
--[[
moveToWithEasing関数
アクターを、指定位置までイージング関数に従って
移動させます。内部的には、addMoverしているだけです。
呼ばれたタイミングから移動を開始します。
引数
ha :アクターハンドル
x :目的X
y :目的Y
s :フレーム数
f :イージング関数(例によって直接指定)
]]
function moveToWithEasing(ha,x,y,s,f)
local xt,yt;
xt=getEasingValues(getX(ha),x,s,f);
yt=getEasingValues(getY(ha),y,s,f);
for i=1,s,1 do
addMover(ha,i-1,1,MOVER_SETPOSITION,xt[i],yt[i]);
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment