Android 游戏开发值 2 View

【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?! 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/295.html很多童鞋说我的代码运行后,点击home或者back后会程序异常,如果你也这样遇到过,那么你肯定没有仔细读完Himi的博文,第十九篇Himi专门写了关于这些错误的原因和解决方法,这里我在博客都补充说明下,省的童鞋们总疑惑这 阅读详情

 

 

     首先声明,View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。每一个View都有一个用于绘图的画布,这个画布可以进行任意的扩展。在Android中任何一个View类都只有重写OnDraw方法来实现界面显示。

     游戏(或者普通的APP)最重要的是和用户交互,例如键盘,触摸笔,我们需要来处理这些事件。Android中提供了onKeyUP,OnKeyDown,OnKeyMultiple,OnKeyPreIme,OnTouchEvent、OnTrackballEvent等方法。可以轻松的处理游戏的事件消息。所以我们在继承View类的时候,需要重载这几个方法。当在此控件有焦点的时候,有事件发生,会自动调用这些方法。

 

    游戏的过程是不断的绘图和刷新界面。我们这里来看下如何刷新。

   Android提供了Invalidate方法来实现界面刷新,注意,invalidate方法并不能直接在线程中调用,因为它违背了单线程模型:Android UI线程操作是不安全的,并且这些操作必须在UI线程中执行。因此Android中最常见的是利用Hander来实现UI线程的更新。

   首先我们要重写这个View来,来写一个GameView.

 

 

 

 

 

或者简单的一句话说,屏幕更新的动作不能发生在UI线程里面。

 

 

 

糖糖大世界安卓游戏开发全面教程及源码 Cocos2d-x 是一个开源的游戏开发框架,广泛应用于移动游戏和多媒体应用的开发。它支持跨平台编译,意味着开发者可以在不同的操作系统上创建游戏,包括 Windows、macOS、Linux 以及 iOS 和 Android 等移动操作系统。Cocos2d-x 的核心功能包括:精美的图形渲染方便的动画制作高效的场景管理易于使用的用户界面控件强大的粒子系统和物理引擎Cocos2d-x 框架的一些显著特点包括:高性能渲染。 阅读详情

相关推荐

Android游戏开发:实现虚拟操纵杆控制角色移动

Android,作为一种流行的移动操作系统,为游戏开发提供了丰富的可能性。它基于Linux内核,支持广泛的硬件平台,并拥有庞大的用户基础。开发者可以利用Android提供的API和工具进行创新和创造。开发一个Android游戏主要分为几个阶段:需求分析、设计、编码、测试和部署。在开发过程中,开发者需要熟悉Java或Kotlin编程语言,掌握Android SDK以及游戏开发引擎,如Unity或Unreal Engine。在安装完SDK之后,熟悉常用的API和工具包对于游戏开发至关重要。

weixin_33068055的博客 1136

Android中view和surfaceview的区别

在Android游戏当中充当主要的除了控制类外就是显示类,在J2ME中我们用Display和Canvas来实现这些,而Google Android中涉及到显示的为view类,Android游戏开发中比较重要和复杂的就是显示和游戏逻辑的处理。  这里我们说下android.v

pointerfree的专栏 7348

Android游戏开发经典源代码实战指南-PlanGame

本文还有配套的精品资源,点击获取 简介:《Android安卓经典设计例程源代码-PlanGame》是为Android游戏开发者提供的全面学习资源,包含了多个游戏实例,每个实例都展示了特定的设计模式和技术。通过这个压缩包,开发者可以学习到Android的生命周期管理、UI组件、图形渲染、游戏逻辑、音频处理、网络通信、资源管理和性能优化等多个方面的知识。实践这些源代码有助于深入...

weixin_42315569的博客 2348

Android游戏开发用View还是SurfaceView?

Android游戏开发用View还是SurfaceView? 在游戏开发过程中经常用到两种显示类:一种是View,另一种则是SurfaceView。在这里我们来讨论在Android游戏开发中应该用哪种比较合适!一下我们来分析这两种显示类的异同和用法。Surfa

ch_984326013的专栏 1616

rockchip rk3566 android11 网口log报错: DMA engine initialization failed

