Android游戏开发框架(四)按键事件处理

本文介绍了Android游戏开发中处理按键事件的关键步骤,包括按键状态存储、事件同步及双缓冲区机制。通过KeyboardHandler类,详细阐述了如何接收和处理按键事件,以及如何在不同线程间安全地管理KeyEvent实例。
摘要由CSDN通过智能技术生成

以下均转自Android游戏编程入门经典,转载请标明出处

先来看看按键处理。首先,它必须要与接收键盘事件的View相连接。接下来,在按键被按下时它必须存储各个按键的当前状态以便轮询。它也必须保持一个KeyEvent实例的列表。最后,它必须正确地同步所有这一切工作,因为当从游戏主循环(在一个不同的线程中执行)轮询时,它将从UI线程中接收事件。让我们在查看一下KeyEvent类。

public static class KeyEvent {
        public static final int KEY_DOWN = 0;
        public static final int KEY_UP = 1;

        public int type;
        public int keyCode;
        public char keyChar;

    }

KeyEvent类只定义了两个键盘事件类型的编码常量以及3个成员变量,这3个成员变量分别存储类型、按键编码以及事件的Unicode字符。

KeyboardHandler.java:处理按键

package org.example.androidgames.framework.impl;

import java.util.ArrayList;
import java.util.List;

import org.example.androidgames.framework.Input.KeyEvent;
import org.example.androidgames.framework.Pool;
import org.example.androidgames.framework.Pool.PoolObjectFactory;
import android.view.View;
import android.view.View.OnKeyListener;

public class KeyboardHandler implements OnKeyListener {
	boolean[] pressedKeys = new boolean[128];
	Pool<KeyEvent> keyEventPool;
	List<KeyEvent> keyEventsBuffer = new ArrayList<KeyEvent&g
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值