android

android

因此,我们启动并运行了我们的Android应用程序,但是您可能想知道哪种类型的应用程序正是游戏。 我会尽力让您了解它。 下图显示了游戏架构。
Android手机上的游戏架构

在上面的架构中,您可以看到Android操作系统在Phone上运行,并在此之上运行一切。

在我们的案例中,输入是触摸屏,但如果手机配备了麦克风,摄像头,加速计甚至配备了GPS接收器,则它可以是物理键盘。 当通过上一篇文章的“活动”中使用的视图触摸屏幕时,该框架公开事件。

用户输入

在我们的游戏中,这是通过触摸两个定义的控制区域之一中的屏幕生成的事件。 (请参阅第1步-彩色圆圈)。 我们的游戏引擎监视onTouch事件,每次触摸时我们都会记录坐标。 如果坐标在屏幕上定义的控制区域内,我们将指示游戏引擎采取措施。 例如,如果在指定移动我们的家伙的圆圈中发生触摸,则引擎会得到通知,并指示我们的家伙移动。 如果触摸武器控制圈,将指示装备的武器发射子弹。 所有这些转化为改变受我们的手势(即输入)影响的演员状态。

我刚刚描述了下面的游戏逻辑部分。

游戏逻辑

游戏逻辑模块负责更改游戏中参与者的状态。 演员是指具有状态的每个对象。 我们的英雄,机器人,地形,子弹,激光束等。例如,我们触摸图中的英雄控制区域的上半部分,这转化为:根据我们的运动控制器的位置来计算家伙的运动速度(我们的手指)。

在上方的图像中,浅绿色的圆圈代表我们的手指触摸控制区域。 用户输入模块通知游戏引擎(游戏逻辑),并提供坐标。 dxdy是相对于控制器圆心的距离(以像素为单位)。 游戏引擎会计算必须为我们的英雄设置的新速度以及他将要移动的方向。 如果dx为正,则表示他将向右移动;如果dy为正,则他还将向上移动。

音讯

考虑到当前状态,此模块将产生声音。 由于几乎每个演员/物体都会以不同的状态发出声音,并且由于我们将运行游戏的设备仅限于几个通道(这意味着该设备一次可以播放多少个声音),因此必须决定哪个听起来很有趣。 例如,当我们想引起注意时,会听到对我们的英雄构成最大威胁的机器人,当然,我们需要为我们的武器的超棒射击声保留一个通道,因为聆听爆炸声时非常有趣。 简而言之,这就是音频。

图形

这是负责将游戏状态呈现到显示器上的模块。 这可以简单到直接在从视图获得的画布上进行绘制,或者将一个单独的图形缓冲区绘制到然后传递给该视图的视图中即可,该视图可以是自定义视图或OpenGL视图。

我们以每秒帧数表示的FPS测量渲染。 如果我们有30FPS,则意味着我们每秒显示30张图像。 对于30 FPS的移动设备来说,这是很棒的,我们将为此目标。 稍后对此进行更多讨论。

现在唯一要知道的是,FPS越高,动画越平滑。 想象一下有人走了,闭上你的眼睛一秒钟。 睁开眼睛后,一秒钟后您会看到该人处于该位置。 这是2FPS。 看着他们走路,但睁大眼睛,您会看到流畅的动作。 保证最低为30 FPS,但可能会更高,具体取决于您的眼睛。 如果您在原始状态下有很棒的受体,则可能是80-100甚至更多。

输出量

如果我们决定产生一些声音,则输出是声音和图像以及振动的结果。

接下来,我们将设置视图,并尝试进行第一个游戏循环,该循环将从触摸屏获取输入。 我们将拥有第一个游戏引擎。

参考:来自我们的JCG合作伙伴Tamas Jano的基本游戏架构,来自“ Against The Grain ”博客。

