第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

震動(dòng)偵聽(tīng)器檢測(cè)到過(guò)多的震動(dòng)

震動(dòng)偵聽(tīng)器檢測(cè)到過(guò)多的震動(dòng)

慕仙森 2023-06-14 16:11:33
我在我的應(yīng)用程序中實(shí)現(xiàn)了一個(gè)震動(dòng)檢測(cè)器來(lái)擲骰子。每次搖動(dòng),每個(gè)骰子都會(huì)擲一次。問(wèn)題是,當(dāng)我搖動(dòng)手機(jī)時(shí),它會(huì)一次“擲”多次骰子。我試過(guò)添加延遲并更改靈敏度,但都沒(méi)有用。private final SensorEventListener sensorListener = new SensorEventListener() {    @Override    public void onSensorChanged(SensorEvent sensorEvent) {        float x = sensorEvent.values[0];        float y = sensorEvent.values[1];        float z = sensorEvent.values[2];        acelLast = acelVal;        acelVal = (float) Math.sqrt((double) (x*x + y*y + z*z));        float delta = acelVal - acelLast;        shake = shake * 0.9f + delta;        if (shake > 12) {            // roll dice        }    }    @Override    public void onAccuracyChanged(Sensor sensor, int accuracy) {    }};
查看完整描述

2 回答

?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

我認(rèn)為您可以嘗試通過(guò)這種方式獲得解決方案。


使用 Handler 會(huì)增加一個(gè)時(shí)間延遲,并且對(duì)于多個(gè) senson 響應(yīng),它只會(huì)對(duì)最后一個(gè)滿足的條件采取行動(dòng),并且 previoulsy 調(diào)用一次將從回調(diào)中刪除。


private Handler handler = new Handler();


private Runnable runnable = new Runnable() {

    public void run() {

        // roll dice     

    }

};


private final SensorEventListener sensorListener = new SensorEventListener() {


@Override

public void onSensorChanged(SensorEvent sensorEvent) {


    float x = sensorEvent.values[0];

    float y = sensorEvent.values[1];

    float z = sensorEvent.values[2];


    acelLast = acelVal;

    acelVal = (float) Math.sqrt((double) (x*x + y*y + z*z));

    float delta = acelVal - acelLast;

    shake = shake * 0.9f + delta;


    if (shake > 12) {

        try {

            handler.removeCallbacks(runnable);

            handler.postDelayed(runnable, 1000);

        } catch(Exception e) {

            e.printStackTrace();

        }

    }

}


@override

public void onStop() {

    super.onStop();

    handler.removeCallbacks(runnable);

}

如果您需要來(lái)自傳感器的任何東西,您可以刪除一個(gè)類變量并在條件中更新它if (shake > 12),以便可以在可運(yùn)行的環(huán)境中使用。


查看完整回答
反對(duì) 回復(fù) 2023-06-14
?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

通過(guò)添加一個(gè)布爾值“rolled”,并在擲骰子時(shí)將其設(shè)置為真,您只能擲一次骰子。您可以通過(guò)將值設(shè)置回 false 來(lái)再次滾動(dòng)。


private static boolean rolled = false;

private final SensorEventListener sensorListener = new SensorEventListener() {


    @Override

    public void onSensorChanged(SensorEvent sensorEvent) {


        float x = sensorEvent.values[0];

        float y = sensorEvent.values[1];

        float z = sensorEvent.values[2];


        acelLast = acelVal;

        acelVal = (float) Math.sqrt((double) (x*x + y*y + z*z));

        float delta = acelVal - acelLast;

        shake = shake * 0.9f + delta;


        if (shake > 12 && !rolled) {

            // roll dice

            rolled = true;

        }

    }


    @Override

    public void onAccuracyChanged(Sensor sensor, int accuracy) {


    }

};


查看完整回答
反對(duì) 回復(fù) 2023-06-14
  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)