亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按下畫布時如何調用方法

按下畫布時如何調用方法

侃侃無極 2023-11-01 21:49:49
我正在開發一款帶有車輛的游戲,我想在按下畫布時移動這輛車,就像這樣,但這不起作用。public boolean onTouch(View v, MotionEvent event) {    if (event.getX() > 0 && event.getX() < 150 && event.getY() > 550 && event.getY() < 700) {           do{              System.out.println("Hallo");              }while (canvas.isPressed());        return false;但我只是得到這個輸出:D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWNI/System.out: Hallo任何想法?
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

設置一個全局布爾值以了解何時MotionEvent.ACTION_DOWN收到事件。

   mUserTouched = true; // Set to true when MotionEvent.ACTION_DOWN
   mUserTouched = false; // set to false when MotionEvent.ACTION_UP is received

然后,您可能需要使用一個Timer或其他一些循環程序,每當收到 MotionEvent.ACTION_DOWN 時,該循環程序就會首先啟動。并讓它根據某個時間間隔觸發呼叫invalidate()。invalidate()將導致View.onDraw()被調用,以便您可以重新繪制汽車的位置。當接收到 MotionEvent.ACTION_UP 時,取消Timer

mUserTouched = false'如果有界限,那么每當MotionEvent發生在界限之外時,您還需要進行設置。


查看完整回答
反對 回復 2023-11-01
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

可以onTouch這樣完成onTouchEvent:


        @Override

        public boolean onTouchEvent(MotionEvent motionEvent) {


            switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {


                    // Player has touched the screen

                case MotionEvent.ACTION_DOWN:


                    System.out.println("Hallo");


                    break;


                    // Player has removed finger from screen

                case MotionEvent.ACTION_UP:


                    break;

            }

            return true;

        }


查看完整回答
反對 回復 2023-11-01
  • 2 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號