不要忘记查看我们的新Android游戏ArkDroid (以下屏幕截图) 。 您的反馈将大有帮助!
相关文章:
  • Android游戏开发教程简介
  • Android游戏开发–游戏创意
  • Android游戏开发–创建项目
  • Android游戏开发–基本游戏循环
  • Android游戏开发–使用Android显示图像
  • Android游戏开发–在屏幕上移动图像
  • Android游戏开发–游戏循环
  • Android游戏开发–测量FPS
  • Android游戏开发–雪碧动画
  • Android游戏开发–粒子爆炸
  • Android游戏开发–设计游戏实体–策略模式
  • Android游戏开发–使用位图字体
  • Android游戏开发–从Canvas切换到OpenGL ES
  • Android游戏开发–使用OpenGL ES显示图形元素(原语)
  • Android游戏开发– OpenGL纹理映射
  • Android游戏开发–设计游戏实体–状态模式
  • Android游戏文章系列

翻译自: https://www.javacodegeeks.com/2011/07/android-game-development-basic-game.html

android

android_Android游戏开发–基本游戏架构

相关文章

  1. java中static的作用_Java中static关键字的作用

    static关键字主要有两种作用:第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,实现某个方法或属性与类而不是对象关联在一起具体而言,在Java语言中,static主要有4中使用情况&…...

    2023/1/31 20:44:21
  2. 最新版手机端C/C++语言编程的软件

    今天介绍一个软件—C编译器(c4droid),可以直接编辑运行C/C程序,代码高亮、语法检查,使用起来非常不错,下面我简单介绍一下这个软件的安装和使用: 安装C编译器,这个直接在手机应用中搜索就行,如…...

    2023/1/31 20:44:18
  3. WinHTTP中的认证问题

    WinHTTP中的认证问题 Some HTTP servers and proxies require authentication before allowing access to resources on the Internet. The Microsoft Windows HTTP Services (WinHTTP) functions support server and proxy authentication for HTTP sessions. 一些HTTP服务器…...

    2023/1/31 20:44:16
  4. MFC之MessageBox、AfxMessageBox用法

    在软件中我们经常会弹出个小窗口,给一点点提示.这就会用到消息对话框. 在Win32 API程序中只有MessageBox这一种用法. 而在MFC中就有三各方法: 1.调用API中的MessageBox; 2.调用CWnd的成员函数MessageBox; 3.调用全局函数AfxMessageBox; MFC…...

    2023/1/31 20:44:06
  5. 俄罗斯方块java源代码提供

    俄罗斯方块——java源代码提供 import java.awt.*; import java.awt.event.*; //俄罗斯方块类 public class ERS_Block extends Frame{ public static boolean isPlayfalse; public static int level1,score0; public static TextField scoreField,levelField; p…...

    2023/1/31 20:44:04
  6. 电子设计大赛-仪器仪表类题目分析

    文末下载完整资料 简易电阻、电容和电感测试仪[2](第二届,1995年) (1)设计任务   设计并制作一台数字显示的电阻、电容和电感参数测试仪,示意框图如图1.3.23所示。 (2)设计要求 ①基本要求…...

    2023/1/31 20:43:59
  7. 鸿蒙笔记2

    组件(Component):组件对数据进行简单的封装,然后实现独立的可视的,可交互功能单元。相当于一块一块的。根据组件的功能分为四大类。 基础组件:text、image、progress、rating、span、marquee、image-anima…...

    2023/1/31 20:41:51
  8. 中南大学matlab考试样卷,中南大学英语视听说(一)口语考试样卷

    中南大学考试试卷2014-2015 学年 第一 学期 时间10分钟 A卷 英语视听说(一)口语 课程 16 学时 1 学分 考试形式: 闭卷 专业年级: 2014级非英语专业学生 总分100分 占总评成绩 30 %Test Paper 1I. Reading Aloud (20%)Directions: Please read aloud the following p…...

    2023/1/31 20:40:13
  9. matlab解方程大于0的解,matlab用solve解方程组,解出来有很多组解,如何编程只保留全部未知数都大于0的一组解(该方...

    matlab用solve解方程组,解出来有很多组解,如何编程只保留全部未知数都大于0的一组解(该方mip版 关注:130 答案:4 悬赏:40解决时间 2021-01-25 20:34已解决2021-01-25 17:05matlab用solve解方程组,解出来有很多组解,如何编程只保…...

    2023/1/31 20:40:01
  10. matlab直接解超越方程函数,用matlab 解超越方程~

    共回答了26个问题采纳率:92.3%使用二分法 求解上面超越方程下面是二分法的函数文件,你直接设置输入参数就可以了function [c,err,yc]bisect(f,a,b,delta)%Input - f is the function% - a and b are the left and right endpoints% - delta is the tolerance%Output…...

    2023/1/31 20:39:55
  11. 单片机数字电路-protues之74HC573演示

    74HC573是8位数据锁存器,主要用于数码管、按键等等的控制。 首先,LE0,这个状态会被锁起来,输出并没有被输入的状态改变而改变 当LE1的时候,74HC573的状态开始发生变化 当LE0再发生时,这个状态没有再被更改回…...

    2023/1/31 20:39:53
  12. 感恩

    感恩 有一首歌曲叫做《感恩的心》歌词有几句是这样说的:“我来自偶然像一颗尘土,天地虽宽这条路却难走,我看变着人间坎坷辛苦,要苍天知道我不认输,感恩的心感谢有你,伴我一生让我有勇气做我自己&#xff0c…...

    2023/1/31 20:39:51
  13. 红橙Darren视频笔记 换肤框架2 原理篇 view创建的拦截

    1.实现换肤的要求与方案分析 要求 1.换肤后每一次打开应用都是新的皮肤 2.换肤后所有的activity里面的View都要换肤(即时刷新) 做法: 为所有Activity添加theme的监听 当theme发生变化的时候 通知所有Activity进行换肤 如果使用fragment&…...

    2023/1/31 20:39:46
  14. 自定义控件之滑动开关按钮

    对于Android的自定义控件是自己一直想研究总结的,所以未来会从基础开始,一点点来学习一些自定义控件的效果,这些知识并非完全自己来研究的,但是是自己学习成长的点滴记录,重在搞懂原理,言归正传~ 这次要实现…...

    2023/1/31 20:39:43
  15. setAttribute()的兼容性问题解决

    class和className兼容方法: object.setAttribute(“class”,“content”) 在IE8、Chrome、火狐、Opera10中都能设置成功;但是在IE7下无法设置。 object.setAttribute(“className”,“content”) 只有IE7能设置成功,但是其他浏览器均无法…...

    2023/1/31 20:39:38
  16. lack名词形式_lack用法

    lack用法(2011-01-09 21:29:54)标签:手机博客教育L1 Lack 的用法 n. (名词) ① A deficiency or an absence: 缺乏或没有; ②Something needed or wanted. 欠缺的事物:缺乏或寻求的某物 a lack of money. 缺乏金钱Her only problem is lack o…...

    2023/1/31 20:39:35
  17. oracle复合结构,动名词的复合结构作宾语

    动名词复合结构的形式带有逻辑主语的动名词叫做“动名词复合结构”,其形式有如下两种:a)名词所有格/物主代词动名词,如:I insist on Mary’s going there. 我坚持要玛丽到那儿去。I had not heard of your being ill. 我没听说你病…...

    2023/1/31 20:39:33
  18. 考研复试英语之名词解释

    Machine learning Machine learning (ML) is / the scientific study / of algorithms and statistical models / that computer systems use to / effectively perform a specific task / without using explicit instructions, relying on patterns and inference(推理) inst…...

    2023/1/31 20:39:31
  19. GD32F103C空闲中断加dma接收不定长字符串

    最近再弄apm32串口中断接收字符串,在网上查了资料发现用空闲中断加DMA接收字符串比较好,自己研究了一下,整理了下,以备以后用得到 首先是DMA配置,代码如下: void dma_config(void) {dma_parameter_struct…...

    2023/1/31 20:39:28
  20. WinHttp用法(WinHttp.WinHttpRequest.5.1方法,属性)

    先保存下来: 使用WinHttpRequest伪造HTTP头信息,伪造Referer等信息 由于微软封锁了XmlHttp对象,所以无法伪造部分HTTP头信息,但是WinHttp.WinHttpRequest.5.1对象,它居然用可以成功伪造所有http请求的header信息&…...

    2023/1/31 20:39:21

最新文章

  1. android_Android游戏开发–基本游戏架构

    android因此,我们启动并运行了我们的Android应用程序,但是您可能想知道哪种类型的应用程序正是游戏。 我会尽力让您了解它。 下图显示了游戏架构。 Android手机上的游戏架构 在上面的架构中,您可以看到Android操作系统在Phone上运行&#xf…...

    2023/1/31 20:46:09
  2. php后台源码如何下载使用

    PHP源码如何使用展开1全部PHP程序都要用MYSQL,如果没有MYSQL,就不能用它们;第一:配置数据库信息,改成自己所需的;第二:导入数据库;第三:安装wamp5输入自己的文件名。1:如果是php源码,在本地电脑使用时。要先安装phpnow环境套件包(下附),里面包含了php+mysql等,也…...

    2023/1/31 20:45:23
  3. Isaac Sim 机器人仿真器介绍、安装与 Docker [1]

    前言与参考 此文书写于: January 6, 2023, 更新于 January 6, 2023 ;可能会随着时间的变化 此教程会有过时概念哦 Isaac Sim 相关参考链接: 官方文档地址官方docker image 镜像地址官方讨论 论坛链接,建议没啥事就可…...

    2023/1/31 20:45:09
  4. 24.网络编程(二)

    目录 三.TCP通信 3.1 TCP协议特点 3.2 TCP协议通信场景 3.3 TCP通信模型演示 3.4 Socket 3.5 ServerSocket 3.6 注意事项 3.7 案例 3.7.1 TCP通信—单发单收 3.7.2 TCP通信—多发多收 3.7.3 TCP通信—同时接收多个客户端的消息。 3.7.4 TCP通信—使用线程池优化&am…...

    2023/1/31 20:45:08
  5. 【Unity学习笔记】UnrealToUnity教程:(网上购买的素材导入Unreal+插件转Unity)

    【Unity学习笔记】UnrealToUnity教程: 最近想从Unreal那边化点缘借借素材,没想到踩到一个大坑 一,素材导入Unreal 这个教程比较多,根据素材的来源,传送门是以下这几个: 1.项目之间互相迁移,不…...

    2023/1/31 20:45:08
  6. android 9.0 删除当前连接wifi的配置信息

    目录 1.概述 2.删除当前连接wifi的配置信息的核心类 3.删除当前连接wifi的配置信息的核心功能分析和实现...

    2023/1/31 20:45:01
  7. 云原生周刊 | 在 Grafana 中显示 K8s Service 之间的依赖关系

    开源项目推荐 Caretta 这个项目可以在 Grafana 监控面板中显示 K8s Service 之间的依赖关系。底层使用的是 eBPF,对应用无侵入。 busuanzi 这是一个基于 Golang Redis 的简易访问量统计系统,可以用来替代不蒜子。 vim-online-editor 这是一个在线版…...

    2023/1/31 20:44:38
  8. java中static的作用_Java中static关键字的作用

    static关键字主要有两种作用:第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,实现某个方法或属性与类而不是对象关联在一起具体而言,在Java语言中,static主要有4中使用情况&…...

    2023/1/31 20:44:21
  9. 最新版手机端C/C++语言编程的软件

    今天介绍一个软件—C编译器(c4droid),可以直接编辑运行C/C程序,代码高亮、语法检查,使用起来非常不错,下面我简单介绍一下这个软件的安装和使用: 安装C编译器,这个直接在手机应用中搜索就行,如…...

    2023/1/31 20:44:18
  10. WinHTTP中的认证问题

    WinHTTP中的认证问题 Some HTTP servers and proxies require authentication before allowing access to resources on the Internet. The Microsoft Windows HTTP Services (WinHTTP) functions support server and proxy authentication for HTTP sessions. 一些HTTP服务器…...

    2023/1/31 20:44:16
  11. 【毕业设计】深度学习手势检测识别系统 - 卷积神经网络 opencv python

    文章目录1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果3.5 关键…...

    2023/1/31 20:44:14
  12. 阿里图库字体使用方法---新手适合看

    Unicode方法 阿里图库注册一个账号。把需要的图标加入购物车。点击购物车后-->添加到项目 解压之后的文件要放到和html文件同一个目录下(我因为之前没有在一个目录一直没有成功,也不知道为啥) 点击下载下来的这个网页,会有相应…...

    2023/1/31 20:44:12
  13. 相亲婚恋小程序,打造线上相亲新模式

    春节将至!你是否逢年过节会被询问感情状况?是否随时面临着各种相亲宴会?是否有热衷帮你介绍对象的七大姑八大姨?结果就是与相亲对象面面相觑,无限尬聊,你真的不止是一个人! 今天&#xff0c…...

    2023/1/31 20:44:08
  14. MFC之MessageBox、AfxMessageBox用法

    在软件中我们经常会弹出个小窗口,给一点点提示.这就会用到消息对话框. 在Win32 API程序中只有MessageBox这一种用法. 而在MFC中就有三各方法: 1.调用API中的MessageBox; 2.调用CWnd的成员函数MessageBox; 3.调用全局函数AfxMessageBox; MFC…...

    2023/1/31 20:44:06
  15. 【博客573】linux内核层丢包排查方法汇总

    linux丢包排查方法汇总 1、排查网卡丢包 命令1: ifconfig xxx ifconfig eth0 eth0 Link encap:Ethernet HWaddr AC::3D:A9::0Dinet addr:211.211.211.211 Bcast:211.211.211.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU: Metric:RX pac…...

    2023/1/31 20:44:04
  16. 俄罗斯方块java源代码提供

    俄罗斯方块——java源代码提供 import java.awt.*; import java.awt.event.*; //俄罗斯方块类 public class ERS_Block extends Frame{ public static boolean isPlayfalse; public static int level1,score0; public static TextField scoreField,levelField; p…...

    2023/1/31 20:44:04
  17. 【Python学习笔记】6. Python3 基本数据类型(下)——列表、元组、集合、字典、数据类型转换

    前言 本文介绍Python3基本数据类型——列表、元组、集合、字典、数据类型转换。 List(列表) List(列表) 是 Python 中使用最频繁的数据类型。 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同&#xff0…...

    2023/1/31 20:44:02
  18. C语言实现小游戏之扫雷

    目录 前言 一、主要实现功能 二、程序流程(思路) 主程序流程 游戏部分流程 三、源代码及运行截图 源代码 运行截图: 总结 前言 相信大家都曾玩过一个经典的小游戏——扫雷,在学习了C语言有关于数组、循环语句、选择语句等知识后&…...

    2023/1/31 20:44:01
  19. 电子设计大赛-仪器仪表类题目分析

    文末下载完整资料 简易电阻、电容和电感测试仪[2](第二届,1995年) (1)设计任务   设计并制作一台数字显示的电阻、电容和电感参数测试仪,示意框图如图1.3.23所示。 (2)设计要求 ①基本要求…...

    2023/1/31 20:43:59
  20. ESP32S3系列--代码执行速度优化(从PSRAM执行代码)

    一、目的 在上一篇博文中我们介绍了ESP32S3的Flash/PSRAM的一些配置,包括时钟、IO模式(单线、双线、四线、八线)、采样模式(SDR/DDR) ESP32S3系列--FLASH及PSRAM配置_coder.mark的博客-CSDN博客_esp32 psramhttps://blog.csdn.net/tianizimark/article/details/125264464 …...

    2023/1/31 20:43:33