2013-07-11 94 views
0

我有一個背景,我只是想重複我的背景來源:如何旋轉(移動)背景cocos2d-android?

  1. 向上向下的方向

  2. 下向上的方向

  3. 從右到左的方向

  4. 從左到右方向

我該怎麼辦?

+0

你爲什麼不用CCParallaxNode這個? – 2013-07-12 05:12:37

+0

從這我可以旋轉我的背景連續? –

回答

0

使用觸摸事件,只需應用setTranslationX和setTranslationY。它會旋轉背景圖片..像setontouchlistener觸摸事件的方法 寫監聽器代碼圖像對象

float previousX = 0,previousY = 0; 

switch (ev.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      previousX = ev.getX(); 
      previousY = ev.getY(); 
      break; 
    case MotionEvent.ACTION_MOVE: 

    final float deltaX = ev.getX() - previousX; 
      final float deltaY = ev.getY() - previousY; 
      objectName.setTranslationX(this.getTranslationX() + deltaX); 
      objectName.setTranslationY(this.getTranslationY() + deltaY); 

      previousX = ev.getX(); 
      previousY = ev.getY(); 
      break; 
} 
+0

感謝您的回覆,但我想旋轉背景沒有任何觸摸監聽器。這就像背景的連續旋轉 –

+0

在android的res文件夾中創建anim文件夾。並在該anim-> anim.xml文件中寫入旋轉動畫代碼。並通過主要活動進行調用。之前給那個圖像xml代碼像android:旋轉= 360度.. – harikrishnan

+0

我使用這個東西的cocos2d-android,我不能做這個事情仍然 –

0

沒有觸摸listener..its在Android的簡單翻轉動畫...

一旦你創建了一個新的Android項目,在res中創建一個名爲anim的文件夾,並在res/anim中創建一個名爲rotator.xml的文件。

<?xml version="1.0" encoding="utf-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:toYScale="0.0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="4000" 
/> 

希望代碼是非常明顯的。這裏一個完整的旋轉將在4000毫秒(4秒)內完成。現在將要旋轉的PNG圖像添加到您的可繪製文件夾中。然後在佈局中移除默認的textView後,打開res/main.xml,將一個ImageView和Button添加到佈局中。將ImageView的src屬性設置爲添加圖像的文件名,例如

android:src="@drawable/myimg" 

好的,讓我們編輯主類。在按鈕的onClick()中,添加運行動畫所需的代碼。檢查下面的代碼。

public class AnimationActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     ((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       final ImageView myImage = (ImageView)findViewById(R.id.imageView1); 
       final Animation 
      myRotation = AnimationUtils.loadAnimation(getApplicationContext(), 
    R.anim.rotator); 
       myImage.startAnimation(myRotation); 
      } 
     }); 
    } 
    }