问题描述:上电初始化前将网口插入,然后上电初始化网口能够正常使用,且能够找到PHY,ifconfig 查看能够有eth0 产生,网口正常使用且能够热插拔,但上电初始化时,不插入网口,就会报DMA engine initialization failed 错误,DMA 初始化的时候出错了。 分析:一般产生这个问题可以认为是GMAC 的工作时钟出问题了。先测量时钟引脚是否有时钟,时钟频率以及幅度等指标是否正常,主要确认以下几个方面: 1.IOMUX 出错,检查时钟脚寄存器值是否正确。 2.时钟方向以及配置

qq_48709036的博客 2万+

【血汗泪心路历程】怎么彻底删掉Sangfor文件?怎么彻底删除easyconnect?删除sangfor后网络坏了、某些app无法正常启动怎么解决?

教程来源于网络的五湖四海+gpt解答。用到了好几个教程和方法,遂这篇总结一下。会标明出处!先上一下战绩:终于把sangfor扔进回收站里了!!!哈哈哈那一刻真的好爽。

weixin_71246590的博客 6万+

Android游戏开发中常用的三种视图

Android游戏开发中常用的三种视图是View、SurfaceView和GLSurfaceView

肖天师的博客 2731

微信自动化进阶:Python识别特定消息并自动回复(基于win32api控件操作)

本文详细介绍了如何使用Python和win32api实现微信消息的智能监控与自动回复。通过精准识别聊天记录中的特定关键词,结合多级匹配策略和性能优化技巧,构建稳定高效的自动化回复系统,适用于企业客服、个人助手等场景。

weixin_42663213的博客 441

Android游戏开发学习(3)--View与SurfaceView区别

 那个更适合开发游戏,或者说开发什么样的游戏用那个更适合。   SurfaceView双缓冲,主动刷新,线程调用,GL等特点更适合开发画面刷新比较快的游戏。即时类游戏 View适合开发一些被动更新的游戏。如棋盘类,益智类的,有人触发游戏画面在更新的游戏。   -----------------------------------------------------------------...

Android 238

LLM大模型-vLLM本地部署全流程:Windows WSL2环境安装、HuggingFace与Modelscope模型加载与本地运行、Docker化部署与镜像分发

vLLM本地部署大模型方案 vLLM是一款高性能大模型推理引擎,通过PagedAttention技术显著提升吞吐量和内存效率,支持低成本、高并发的本地部署。 核心优势: 性能卓越:吞吐量远超同类方案,支持连续批处理等高级功能 成本优化:减少GPU服务器需求 兼容性强:提供类OpenAI的简洁API 部署步骤: 硬件准备:需NVIDIA GPU(如A100/3090),显存≥模型参数量×2(7B模型需14GB) 软件环境: Linux系统或Windows WSL2 安装CUDA 12.1+和Python 3.

2202_75674969的博客 4566

QGC4.0.11界面修改

QGC4.0.11。

超维空间科技的博客 2466

Android之View和SurfaceView

  Android游戏当中主要的除了控制类外就是显示类View。SurfaceView是从View基类中派生出来的显示类。android游戏开发中常用的三种视图是:view、SurfaceView和GLSurfaceView。   View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。   SurfaceView:基于view视图进行拓...

weixin_33795806的博客 235

高性能算力中心 — RDMA — Overview

目录 文章目录目录RDMA基于以太网的 RoCE/RDMA 计算优化NVMeNVMe Over Fabrics基于以太网的 NVMe 存储优化 RDMA RDMA(Remote DMA,远程直接内存访问)是一种新的内存访问技术,RDMA 让计算机可以直接存取其他计算机的内存,而不需要经过 CPU 耗时的处理。RDMA 将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响。RDMA 技术的原理及其与 TCP/IP 架构的对比如下图所示。 InfiniBand(IB):从一开始就支持 R

烟云的计算 2365

Android游戏编程——View游戏框架

android游戏开发中常用的三种视图是:view、SurfaceView和GLSurfaceView。 View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等; SurfaceView:基于view视图进行拓展的视图类,更适合2D游戏的开发; GLSur

Android学习历程 1120

中国各城市土地利用类型(城市功能)数据集(shp)

