android:监视动画期间移动点按钮的x,y坐标

时间:2013-11-30 08:36:38

标签: android animation coordinates

在我的应用程序中有8个点从顶部到底部掉落,我想如何添加代码,以便每个点可以更新其x,y坐标,以便当下面的篮子被适当放置时,它将记录得分+1。

代码:

声明

   // collections of spots (Buttons) and Animators 
   private final Queue<Button> spots = new ConcurrentLinkedQueue<Button>(); 

以这种方式添加点

   // adds a new spot at a random location and starts its animation
   public void addNewSpot()
   {
       int x = random.nextInt(viewWidth - SPOT_DIAMETER);
       int y = 0 - SPOT_DIAMETER;                      

       int x2 = x;
       int y2 = (viewHeight);

      // create new spot
      final Button spot = (Button) layoutInflater.inflate(R.layout.untouched, null);
      spots.add(spot);
以这种方式

动画点:

spot.animate().x(x2).y(y2).scaleX(SCALE_X).scaleY(SCALE_Y).setDuration(animationTime).setListener
      (
            new AnimatorListenerAdapter() 
            {
               @Override
               public void onAnimationStart(Animator animation)
               {
                  animators.add(animation); // save for possible cancel
               } 

               public void onAnimationEnd(Animator animation)
               {
                  animators.remove(animation); // animation done, remove

                  if (!gamePaused && spots.contains(spot)) // not touched
                  {
                     XX = (int) spot.getX();
                     YY = (int) spot.getY();

                      missedSpot(spot); // lose a life
                  } 
               } 
            } 
      );

问题:

如何监控每个点的x,y坐标,例如,x在篮子宽度内,y在篮子的顶部,该点被视为落入篮子中?

谢谢!

1 个答案:

答案 0 :(得分:0)

我没有找到针对上述问题的直接解决方案。 相反,我添加一个时间计数器,以便当毫秒点击例如%3000 = 0时,它将调用检查条件来检查视图上的所有点。通过这种方式,它就像一直在检查一样。