论文部分内容阅读
1 引言
在许多图形应用软件中,各种图形特效的应用则给人们留下很深的印象,比如随机点绘图等,这些动画比静态的图画更能吸引人。因而被广泛地应用于各种游戏软件的开发中。
2 简单动画的实现
在游戏中,可移动的角色一般称为sprite, 即精灵,要在屏幕上体现它们的移动效果可以有很多种方法,其中比较简单的就是“擦除并重画”,首先是要擦除旧位置上的精灵,然后在新的位置上将它画出,延迟一定的时间,反复以上步骤的操作,由于精灵的位置不断变化,就会在屏幕上看到它在不断移动的效果。
保存在文件中的图片通常都是矩形的,想要显示出特定形状的精灵还需要alpha遮罩或透明色过滤的技巧,SDL库提供了一个SDL_SetColorKey()函数(原型:int SDL_SetColorKey(SDL_Surface*surface,Uint32flag,Uint32key);),使用它就可以很容易地进行透明色过滤,由于在许多Linux游戏软件中是使用粉红色(0xFF00FF)作为透明色,所以遵守这种约定。
3 多子帧动画的实现
在实际应用中,精灵可能还要复杂,它可能有多个方向,而每个方向又有多个分解动作,其动画的实现就要轮流切换该方向的分解动作的每一帧。为了更好地完成精灵的操作,要建立一个适当的模型结构:typedef struct Sprite_t(),还要开发出两个支撑函数:DrawSprite()画出精灵,ClearSprite()擦除精灵。在ClearSprite()函数中依然只是使用背景色填充来擦除精灵的简单办法。在实际应用中,可能需要为精灵结构再定义一个绘图平面指针以便存储精灵所在位置的背景图,用于在擦除精灵时恢复原来位置的背景画面;或者使用备份背景映射的方法。
4 结论
动画在游戏软件中扮演重要角色,它可以随意展现梦幻、绚烂、可爱,从事动画不仅要有过硬的技术和创新的思维,更要有不断实践和敢于尝试的精神。
参考文献
[1]范永开,杨爱林.Linux应用开发技术详解.北京:人民邮电出版社,2006.5.
[2]杨树青,王欢.Linux环境下C编程指南.北京:清华大学出版社,2007.5.
在许多图形应用软件中,各种图形特效的应用则给人们留下很深的印象,比如随机点绘图等,这些动画比静态的图画更能吸引人。因而被广泛地应用于各种游戏软件的开发中。
2 简单动画的实现
在游戏中,可移动的角色一般称为sprite, 即精灵,要在屏幕上体现它们的移动效果可以有很多种方法,其中比较简单的就是“擦除并重画”,首先是要擦除旧位置上的精灵,然后在新的位置上将它画出,延迟一定的时间,反复以上步骤的操作,由于精灵的位置不断变化,就会在屏幕上看到它在不断移动的效果。
保存在文件中的图片通常都是矩形的,想要显示出特定形状的精灵还需要alpha遮罩或透明色过滤的技巧,SDL库提供了一个SDL_SetColorKey()函数(原型:int SDL_SetColorKey(SDL_Surface*surface,Uint32flag,Uint32key);),使用它就可以很容易地进行透明色过滤,由于在许多Linux游戏软件中是使用粉红色(0xFF00FF)作为透明色,所以遵守这种约定。
3 多子帧动画的实现
在实际应用中,精灵可能还要复杂,它可能有多个方向,而每个方向又有多个分解动作,其动画的实现就要轮流切换该方向的分解动作的每一帧。为了更好地完成精灵的操作,要建立一个适当的模型结构:typedef struct Sprite_t(),还要开发出两个支撑函数:DrawSprite()画出精灵,ClearSprite()擦除精灵。在ClearSprite()函数中依然只是使用背景色填充来擦除精灵的简单办法。在实际应用中,可能需要为精灵结构再定义一个绘图平面指针以便存储精灵所在位置的背景图,用于在擦除精灵时恢复原来位置的背景画面;或者使用备份背景映射的方法。
4 结论
动画在游戏软件中扮演重要角色,它可以随意展现梦幻、绚烂、可爱,从事动画不仅要有过硬的技术和创新的思维,更要有不断实践和敢于尝试的精神。
参考文献
[1]范永开,杨爱林.Linux应用开发技术详解.北京:人民邮电出版社,2006.5.
[2]杨树青,王欢.Linux环境下C编程指南.北京:清华大学出版社,2007.5.