易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Android游戏开发之切换游戏场景特效的实现
大家在玩游戏的时候应该有时候会发现在切换游戏场景的时候 界面会播放一段非常好看的动画 比如一个百叶窗的形式关闭界面 然后在打开界面 效果非常好看 用户体验也非常好,今天我向大家解读游戏开发中常用的四种切换场景的特效动画。
下面游戏界面中 红框内标识了4个图片按钮 分别点击这4个按钮会分别播放4组切换场景的特效动画。
1.交叉相合动画
如图所示 左右两边分别以若干个矩形以交替相合的形式合并 控制屏幕关闭
通过两个for循环 1 3 5 7 9 绘制屏幕左方矩形 2 4 6 8 10 绘制屏幕右放矩形 在游戏更新中计算矩形移动的坐标 然后左边的矩形 分别向右延伸 右边的矩形分别向左延伸 这样就可以实现矩形的交叉合并动画。
/**交错的实现矩形相交**/
int
count = (mScreenHeight / RANDOM_TYPE_2_RANGE);
for
(
int
i =
0
; i < count; i +=
2
){
drawFillRect(mCanvas, Color.BLACK,
0
, i * RANDOM_TYPE_2_RANGE, s_effRange, RANDOM_TYPE_2_RANGE);
}
for
(
int
i =
1
; i < count; i +=
2
){
drawFillRect(mCanvas, Color.BLACK, mScreenWidth - s_effRange, i * RANDOM_TYPE_2_RANGE, s_effRange, RANDOM_TYPE_2_RANGE);
}
绘制矩形的方法
/**
* 绘制一个矩形
* @param canvas
* @param color
* @param x
* @param y
* @param w
* @param h
*/
public
void
drawFillRect(Canvas canvas,
int
color,
int
x,
int
y,
int
w,
int
h) {
int
backColor = mPaint.getColor();
mPaint.setColor(color);
canvas.drawRect(x, y, x + w, y + h, mPaint);
mPaint.setColor(backColor);
}
2.扇形合并动画
如图所示以扇形的转圈的形式来控制屏幕关闭
在游戏更新中一直更新扇形绘制的区域 根据绘制区域的参数将扇形绘制出来 实现扇形合并的动画效果。
//rectf为扇形绘制区域 为了让扇形完全填充屏幕所以将它的区域扩大了100像素
RectF rectf =
new
RectF(- RANDOM_TYPE_3_RANGE, - RANDOM_TYPE_3_RANGE,mScreenWidth+RANDOM_TYPE_3_RANGE,mScreenHeight + RANDOM_TYPE_3_RANGE);
//将扇形绘制出来
drawFillCircle(mCanvas, Color.BLACK,rectf,
0
,s_effRange,
true
);
绘制扇形的方法
/**
* 绘制一个扇形
* @param canvas
* @param color
* @param oval
* @param startAngle
* @param sweepAngle
* @param useCenter
*/
public
void
drawFillCircle(Canvas canvas,
int
color, RectF oval,
int
startAngle,
int
sweepAngle,
boolean
useCenter) {
int
backColor = mPaint.getColor();
mPaint.setColor(color);
canvas.drawArc(oval, startAngle, sweepAngle, useCenter, mPaint);
mPaint.setColor(backColor);
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图