Android使用键盘控制小飞机的移动

键盘事件的监听-控制飞机移动 package com.onclick; import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Display; import android.view.KeyEvent; import android.view.View; im 阅读详情

使用安卓虚拟按键控制小飞机的移动小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;
   }
  });
    }

}



Python Pygame游戏开发入门:从零实现像素飞机大战 游戏开发是编程学习的重要实践领域,其核心在于理解游戏循环、事件处理和状态机等基础概念。通过游戏循环实现画面更新与用户交互,事件处理机制响应用户输入,而状态机则管理游戏的不同阶段。这些原理构成了实时交互应用的基础框架,具有广泛的技术价值。在Python生态中,Pygame库因其简洁的API和丰富的社区资源,成为学习2D游戏开发的理想选择。它特别适合实现射击类游戏,其中碰撞检测是关键机制,用于判定子弹与敌机的交互。本文以经典的像素飞机大战项目为例,详细拆解了如何使用Pygame实现精灵管理、碰撞检测和游戏状态控 阅读详情

相关推荐

C# Winform飞机大战游戏开发实战:从零实现核心模块与架构设计

游戏开发的核心在于理解其底层运行机制,其中游戏循环、对象管理和渲染绘制是基础。游戏循环通过定时器驱动,实现状态的持续更新与画面渲染,这是所有实时交互应用的基石。面向对象设计在此发挥关键作用,通过基类与继承构建清晰实体模型,如玩家、敌机与子弹,便于统一管理与扩展。双缓冲技术有效解决画面闪烁问题,提升视觉流畅度,这是图形界面编程的常见优化手段。碰撞检测作为交互核心,其矩形检测(AABB)等算法直接关系到游戏逻辑的准确性与性能。将这些原理应用于实践,便能构建出如经典2D射击游戏——飞机大战这样的完整项目。本文以C

weixin_33862993的博客 420

Android学习之控制飞机移动

疯狂Android讲义学习

不破楼兰的博客 1808

控制飞机移动

控制飞机移动

自定义控件(实现小飞机)

1.效果图:按A就往左移动,按W就往上移动,按S就往下移动,按D往右移动 2.planeView.java 1 package com.example.app4; 2 3 import android.content.Context; 4 import android.graphics.Bitmap; 5 import android.graphics...

241

Android的小游戏打飞机(二)移动飞机

Android的小游戏打飞机(二)移动飞机

android开发 小车跟随键盘上下左右键而移动

android开发 小车跟随键盘上下左右键而移动

基于LibGDX的Android弹幕射击游戏开发实战:架构、优化与发布

在2D游戏开发领域,实体组件系统(ECS)和对象池是优化性能、管理大量游戏对象的核心设计模式与关键技术。ECS通过将数据与逻辑分离,提升了代码的可维护性和扩展性,尤其适合需要处理大量动态实体(如子弹、敌机)的游戏类型。对象池技术则通过复用对象实例,有效避免了频繁的内存分配与垃圾回收,是保证游戏帧率稳定的重要工程实践。这些技术共同解决了弹幕射击类游戏中,海量实体实时生成、运动与碰撞检测带来的性能挑战,其价值在于为移动端高性能游戏开发提供了可复用的架构范式和优化手段。本文将以一个完整的Android平台纵版弹幕

weixin_34060299的博客 347

android游戏编程之从零开始飞机游戏触摸移动

android游戏编程之从零开始飞机游戏源码,更改按键控制主角飞机为触摸控制

Js事件案例——上下左右键盘控制div移动

描述: div通过键盘事件上下左右实现div块的移动 效果:     实现: js: var Method=(function () { return { EVENT_ID:"event_id", loadImage:function (arr) { var img=new Image(); ...

进击的葱 4438

android 游戏飞机移动模拟

android代码模拟屏幕飞机的移动 事件监听案例

安卓飞机小游戏

安卓移动开发,安卓游戏开发,安卓小游戏,安卓飞机小游戏,

android 手势检测(左右滑动、上下滑动)

开发十年,就只剩下这套Java开发体系了 >>>    ...

qq_40567164的博客 6007

Android--雷电--小飞机

1.有3种怪物,苍蝇,鸭子和boss 2.每种怪物都有不同的子弹样式和自身特性 3.有独立的boss关卡,boss有独立的子弹效果和运动模式 4.详细代码注释和mvc格式划分,非常适合初学者 5.只限用户学习交流 6.本项目完全适应各种屏幕 7.希望用完以后及时删除 8.版权所有,非法必究

Android 全界面悬浮按钮实现,you can do it!

最近工作原因,没有及时更新博客。各位看官原谅则个。 我们每天都这样周而复始的工作,生活,生活,工作。就像头两天看到空间好友里,小源同学的一句话“人与人的不同在于:你是真的活了一万多天,还是仅仅生活了一天,却重复了一万多次。” 我们都像生活的有资有色,当年迈的时候,回首往事,可以每次都跟爱人、亲人、友人会议那么多的精彩往事,而不是每次都重复一个自认为精彩的故事。 努力吧,骚年。为了曾经吹过的牛

起猿的专栏 2万+

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

安卓可以移动的悬浮框

public class WindowManageDemoActivity extends Activity {   private WindowManager mWindowManager;  private WindowManager.LayoutParams param;  private FloatView mLayout;     /** Called when the act

AIFBD 693

Vivado与VCS+Verdi联合仿真环境搭建全攻略

本文详细介绍了如何搭建Vivado与VCS+Verdi联合仿真环境,旨在解决Vivado Simulator在大型FPGA验证中速度慢、调试弱的问题。通过指导工具版本配对、环境变量设置、关键参数配置及Xilinx仿真库编译,帮助工程师高效整合Vivado的设计管理、VCS的高速仿真与Verdi的深度调试能力,从而显著提升验证效率。

weixin_29219189的博客 577

Android事件和事件监听 来个飞机设个背景图让飞机上下左右动

先贴出画飞机部分的代码,具体代码说明注释里边有 package com.example.planegame; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; im

wangyang55555的专栏 1353

告别手动下载!用Python脚本5分钟搞定NREL风速数据(附完整API调用代码)

本文详细介绍了如何使用Python脚本自动化获取NREL风速数据,从API密钥申请到数据保存的全流程。通过完整的API调用代码和实战技巧,帮助研究人员和开发者高效下载全球高精度风速数据,告别繁琐的手动操作,提升工作效率。

weixin_33724059的博客 297

OpenHarmony实战开发-如何实现文件分布式同步编辑

在分布式文件场景中,分布式设备管理包含了分布式设备搜索、分布式设备列表弹窗、远端设备拉起三部分。首先在分布式组网内搜索设备,然后把设备展示到分布式设备列表弹窗中,最后根据用户的选择拉起远端设备。两台设备组网的分布式场景是工作中常常需要的。这样的分布式场景有助于加快工作效率,减少工作中的冗余,本例将为大家介绍如何实现上述功能。​ (2)订阅分布式数据变化:通过this.distributedObject.on(‘status’, this.statusCallback)监听分布式数据对象的变更。

2401_82546228的博客 751
上一篇: Kail linux之ARP欺骗测试
下一篇: 安卓大话设计模式
Crcker
博客等级 码龄10年 17粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值