1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > android 高仿蚂蚁森林 android 仿照支付宝蚂蚁森林

android 高仿蚂蚁森林 android 仿照支付宝蚂蚁森林

时间:2022-10-29 16:21:23

相关推荐

android 高仿蚂蚁森林 android 仿照支付宝蚂蚁森林

先说下思路

1.如何让小球不重叠分布?

2.小球上下移动这个可以具体看原文作者分析

本文主要分析第一点

刚开始想法是,每次随机生成一个x,y位置,但是这保证不了小球重叠的问题。

然后受到原文作者启发,其实我们可以固定前面6个小球的位置,让它们处于屏幕中心,然后剩余的4个小球再随机的从我们定义好的位置中获取。

这样就能保证10个小球既不会重叠,也不会偏离屏幕中心太远。

private ListxCanChooseList= Arrays.asList(

0.35f, 0.55f, 0.32f, 0.52f, 0.72f, 0.78f, 0.15f, 0.63f, 0.20f,

0.30f, 0.47f, 0.21f, 0.76f, 0.65f, 0.38f);

private ListyCanChooseList= Arrays.asList(

0.36f, 0.45f, 0.50f, 0.28f, 0.33f, 0.50f, 0.40f, 0.63f, 0.62f,

0.75f, 0.57f, 0.20f, 0.70f, 0.17f, 0.21f);

这些是固定好的位置,不会重叠,前面6个都处于屏幕中心,剩下的则处于屏幕上下方,这样能保证用户每次进来不会都一样。

private void setViewLocation(View view, int i) {

int randomInt = 0;

if (i >= 6) {

randomInt = mRandom.nextInt(xCurrentList.size());

}

float x = xCurrentList.get(randomInt) * width;

view.setX(x);

float y = yCurrentList.get(randomInt) * height;

view.setY(y);

LogUtils.e("randomInt=" + randomInt + "设置的x位置是" + xCurrentList.get(randomInt) + "y轴位置是" + yCurrentList.get(randomInt));

view.setTag(R.string.string_origin_location, (float) y);

view.setTag(R.string.string_origin_direction, mRandom.nextBoolean());

view.setTag(R.string.string_origin_spe, randomSpeed.get(mRandom.nextInt(randomSpeed.size())));

xCurrentList.remove(randomInt);

yCurrentList.remove(randomInt);

}

设置小球的位置,设置完之后,需要立马删除。

public interface OnStopAnimateListener {

void onBallDisappearAnimListener(String number);

void onExitAnimateListener();

}

添加了两个动画执行完成的方法,第一个是某一个小球执行完动画的回调,第二个是用户退出整个Activity进行的回调。

剩下具体思路可以看代码。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。