【计算机游戏开发】游戏交互界面设计

2023-05-16

github项目地址

一、实验目的与要求

  1. 熟悉交互界面设计原理。
  2. 了解Cocos2d-x中的用户交互、触摸事件、碰撞检测机制。

二、实验内容与方法

  1. 完成游戏编译 (50分)
    仿照实验一“英雄快跑”实验,将教材源码和素材文件复制到自己的项目中,成功编译并运行本次实验----“贪食豆”游戏。

  2. 修改游戏显示名称 (5分)
    通过修改游戏代码,使自己的学号姓名(中文)替换原“MyGame”字样出现在标题栏左上角。

  3. 增加摇杆上下移动功能 (10分)
    修改游戏代码,使贪食豆在屏幕范围内能上下左右移动。

  4. 增加计分板功能 (10分)
    修改游戏代码,增加计分板功能。

  5. 增加 UI 登录界面(含 Play 按钮) (10分)
    请自行下载素材,用Cocos Studio UI Editor设计个性化登录界面(含按钮),并在项目中加载该登录界面,实现开始游戏(Play)功能。

  6. 增加Replay按钮(10分)
    在游戏结束时添加Replay按钮,实现重新开始游戏(Replay)功能。

  7. 优化游戏(5分)
    自行发挥想象力,寻找BUG,检查并优化游戏功能,录制游戏通关视频,上传至BB系统。

三、实验步骤与过程

1.完成游戏编译

将源代码与素材复制到相对应的文件夹之中,编译运行程序。
在这里插入图片描述 在这里插入图片描述

修改画面大小,可以展示出完成游戏界面
在这里插入图片描述
在这里插入图片描述

2.修改游戏显示名称

修改AppDelegate.cpp中代码
在这里插入图片描述
在这里插入图片描述
发现cocos2dx不支持中文字符,需要通过如下操作完成中文字符的显示。
由于 VisualStudio 的默认编码方式为 GBK 格式,而 cocos2d-x 引擎的默认编码格式为 UTF-8 格式,故中文会出现无法兼容的情况,所以需要将 GBK 编码转为 UTF-8 编码。
通过资料,得到 GBK 转 UTF-8 代码:
在这里插入图片描述
在这里插入图片描述
最终效果:
在这里插入图片描述

3.增加摇杆上下移动功能 (10分)

首先修改操纵杆的返回类型。
源代码只会返回LEFT、RIGHT、STOP。所以如果需要增加上下移动,需要进一步增加返回的数据量。
这里选择返回操纵杆的移动向量,两个参数代表了bean需要移动的xy向量。
在这里插入图片描述
在更新bean的运动状态中,首先判断向量是否为(0,0),如果是说明不移动,否则进行状态更新。
在这里插入图片描述
Bean移动的速度每帧为4,即三角形的斜边长为4,经过简单的换算可以得到x轴、y轴的移动距离如下图所示。
在这里插入图片描述
同时限定了bean的上下左右移动范围,如果超出范围,会将bean重新退回规定区域内。
在这里插入图片描述

4.增加计分板功能

首先添加UI控件label作为得分板。
在这里插入图片描述
添加得分逻辑,每一次碰撞检测成功时说明吃到球了,可以进行加分。根据球的颜色不同,会增加不同的分数。(白球1分,红球2分,绿球3分)
每次得分后更新得分板。
在这里插入图片描述
效果如图所示
在这里插入图片描述

5.增加 UI 登录界面(含 Play 按钮) (10分)

首先添加开始的界面
在这里插入图片描述
并且绑定点击效果,即跳转到游戏界面
在这里插入图片描述
在AppDelegate.cpp中将首场景设置为MyFirstScene
在这里插入图片描述
具体效果见视频

6.增加Replay按钮(10分)

Replay条件设置为当得分 > 10分时,游戏挑战成功
实现方式是在update中检查score是否大于10分,如果是,则暂停游戏画面(否则球仍然会下落),并且展示游戏成功的提示。
在这里插入图片描述
接着在游戏底部添加replay按钮,并为其绑定相对应的函数。
在这里插入图片描述
函数部分将分数归零,重置画面并继续游戏画面。
在这里插入图片描述
在这里插入图片描述

