1. 程式人生 > >Android使用鍵盤控制小飛機的移動

Android使用鍵盤控制小飛機的移動

使用安卓虛擬按鍵控制小飛機的移動小demo

小飛機的View

public class plain extends View{ 
 public float x;            這是定義的飛機的x軸 位置座標
 public float y;  
 Bitmap plain;            新建plain         
 public plain(Context context) {
  super(context);
  plain = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);         為plain設定資源 一個飛機的圖片
  setFocusable(true);            設定可成為焦點  可以繫結監聽事件
 }
 
 public void onDraw(Canvas canvas){   畫布     
  super.onDraw(canvas);
  Paint p = new Paint();           新建畫筆
  canvas.drawBitmap(plain, x, y, p);      畫圖
 }
 

}

主Activity

public class MainActivity extends ActionBarActivity {

    private int  spend = 10;       設定初始的速度
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
          requestWindowFeature(Window.FEATURE_NO_TITLE);  設定全屏
          final plain plainv = new plain(this);      建立plain類
          setContentView(plainv);         
          //plainv.setBackgroundResource(R.drawable.bk);
          WindowManager windowmangr = getWindowManager();  
          Display display = windowmangr.getDefaultDisplay();
          DisplayMetrics metrics = new DisplayMetrics();         獲取到螢幕寬高
          display.getMetrics(metrics);
          plainv.x = metrics.widthPixels/2;
          plainv.y = metrics.widthPixels-40;
          
          plainv.setOnKeyListener(new OnKeyListener() {        設定鍵盤監聽事件
   
   @Override
   public boolean onKey(View source, int keycode, KeyEvent event) {
           switch (event.getKeyCode()) {
     case KeyEvent.KEYCODE_S:
       plainv.y  += spend;
      break;
     case KeyEvent.KEYCODE_W:
       plainv.y  -= spend;
      break;
     case KeyEvent.KEYCODE_A:
       plainv.x  -= spend;
      break;
     case KeyEvent.KEYCODE_D:
       plainv.x  += spend;
      break;
     default:
      break;
     }
           plainv.invalidate();
    return true;
   }
  });
    }

}



相關推薦

Android使用鍵盤控制飛機移動

