KeyEvent -----------控制飞机上下左右飞行--------------------

两个Java。第一个负责绘制飞机,主Activity负责控制飞机的初始坐标和飞行,不需要layout布局

------------------绘制飞机---------------------------

PlaneView.java

package com.example.admin.webchanjian;

import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.view.View;

/** * Created by admin on 2016/10/6. */public class PlainView extends View {    public float currentX;    public float currentY;    Bitmap plane;    public PlainView(Context context){        super(context);        plane= BitmapFactory.decodeResource(context.getResources(),R.drawable.plane);        setFocusable(true);    }    @Override    public void onDraw(Canvas canvas){        super.onDraw(canvas);        Paint p=new Paint();        canvas.drawBitmap(plane,currentX,currentY,p);    }}

-----------------------------控制飞机飞行--------------------

MainActivity.java
//-------------------Playing Plane------------------------------    private  int speed=10;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //去掉窗口标题    requestWindowFeature(Window.FEATURE_NO_TITLE);    //全屏显示    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);    //创建PlaneView组件    final PlainView plainView=new PlainView(this);    setContentView(plainView);    plainView.setBackgroundResource(R.drawable.back);    //获取窗口管理器    WindowManager windowManager=getWindowManager();    Display display=windowManager.getDefaultDisplay();    DisplayMetrics displayMetrics=new DisplayMetrics();    //获取屏幕宽和高    display.getMetrics(displayMetrics);    //设置plane的初始位置    plainView.currentX=displayMetrics.widthPixels/2;    plainView.currentY=displayMetrics.heightPixels-40;    //为PlaneView组件的键盘事件绑定监听器    plainView.setOnKeyListener(new View.OnKeyListener() {        @Override        public boolean onKey(View v, int keyCode, KeyEvent event) {            switch (event.getKeyCode()){                //下移                case KeyEvent.KEYCODE_S:                    plainView.currentY+=speed;                    break;                //上移                case  KeyEvent.KEYCODE_W:                    plainView.currentY-=speed;                    break;                //左移                case KeyEvent.KEYCODE_A:                    plainView.currentX-=speed;                    break;                case KeyEvent.KEYCODE_D:                    plainView.currentX+=speed;                    break;            }            //通知PlaneView组件重绘            plainView.invalidate();            return true;        }    });

}


时间: 2024-10-12 15:31:41

KeyEvent -----------控制飞机上下左右飞行--------------------的相关文章

Cocos2d-x《赵云要格斗》--虚拟摇杆控制精灵上下左右运动

本文将要实现一个横版格斗类游戏,并实现摇杆控制英雄上下左右运动.这里实现了能通过虚拟摇杆控制精灵的运动,而且能够改变精灵运动时的脸部朝向.之前看了好多人写虚拟摇杆,但是就是没写控制精灵的运动和脸朝向的.所以自己就想要写个文章好好讲下它的实现思路.好了,下面我们开始吧. 最终效果: cocos2d-x版本:2.2.5 工程环境:windows7+VS2010 打开方式:将工程放在cocos2d-x安装目录下的project文件夹下用VS打开 目录: 一.修改背景图片和窗口大小 二.添加虚拟摇杆 三

飞机循环飞行

**** 飞机循环飞行(飞机动) 1 # -*- coding:utf-8 -*- 2 # Author:Sure Feng 3 import pygame 4 5 # 游戏初始化 6 pygame.init() 7 # 创建游戏窗口 8 screen = pygame.display.set_mode((480, 700)) 9 # 绘制背景 10 bg = pygame.image.load("./images/background.png") 11 screen.blit(bg,

飞机纵向飞行控制

此示例说明如何对飞机纵向运动的飞行控制进行建模.飞机和作动器行为的一阶线性近似值连接到一个模拟飞行控制设计,该设计使用飞行员的倾角操纵杆指令作为飞机俯仰姿态的设定值,并使用飞机俯仰角度和俯仰率来确定指令.合并了简化的 Dryden 阵风模型来干扰系统. 在此模型中使用 Signal and Scope Manager 来创建用于查看信号的模型示波器 Scope1.Signal and Scope Manager 位于 Diagram 菜单 -> Signals & Ports 上,通过它可以

纯js实现用键盘控制DIV上下左右+放大缩小与变色

//用键盘控制DIV,红色方块为键盘操作区域,您可以进行如下操作:左右控制;背景变为绿色;背景变为黄色;背景变为蓝色放大或缩小用键盘控制DIV,红色方块为键盘操作区域,您可以进行如下操作:  上:↑ 下:↓ 左:← 右:→  Ctrl + 1 : 背景变为绿色  Ctrl + 2 : 背景变为黄色  Ctrl + 3 : 背景变为蓝色  Ctrl + ↑ : 放大  Ctrl + ↓ : 缩小 <!-- Author: XiaoWen Create a file: 2017-01-10 19:0

JS实现用键盘控制DIV上下左右+放大缩小与变色

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Cocos2d-x虚拟摇杆控制精灵上下左右运动----之游戏开发《赵云要格斗》

这是自己开发的第一次小游戏,有需要源代码和材料的邮箱留个,这里实现了能通过虚拟摇杆控制精灵的运动,而且能够改变精灵运动时的脸部朝向.之前看了好多人写虚拟摇杆,但是就是没写控制精灵的运动和脸朝向的.所以自己就想要写个文章好好讲下它的实现思路.好了,下面我们开始吧. 目录: 一.修改背景图片和窗口大小 二.添加虚拟摇杆 三.添加精灵并用摇杆控制精灵的运动 四.思路总结 一.修改背景图片和窗口大小 新建一个工程,工程名为HelloCpp.为了让效果更加好些,首先修改下窗口的大小,在main.cpp中改

CSS 控制元素 上下左右居中

此文章为转载,目的是自己好参考 左右居中:  #method. -->. margin:0 auto;   效果图: 上下居中:  在介绍方法之前,我先声明一下, 这里的 上下居中法,都是已知 height的,总结分两种情况,1. 具体height 和 2.百分比height,但无论哪种形式的height,应该都可以归为 已知height. 下面说一说,百分比height 的两种需要注意的情景: 情景一:position:absoute; top:0; left:0; width:xx%;hei

键盘控制div上下左右移动 (转)

<html> <head> <title></title> <link rel="stylesheet" type="text/css" href="public/easy_ui/themes/icon.css"> <script type="text/javascript" src="public/easy_ui/jquery.min.js"

大疆Phantom 4 RTK 通过4G SIM卡来控制飞机

一直设想无人机能够飞得更远.更稳,能不能通过4g信号来实现,现在大疆帮我们实现了,不愧是家伟大的公司: 特点: 用途:测绘.农业.巡检.植保.建筑测量 精度:GPS/北斗/GLONASS 3系统6频点RTK为飞行器提供2厘米级定位 支持4G网络 一控多机(5台飞行器) 在基站网络信号差的时候,支持连接入自有网络 支持中断点保存功能,可对超大面积的地形进行测量(1平方公里(1500亩)). 1英寸2000万像素传感器 30分钟续航 控制点可以减低到5个以下,大幅节省时间. 外观: 在遥控器中插入4