中国各城市土地利用类型(城市功能)数据集时间:2018年全国范围的城市用地类型数据(居住/商业/交通用地等共计11类)分类:居住用地、商业用地、工业用地、医疗设施用地、体育文化设施用地、交通场站用地、绿地等用地类型含城市编码、一级分类5个、二级分类11个1、上海市。

你好,我是小张同学! 1337

GEE:面对对象土地利用分类(结合SNIC、GLCM 和机器学习算法)

本文将介绍在Google Earth Engine中结合SNIC、GLCM和机器学习算法的的土地利用/土地覆盖(LULC)分类方法。结果如下图所示,

养乐多的博客 5616

安卓自定义view五子棋

安卓自定义view五子棋 当初学编程的,都想做一个游戏,俄罗斯方块?贪吃蛇?不不不,今天我所讲的是五子棋双人对战,对比那些来说,应该算比较简单的了。好了,先贴上视频地址http://www.imooc.com/learn/641。 相信很多人都有看过,不过视频中,我发现有些代码是不需要的,而且还存在一些bug,针对视频所存在的bug我都做了调整,经测试,目前无bug。 创建一个类,然后继承View...

努力学习变强 321

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Android2D游戏开发之二】剖析游戏开发用view还是sarfaceView

<br /><br /> 在Android游戏当中充当主要的除了控制类外就是显示类,在J2ME中我们用Display和Canvas来实现这些,而Google Android中涉及到显示的为view类,Android游戏开发中比较重要和复杂的就是显示和游戏逻辑的处理。 <br />这里我们说下android.view.View和android.view.SurfaceView。SurfaceView是从View基类中派生出来的显示类,直接子类有GLSurfaceView和VideoView,可以看出GL和视频

青峰专栏 944

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android view强制重绘_Android的view重绘

android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。想写一个复杂一点的游戏,是必须用到SurfaceView来开发的,不要老想着用Layout和view去实现,不要将某个游戏中的对象做成一个组件来处理。应该尽量想着在Canvas(画布)中画出游戏戏中的背景、人物、动画等.andro...

weixin_39993322的博客 1048

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android视图显示之View和SurfaceView

Android游戏当中主要的除了控制类外就是显示类View。SurfaceView是从View基类中派生出来的显示类。android游戏开发中常用的三种视图是:view、SurfaceView和GLSurfaceView。   View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。   SurfaceView:基于view视图进行拓展的

郭风朴(guofengpu)的Android影音专栏 894

【转】【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!

Himi 原创, 转载请注明! 谢谢。 原文地址: http://blog.youkuaiyun.com/xiaominghimi/archive/2010/12/21/6089594.aspx 在Android游戏当中充当主要的除了控制类外就是显示类,在J2ME中我们用Display和Canvas来实现这些,而Google Android中涉及到显示的为view类,Android游戏开发

GaoMatrix的专栏 1265

android之View和SurfaceView

首先介绍一下View类,View类是android的一个超类,每一个View都有一个用于绘画的画布,这个画布可以进行任意的扩展。有的时候我们需要自定义VIew实现自己想要的视图。view、SurfaceView是游戏开发中经常用到的视图。 View:显...

chenqunan3231的博客 54

【Android游戏开发之二】剖析游戏开发用view还是surfaceView

Himi  原创, 转载请注明! 谢谢。   原文地址: http://blog.youkuaiyun.com/xiaominghimi/archive/2010/12/21/6089594.aspx   在Android游戏当中充当主要的除了控制类外就是显示类,在J2ME中我们用Di

Android For Java 372

Android surfaceView 与View 的区别

如果你的游戏不吃CPU,用View就比较好,符合标准Android操作方式,由系统决定刷新surface的时机。   但如果很不幸的,你做不到不让你的程序吃CPU,你就只好使用SurfaceView来强制刷新surface了,不然系统的UI进程很可能抢不过你那些吃CPU的线程。   当然其实不止这两种方法来刷新Surface的,这两种只是纯Java应用比较常见的方法。   Surface

danfengqingyi的专栏 542
上一篇: 为Ubuntu Server 添加硬盘
下一篇: Android Layout xml 中的几个概念
dadahacker
博客等级 码龄20年 78粉丝 120原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值