您的位置:首页 > 其它

Nds开发动画函数

2006-08-22 03:18 295 查看
Nds开发动画函数
为方便做出动画效果,编写了以下函数,
还不完全,以后会开发出整套的动画函数

guodu(int screen)//过渡到黑屏
{
int i,j,n=127;
for(i=0;i<=5;i++)
{
for(j=0;j<=7;j++)
{
PA_CreateSprite(screen,n,(void*)heikuai_Sprite,OBJ_SIZE_32X32 ,1,0,j*32,i*32);
n--;
PA_WaitForVBL();
}
}
}

guoduwan(int screen)//从黑屏过渡出来
{ int i;
for(i=127;i>=80;i--)
{
PA_DeleteSprite (screen,i);
PA_WaitForVBL();
}
}

MovetoEx(int screen,int ID,double x2,double y2,double speed)//精确缓动,只许单个精灵调用
{
static double xx=10000,yy=10000;
if(xx==10000||yy==10000)
{
xx=PA_GetSpriteX(screen,ID);
yy=PA_GetSpriteY(screen,ID);
}
PA_OutputText (1,0,0, " x:%f3,y:%f3 ",xx,yy);
xx=xx+((x2+0.001-xx)*speed);
yy=yy+((y2+0.001-yy)*speed);
PA_SetSpriteXY(screen,ID,xx,yy);
}

Moveto(int screen,int ID,int x2,int y2,float speed)//不精确缓动,可以多个精灵同时调用
{
//static double xx=10000,yy=10000;
//if(xx==10000||yy==10000)
//{
float xx=PA_GetSpriteX(screen,ID);
float yy=PA_GetSpriteY(screen,ID);
// }
//PA_OutputText (1,0,0, " x:%f3,y:%f3 ",xx,yy);
xx=xx+((x2-xx)*speed);
yy=yy+((y2-yy)*speed);
PA_SetSpriteXY(screen,ID,xx,yy);
/*if(xiangdeng(PA_GetSpriteX(screen,ID),x2,20)&&xiangdeng(PA_GetSpriteY(screen,ID),y2,20))
{
return 1;
}else
return 0;*/
}

movebyLine(int screen,int ID,double angle,double speed)//直线移动,只许单个精灵调用
{
PA_OutputText (1,0,0, " %f3 ",angle);
static double xx=10000,yy=10000;
if(xx==10000||yy==10000)
{
xx=PA_GetSpriteX(screen,ID);
yy=PA_GetSpriteY(screen,ID);
}
xx=xx+sin(angle*PI/180)*speed;
yy=yy-cos(angle*PI/180)*speed;
PA_SetSpriteXY(screen,ID,xx,yy);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: