2017-11-02 4 views
5

I Sound wollen Laut Winkel auf das Rad spielen und die Geschwindigkeit des Rades rotierendenWie Sound-Effekt der Spin-Rad spielen mit der Geschwindigkeit oder Arc Linie Co-Ursprung

ich auf der rechten Seite ertönen soll Wiedergabe koordinieren Zeit, wenn der Pin die Berührung von Arc berührt.

Auch möchten Sie Animation auf Pin wenn Touch wie Schütteln.

Ton ist spielen, aber der Ton wird spielen und versuchen, nicht Koordinaten Nach Canvas Rad

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    drawWheelBackground(canvas); 
    initComponents(); 

    float tempAngle = 0; 
    float sweepAngle = 360/mWheelItems.size(); 
    if (this.mWheelItems != null) { 

     Log.e("mWheelItems.size()", String.valueOf(mWheelItems.size())); 
     for (int i = 0; i < mWheelItems.size(); i++) { 
      archPaint.setColor(mWheelItems.get(i).color); 
      archPaint1.setColor(Color.WHITE); 

      canvas.drawArc(range, tempAngle, sweepAngle, true, archPaint2); 
      canvas.drawArc(range, tempAngle, sweepAngle, true, archPaint); 

      drawImage(canvas, tempAngle, mWheelItems.get(i).bitmap, mWheelItems.get(i).mvalue, sweepAngle); 

     } 

     if (!(this.resourcePlayer == null)) { 

      if (this.resourcePlayer.isPlaying()) { 
       resourcePlayer.setVolume(100, 100); 
       this.resourcePlayer.seekTo(0); 

      } else { 

       this.resourcePlayer.start(); 

      } 
     } 

    } 
} 

Rotation nach wheelItemCenter und 360 Grad

final float wheelItemCenter = 180 - getAngleOfIndexTarget(target) + (360/mWheelItems.size())/2; 

    animate().setInterpolator(new DecelerateInterpolator()) 
      .setDuration(DEFAULT_ROTATION_TIME) 
      .rotation((360*5) + wheelItemCenter) 

enter image description here

+0

können Sie jsfiddle Link zur Laufzeitprüfung zur Verfügung stellen. – spankajd

+1

NEIN, ich benutze nicht jsfiddle das wird von android leinwand ohne js gemacht ... –

Antwort

2

Also, wenn ich Wenn Sie richtig verstehen, möchten Sie den Sound basierend auf der Geschwindigkeit des Rades anpassen und es spielen, wann immer es einen Ihrer Pins trifft.

Spielen Sie es immer, wenn es einen der Pins trifft, sollte eine Mathe-Frage sein, wenn es kontinuierlich spielt, würde das bedeuten, dass Ihr Rad schneller dreht und dass der Sound länger ist als die Dauer zwischen zwei Pins , Ich nehme an.

Sie können mit den speed und pitch Ihres Sounds herumspielen. Wenn Sie eine MediaPlayer verwenden, können Sie die PlaybackParams nach this ändern - überprüfen Sie setPitch und setSpeed.

Je schneller Ihr Rad ist, desto höher ist die Geschwindigkeit/Tonhöhe Ihres Sounds. Je langsamer es wird, desto mehr bremst du den Sound.

+0

Ich würde nicht auf dieser Straße gehen, haben Sie jemals ein Spinnrad gehört? Ich würde gerne einen neuen Thread für die Wiedergabe bei jedem Treffer starten. – PanBrambor

Verwandte Themen