使用安卓虛擬按鍵控制小飛機的移動小demo 小飛機的View public class plain extends View{ public float x; 這是定義的飛

Unity3D 鍵盤控制物體平面移動(操作相對於攝像機方向)

Intro 目標是實現目標隨攝像機方向的不同而進行不同方向移動——而且,目標不需要隨攝像機一起旋轉。 使用攝像機的四元數旋轉 void HandleKeyboardAction() { var horizontal = Input.GetAxis("Hor

Unity3D鍵盤控制遊戲物體移動

using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeRemove : MonoBehaviour { public flo

Java專案——飛機大戰(一、實現執行緒繪製背景和我方飛機鍵盤控制飛機運動)

1 總體需求分析 1.1 類 1、主類 2、我方飛機類 3、執行緒類 2.2 效果圖 2 實現 2.1 飛機類 MyPlane 飛機類包括以下引數: 位置x、y 速度vx、vy 圖片圖示myicom:設定為飛機的圖片   飛機類

js鍵盤控制div移動,解決停頓問題

版本 pan 原因 idt win jin false top val 問題版本代碼如下: 1 <html> 2 <head> 3 <title>鍵盤控制div移動</title> 4 <meta charse

Linux虛擬終端控制鍵盤

Linux核心提供函式 ioctl 用於控制底層裝置與描述符。引數KDSETLED指示小鍵盤燈的狀態,0x01為scroll lock燈亮,0x02為num lock燈亮, 0x04為caps lock燈亮。   #include <stdio.h&

滑鼠點選按鈕控制圖片移動或者鍵盤控制圖片移動(解決問題:parseInt失效問題,用Number)

在測試用滑鼠點選按鈕,使圖片左右上下移動: 效果如下: 程式碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title><

Android裝置新型惡意軟體,融合銀行木馬、鍵盤記錄器和移動勒索軟體等功能

網路犯罪分子目前正在開發一種針對Android裝置的新型惡意軟體,它融合了銀行木馬、鍵盤記錄器和移動勒索軟體的功能。 根據來自ThreatFabric的安全研究人員稱,這個惡意軟體名為MysteryBot,是一個正在開發中的新威脅。 MysteryBot已連線到LokiBot Threa

Unity3D中受鍵盤控制的物體的簡單移動

今天偶然又用到這些知識,突然發現忘完了,真是學的還沒忘的快呢? 現在稍微總結一下,以免以後再忘啦。 //定義兩個變數接收鍵盤輸入時,物體的偏移量: float move_X; float move_Y;  //定義一個常量表示物體移動的速度: float move_Spee

【Unity 3D學習】鍵盤控制人物在場景中移動

一、第一種情況,鍵盤左右鍵控制人物旋轉,讓人物可以面向四方,然後上下鍵控制移動。 public float speed = 3.0F; public float rotateSpeed = 3.0F; CharacterController controller; voi

unity 滑鼠控制第一人稱視角及鍵盤控制移動

指令碼MouseLook(在主相機上): using UnityEngine; using System.Collections; public class Mouselook : MonoBehaviour { public enum RotationAxes{

Js事件案例——上下左右鍵盤控制div移動

描述: div通過鍵盤事件上下左右實現div塊的移動 效果:     實現: js: var Method=(function () { return { EVENT_ID:"event_id", lo

JS上下左右鍵盤控制圖片移動

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />&l

js實現鍵盤控制移動div

簡單原理: 獲取鍵盤keyCode,按一定規則改變指定div的邊距實現控制指定div的移動。需注意的是要考慮div的溢位問題,要編寫函式限制移動範圍。 實現效果: 使用者通過鍵盤的指定鍵指定div在web頁面內移動。 程式碼塊 html程式碼 &

unity 實現鍵盤控制物體移動和轉向

unity 的character controller不太好用,碰撞什麼的不好操作,經常需要自己寫人物移動的指令碼,所以就記錄一下。 這個指令碼程式碼很簡單,實現的是按下鍵盤上下方向鍵,人物前進後退,按下鍵盤左右方向鍵,人物向左或向右轉彎。一般情況下使用一個膠囊體代表pl

js 鍵盤控制表格input上下左右移動

//初始化獲取的行列 var currentLine= 0; var currentCol=0; function keyDown(obj){     var _row = obj.parentNode;     currentCol = _row.cellIndex;     currentLine = _

android 底部控制元件,隨軟鍵盤彈出,跟著上移

有時候我們需要這種效果,鍵盤彈出,底部的內容跟隨上移。今天我就實現了這樣一個小小的效果 話不多說先看效果:  我們直接來看佈局檔案main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo

android之藍芽控制四軸飛行器

         本app基於匿名開源小四軸app( http://www.anotc.com/Product/Overview/8 )改編。匿名小四軸接上串列埠藍芽模組後,可直接使用本app控制。其它飛控修改通訊協議後方可使用。本app改編後可用於控制藍芽智慧小車,感興趣

Android控制元件保持在軟鍵盤上面

本文主要記錄一些零碎的東西 軟體盤彈出時,底部的控制元件在軟鍵盤上面,即隨著軟鍵盤彈出而向上移動 activity非全屏時,使用RelativeLayout + ScrollView 可以很簡單的實現,簡單演示一下 <?xml version="1.0" enco

iOS鍵盤彈出完美移動控制元件

新增監聽(最好放在ViewWillAppear裡, 在檢視將要消失時移除監聽) 這裡監聽鍵盤Frame的變化而不是監聽鍵盤的顯示和隱藏 [[NSNotificationCenter defaultCe