7.优化游戏(5分)

  1. 根据摇杆位置更改bean的移动速度。
    首先设置bean的最大移动速度为6
    在这里插入图片描述
    当遥感位置最大(等于半径时),移动速度为最大值,其他情况按比例缩放。
    在这里插入图片描述
    修改bean的移动动画,将默认移动速度修改为由摇杆力度控制
    在这里插入图片描述
    在这里插入图片描述
    (为了方便演示,将成功分数设定为了大于5分)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【计算机游戏开发】游戏交互界面设计 的相关文章

  • 卡尔曼滤波,最最容易理解的讲解.找遍网上就这篇看懂了.

    学习卡尔曼滤波看了4天的文章 硬是没看懂 后来找到了下面的文章一下就看懂了 我对卡尔曼滤波的理解 我认为 卡尔曼滤波就是把统计学应用到了滤波算法上 算法的核心思想是 根据当前的仪器 34 测量值 34 和上一刻的 34 预测量 34 和 3
  • 关于C++多态性的一些总结

    在任何一门面向对象的编程语言中 xff0c 多态性 polymorphism 都是非常重要的一个概念 在面向对象的三大元素中 xff0c 封装使代码的模块化变得简单 xff0c 继承则可以扩展已有的代码 xff0c 而多态则是为了满足接口的
  • 关于2048小游戏项目的一些心得

    这是我学习完标C和Unix C以后做的一个小游戏 xff0c 只能支持字符终端界面 在此将其贴出来 xff0c 希望能够跟大家分享一些心得 以下是我当时写的一个项目文档 61 61 61 61 61 61 61 61 61 61 61 61
  • 蓝牙HC-05与Arduino Pro mini实现蓝牙防远离

    因为最近一些工作学习的需要 xff0c 入手了一个Arduino Pro mini来玩一玩 xff0c 于是就做了一个简易的通过蓝牙实现防远离的手环功能 在学习的过程中受过一些指点 xff0c 所以在此将一些学习过程中的经验心得分享出来 x
  • ELF格式与bss段

    ELF Executable Linkable Format 是Linux系统下的一种可执行可链接文件的格式 xff0c 是COFF格式的变种 在Linux系统中包括了可重定位文件 o文件 xff0c 可执行文件 bin bash文件 xf
  • 程序员必备的书籍有哪些?

    程序员必备书籍之史上最全版 xff01 xff01 xff01 动用了周围一切资源 xff0c 请教了腾讯 阿里等多家大咖 xff0c 综合各个专业研究员的学习经验 xff0c 终于整理好这篇文章 xff01 最全 xff01 最全 xff
  • USB主机是如何检测到设备的插入的呢?

    USB设备的插入检测机制 首先 xff0c 在USB集线器的每个下游端口的D 43 和D 上 xff0c 分别接了一个15K欧姆的下拉电阻到地 这样 xff0c 在集线器的端口悬空时 xff0c 就被这两个下拉电阻拉到了低电平 而在USB设
  • 如何在i.mx6dl开发板上移植udev并实现移动设备的自动挂载

    在整个移植过程中 xff0c 我所使用的操作平台 xff1a host xff1a Ubuntu14 04 LTS board xff1a MCIMX6DL SDP udev 版本 xff1a udev100 一 移植udev 下载 ude
  • 飞思卡尔的i.mx6dl开发板上实现nfs网络文件系统挂载操作指南

    问题描述 xff1a 在MCIMX6DL SDP 上实现网络文件挂载 xff0c 要求从emmc 中启动uboot 和kernel xff0c 从网络上挂载根文件系统 操作平台 xff1a host xff1a Ubuntu14 04LTS
  • 如何修改Linux开启进度条的图片

    最近因为工作需要 xff0c 需要将Linux启动时的开机进度条背景修改为公司logo xff0c 并将进度条转换为自己的动画 这里说明一下 xff0c psplash是Linux下的一款开源软件 xff0c 可以在嵌入式产品中显示开机进度
  • 如何修改Linux开机启动logo并使其全屏显示?

    1 制作开机启动logo的图片 my image png 61 61 gt logo linux clut224 ppm 要求图片的分辨率要和屏幕大小一致 使用如下命令 xff1a pngtopnm my image png gt my i
  • 实现JavaScript分片上传大视频到七牛云实例

    https blog csdn net weixin 34228617 article details 93033483
  • Rust嵌入式编程---动态内存分配器(Vec,String等)

    本教程不是0基础的Rust嵌入式编程 xff0c 需要有一定的Rust裸机编程的基础知识 作为一个比较接近C的例子 xff0c 适合入门 xff0c 代码比较容易理解 本次例子使用的是target 61 thumbv8m main none
  • STM32F103 KEIL 标准库直接添加DSP库

    前言 近期由于比赛需要 xff0c 想要在STM32上移植DSP库进行FFT变换 xff0c 找了很多资料都是利用CUBEMX进行导入的方法 xff0c 本人使用的是标准库 xff0c 对HAL库并不熟悉 xff0c 所以考虑到移植的方便采
  • 最优化方法在图像处理中的应用【5】

    最优化方法在图像处理中的应用 5 分类 xff1a image process optimization 数学 2013 09 23 21 34 42人阅读 评论 0 收藏 举报 目录 43 好吧 xff0c 我想理解下Convex fun
  • VESC电调配置教程

    VESC电调配置教程 简介及硬件环境教程简介软硬件环境第一次的配置步骤更新固件电机参数设置及自动测量 上位机直接驱动电机的方法查看回传数据的方法BUGLIST 简介及硬件环境 教程简介 大家好 xff0c 欢迎阅读本教程 在关节处或者底盘处
  • OpenHarmony轻量级设备xts认证大致流程

    因为最近公司在做openharmony开发板xts认证 xff0c 这里对认证过程和过程中遇到的坑做下记录 xff0c 也给大家探探路 1 开发板适配 OpenHarmony轻量系统的移植比较简单 xff0c 代码中解耦做得非常好 从代码的
  • leo学习系列之七——文档生成rst3和sphinx

    先看看网页在leo中的组织形式 xff1a 详细内容 xff1a 网页后请看 xff1a http leoeditor com tutorial rst3 html 现在开始讲解rst和sphinx 1 xff1a rst和sphinx是什

