Last active
December 14, 2015 13:58
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
#-*- encoding: utf-8 -*- | |
#coding=utf-8 | |
from siraeffanim.EffectAnim_Engine import EffectAnim_Main | |
from siraeffanim.EffectAnim_Base import * | |
from siraeffanim.EffectAnim_Template import * | |
"""============================================================================ | |
依存値の簡易指定~~ | |
""" | |
#全体フレーム数。大きくするとエフェクト時間をゆったり引き延ばす。 | |
TOTALLENGTH = 50 | |
#出現オブジェ数 | |
OBJECTNUM = 32 | |
"""============================================================================ | |
テストエフェクト。 | |
エフェクトの総まとめ。 | |
各エフェクトセルの使用をここで定義する。 | |
""" | |
class EffectFrame_Test(EffectFrame): | |
def __init__(self, **kwargs ): | |
EffectFrame.__init__( self, kwargs , | |
sellSplitSize = (2,3) , #画像ファイルの切り取り数。縦横にそれぞれ何分割するかって値。 | |
CanvasSizeOfByScale = ( 2.5 , 2.5 ) | |
) | |
self.paraminit( TOTALLENGTH ) #エフェクトの長さ。 | |
#以下セルの定義。 | |
#指定順番がそのまま描画順番になるよ。 | |
#▼もやっ | |
self.AddSell( EffectFrameSell_Template_Simple( | |
param_SrcImageSellGridPos = ( 0 , 0 ) , | |
lamb_DrawScale = lambda p,x:( lamb_grad_Sin2Line( p , 1.0 ) * x ) , | |
lamb_DrawAlpha = lambda p,x:( lamb_grad_Sin2Line( p , 0.6 ) * x ) , | |
param_DrawScale = ( 1.6 , 1.6 ) | |
) ) | |
#▼中心ピカー! | |
self.AddSell( EffectFrameSell_Template_Simple( | |
param_SrcImageSellGridPos = ( 0 , 1 ) , | |
lamb_DrawScale = lambda p,x:( lamb_grad_Sin2Line( p , 0.6 ) * x ) , | |
lamb_DrawAlpha = lambda p,x:( lamb_grad_Sin2Line( p , 0.5 ) * x ) , | |
param_DrawScale = ( 1.0 , 1.0 ) | |
) ) | |
#▼衝撃シュパーン | |
self.AddSell( EffectFrameSell_Template_Simple( | |
param_SrcImageSellGridPos = ( 1 , 1 ) , | |
lamb_DrawScale = lambda p,x:( p * x ) , | |
lamb_DrawAlpha = lambda p,x:( lamb_grad_Sin2Line( p , 0.8 ) * x ) , | |
param_DrawScale = ( 6.0 , 2.0 ) , | |
lamb_SurfTransform = lambda surf:( pygame.transform.rotate( surf , 20.0 ) ) | |
) ) | |
#▼ピカピカぱーてぃこ~ | |
#中心ピカーにコレが重なってさらにピカーってなる。その後は小さくなってふわっと消える感じで。 | |
for i in range( OBJECTNUM ) : | |
#lambdaにそのまま書くと遅延評価されちゃうので、乱数含む値は一旦変数に。 | |
alphatime = ( random.randint(35,98)*0.01 ) | |
scale = ( random.randint(75,200)*0.01 ) | |
xpos = ( random.randint(0,180) - 90 )/2 #中心から最終的に行く位置 | |
ypos = ( random.randint(0,180) - 90 )/2 | |
self.AddSell( EffectFrameSell_Template_Simple( | |
param_SrcImageSellGridPos = ( 1 , 0 ) , | |
lamb_DrawPos = ( lambda p,x: p * x + sin( ( p + x*0.37 ) * PI * 2 ) * 5 , lambda p,x: p * x ) , | |
lamb_DrawScale = lambda p,x:( ( 1.0 - p ) * x * ( 0.5 + ( sin( ( p * x )* 5 ) + 1 )/4 ) ) , | |
lamb_DrawAlpha = lambda p,x:( lamb_grad_Sin2Line( p , x ) / 2 ) , | |
param_DrawPos = ( xpos , ypos ) , | |
param_DrawScale = ( scale , scale ) , | |
param_DrawAlpha = alphatime , | |
Blend = BLEND_ADD | |
) ) | |
"""============================================================================ | |
実行コード。 | |
ファイルの指定や描画サイズの決定はここで。 | |
""" | |
if __name__ == '__main__': | |
getImagePathList = [ | |
os.path.abspath("Effanimmap_Fire1.png").decode('shift-jis'), | |
os.path.abspath("Effanimmap_EffHelper.png").decode('shift-jis'), | |
] | |
drawEffectFrames = ( #1度に複数のエフェクトを同時描画も可能 | |
EffectFrame_Test( | |
imagepathlist = getImagePathList , #エフェクトイメージファイルのリストを指定 | |
drawRect = DrawRect( (0,0) , (400,400) ) #描画位置、サイズを指定。 | |
) | |
, ) | |
EffectAnim_Main( drawEffectFrames , CanvasSize = (400,400) ) #実行開始。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment