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);
}
为方便做出动画效果,编写了以下函数,
还不完全,以后会开发出整套的动画函数
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);
}
相关文章推荐
- DirectX 开发骨骼动画 心得 D3DXPlaneIntersectLine 函数
- 62.Oracle数据库SQL开发之 高级查询——使用分析函数之窗口函数
- CSP开发基础--CryptoAPI函数简介
- [转]javascript console 函数详解 js开发调试的利器
- PHP中的Magic Methods (魔术函数)_php技术文章_php_网站开发
- UIView大小缩放的动画效果函数
- Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number)
- Android动画开发——Animation动画效果
- 对于Linux平台下C语言开发中__sync_函数的认识(转)
- Android动画开发——Animation动画效果
- CAD二次开发学习笔记六(用类来组织函数)
- 【COCOS2DX-LUA 脚本开发之十一】C/C++与Lua之间进行数据函数交互以及解决“PANIC: unprotected error in call to Lua API (转)
- 【Visual C++】游戏开发五十二 浅墨DirectX教程二十 骨骼动画来袭(一)
- 【Android UI设计与开发】第18期:滑动菜单栏(三)SlidingMenu动画效果的实现
- 【cocos2d-x IOS游戏开发-捕鱼达人9】鱼与动画
- unity3D游戏开发十八之NGUI动画
- Android UI开发第四十一篇——墨迹天气3.0引导界面及动画实现
- 动画-IOS开发
- 在PL/SQL 开发中调试存储过程和函数的一般性方法
- Android动画开发——Animation动画效果详解