随机推荐

  • excel数据对比-----查找两列(表)的相同数据

    原创作品 xff0c 允许转载 xff0c 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http xueli blog 51cto com 3325186 920592 现有两个excel表 xff0c
  • discuz 微社区 您请求的XXXX无法访问 接口错误(ERR02)

    我遇到的情况 xff1a 1 UC可以访问页面 xff0c 用微信报错 2 4G网络下可以访问 xff0c WiFi网络下报错 网上有两种解决方法 xff1a 1 关闭防采集 xff0c 我最终的采用方法 2 default下的mobile
  • 所有文件夹都变成1KB文件夹快捷方式病毒的手动清除方法

    电脑差不多都因使用U盘而感染了病毒 xff0c 其中一个就是Autoran病毒的变种 xff0c 它的症状我就不再描述了 xff0c 另外一个病毒的症状是所有文件夹都变成了1KB文件夹快捷方式 xff0c 各盘无法双击打开 xff08 但右
  • 搜狗高速浏览器2.0使用体验

    2010年 4 月 8 号 xff0c 我们终于迎来了 国内浏览器的后起之秀搜狗高速浏览器2 0 正式版 的 发布 高速真双核引擎 的概念得到了落实 它新增并改进了诸多功能 xff0c 修改了一些bug xff0c 从整体提高 搜狗高速浏览
  • Connection refused错误

    这个问题整了我两天时间 xff0c 现在终于解决了 问题 xff1a 用php 构造http请求访问自身web服务器页面 xff0c 总是报Connection refused 111 错误 显示 xff1a unable to conne
  • GIF89a图片头文件欺骗

    1 什么是GIF89a 一个GIF89a图形文件就是一个根据图形交换格式 xff08 GIF xff09 89a版 xff08 1989年7 月发行 xff09 进行格式化之后的图形 在GIF89a之前还有87a版 xff08 1987年5
  • txt文件导入mysql

    LOAD DATA LOW PRIORITY CONCURRENT LOCAL INFILE 39 file name 39 REPLACE IGNORE INTO TABLE tbl name CHARACTER SET charset
  • 2011 移动开发者大会 记忆中的第一天

    很久没记过流水帐了 平时八点起床的我 xff0c 11月3号六点半就起床了 xff0c 为的是能早早赶到2011中国移动开发者大会现场 一下公交车就快速走向国家会议中心 本以为我是早到的 xff0c 结果大门口就围了一堆一堆照相的人 进入会
  • mac下终端无法使用数字小键盘的解决方案

    终端下 偏好设置 xff0d 高级 xff0d xff08 去掉 xff09 允许VT100应用程序小键盘模式
  • JAVA中final的用法详解

    1 修饰基本变量的时候 xff0c 必须要有初始值 2 修饰数组等的时候 xff0c 地址不能修改 xff0c 但是对象本身的属性可以修改 span class token keyword final span span class tok
  • Mac Eclipse Failed to load JavaHL Library.

    转自 xff1a http blog csdn net wy10207010219 article details 42294293 写这一篇前我想发表一下感慨 xff1a 你所害怕的事 xff0c 你想要逃避的事 xff0c 在将来的某个
  • Jetson TX2更换软件源

    本文转自 xff1a https blog csdn net qlulibin article details 80271096 TX2的软件源为国外服务器 xff0c 网速会很慢 xff0c 需要换国内的ARM源 备份 etc lib路径
  • 工作一年回忆录

    7月8号跟公司签订劳动合同开始至今已有一周年了 xff0c 是时候坐下想想自己活了些什么东东 这里叙述的都是工作技术记录过程 1 工作环境搭建配置的学习 使用的工具 xff1a sts maven svn tomcat mysql 技术 x
  • 镜头畸变现象及其校正方法

    摄像机校准一般采用小孔成像模型 xff0c 理想的小孔模型是线性模型 xff0c 但是由于存在镜头畸变等原因 xff0c 线性模型通常要加上一些内部参数 xff0c 变成非线性模型 现对产生这一现象的原理以及解决方法进行整理 xff0c 如
  • 【FreeRTOS学习计划】第三节 数据结构—列表与列表项

    本节的目标 我们想从0到1开始实现FreeRTOS xff0c 就需要弄懂列表和列表项的操作 xff0c 因为在FreeRTOS中存在着大量的基础数据结构列表和列表项的操作 FreeRTOS源码里注释的list和list item翻译过来就
  • 【FreeRTOS学习计划】第四节 任务的定义与任务切换的实现

    本节目标 本节属于基础中的基础 xff0c 必须要学会创建任务 xff0c 并重点掌握任务是如何切换的 因为在FreeRTOS任务的切换是由汇编代码来完成的 xff0c 所以代码看起来比较难懂 xff0c 我们耐心细看 本小节我们会创建两个
  • 【FreeRTOS学习计划】 第六节 空闲任务与阻塞延时的实现

    本节目标 我们在第四节任务的定义与任务切换的实现中 xff0c 任务体内的延时用的是软件延时 xff0c 即还是让 CPU 空等来达到延时的效果 使用 RTOS 的很大优势就是榨干 CPU 的性能 xff0c 永远不能让它闲着 xff0c
  • ROS学习笔记(一)ROS安装和helloworld

    ROS学习笔记 xff08 一 xff09 ROS安装和helloworld 文章目录 一 ros安装及测试1 打开ubuntu软件和更新 xff0c 进行如下设置2 设置安装源3 设置安装密钥4 更新软件源5 安装ros6 添加命令7 初
  • 网络管理协议 SNMP V3安装配置

    简单网络管理协议 xff08 SNMP xff09 是常见的一种监控手段 xff0c 目前snmp定义了三个版本的网络管理协议 xff1a SNMP v1 xff0c SNMP v2c xff0c SNMP v3 SNMP v1 xff0c
  • 【计算机游戏开发】游戏交互界面设计

    github项目地址 一 实验目的与要求 熟悉交互界面设计原理 了解Cocos2d x中的用户交互 触摸事件 碰撞检测机制 二 实验内容与方法 完成游戏编译 50分 仿照实验一 英雄快跑 实验 xff0c 将教材源码和素材文件复制到自己的项