【ios】课设小游戏报告文档

一、 功能说明

我们的课设应用名称是“点球大战”,点球大战介绍:

“点球大战”是足球运动比赛规则之一。指在淘汰赛中踢出平局时,用来决定胜负的方法。
点球大战开始前双方各自先确定好本队罚点球的队员和出场顺序,通常通过猜硬币的方式决定由哪一方先罚。比赛开始后,双方轮流罚球,共罚5轮,5轮结束之后以累计进球数多的一方获胜。
如果5轮罚球结束双方仍未分出胜负,则采取“突然死亡法”进行加罚:即双方继续互罚,直到出现某一轮结束时一方罚进而另一方未罚进的局面,则由罚进的一方取得胜利。
期间只有当一方球队所有11名球员全部依次罚过一次球后,才可以安排已经罚过球的队员重新开始轮流罚球。

项目源码:https://gitee.com/gaode-8/ios-lesson-design-games
演示视频:https://www.bilibili.com/video/BV173411d7hm/?vd_source=1fe29350b37642fa583f709b9ae44b35

1.1 修改昵称

本应用是一款点球游戏,用户可以点击主界面的设置按钮,进入设置界面,然后点击昵称旁边的“修改”,在弹出框中输入新昵称

1.2 选择是否开启背景音乐

用户可以点击主界面的设置按钮,进入设置界面,然后点击音效旁边的Switch按钮,选择在进行游戏时是否开启背景音乐。

1.3 退出应用

用户在主界面点击退出按钮,即可退出应用

1.4 移动足球目标准心

在游戏界面,用户可以点击屏幕,上下左右移动足球的目标准心,同时足球也会跟随水平移动。

1.5 足球射门

再调整好准心之后,用户可以点击“射门”的按钮,在躲避对方球员的同时,将足球射入球门;如果没有射入球门,或者球被对方球员或者守门员捕获,则视为丢球。

1.6 游戏结算

在足球比赛中,点球的次数一般是5次。所以在游戏中,当射门次数达到5次之后,便会结束游戏,进入结算界面。如果进球数大于丢球数,则表示这场比赛胜利;如果丢球数大于进球数,则视为这场比赛失败。

二、界面设计说明

2.1 图标设计
应用的中文名称为“点球大战”,英文名称为“Penalty Kick”,形状是一个足球员的剪影和一个足球的结合,表示足球即将被射门的瞬间,如图1所示
在这里插入图片描述

图1 应用图标

图2 AppIcon
2.2 启动界面设计
启动界面是一张2022卡塔尔世界杯标志和本应用中文名称与图标的结合,如
在这里插入图片描述
图3所示

图3 应用启动界面
2.3 主界面设计
主界面包括一张背景图片,一个StackView里面有三个按钮,分别是“开始游戏”,“设置”,“退出”,如图4所示。点击“开始游戏”,即可进入游戏界面;点击“设置”,即可进入设置界面,进行相关信息的设计;点击“退出”,就会结束并退出应用。
在这里插入图片描述

图4 主界面
2.3 设置界面设计
设置界面的左上角是“返回按钮”,点击返回会回到主界面,如图5所示。中间部分,第一行显示昵称和修改按钮,点击修改,会弹出修改框,可以修改昵称如图6所示。第二行是音效的按钮,默认是开启,即会在进行游戏的时候,播放2022世界杯宣传曲之一。第三行是游戏操作的说明:躲避球员,提进球网;进球数大于丢球数,即胜利,反之失败。
在这里插入图片描述

图5 设计界面
在这里插入图片描述

图6 修改昵称界面
2.4 游戏界面设计
游戏界面如图7所示,游戏界面的左上角是进球和丢球数量的统计;游戏界面的右上角是射门机会的统计,一共有5次机会,未使用次数呈棕色,已使用次数呈蓝色;中间是射门的球网,和对方守门员和干扰球员。下方是足球的目标准心和足球;左下角是射门的按钮。

在这里插入图片描述

图7 游戏界面
2.5 结算界面设计
如果进球数大于丢球数,会提示用户“恭喜,你赢了!”,并显示用户的进球数和丢球数,如图8所示;
如果进球数小于丢球数,会提示用户“很遗憾,你输了!”,并显示用户的进球数和丢球数,如图9所示;
在这里插入图片描述

图8 用户胜利提示
在这里插入图片描述

图9 用户失败提示

三、连接说明

3.1 主界面和设置界面连接
主界面和设置界面通过主界面的“设置”按钮,连接到SetUpViewController;
设置界面和主界面通过设置界面的“返回”按钮,以模态的方式连接到主界面的Exit
3.2 主界面和游戏界面连接
主界面和设置界面通过主界面的“开始游戏”按钮,连接到GameViewController;
如图10所示

图10 界面连接示意

四、场景切换说明

4.1 主界面和设置界面切换
主界面和设置界面是通过按钮,来实现多场景之间的切换;设置界面通过返回按钮,返沪原来的场景。
4.2 主界面和游戏界面切换
主页面和游戏界面也是通过按钮连接游戏界面的GameViewCOntroller来实现不同场景之间的切换
4.3 游戏界面和结算界面切换
游戏界面和结算界面是同通过代码逻辑,当射门次数达到5次的时候,就加载结算的提示
4.4 结算界面和主界面切换
当结算界面展示之后,会自动重新创建加载主界面
let storyboard = UIStoryboard(name: “Main”, bundle: nil)
let vc = storyboard.instantiateViewController(identifier: “home”) as UIViewController
self.view?.window?.rootViewController = vc

五、应用逻辑说明

5.1 交互逻辑
用户进入应用后,首先来到主界面;在主界面用户可以选择“开始游戏”,即可开始一局新的游戏;
然后用户可以选择“设置”,进行用户昵称的修改和音效的选择,以及查看游戏的操作说明
用户开可以通过主界面,退出游戏。
5.2 游戏加载逻辑
当我们进入GameViewController之后,会首先根据HomeViewController传递的参数isUseMsic(是否选择音效),来决定是否播放背景音乐。
然后会加载游戏界面的相关元素,例如足球,背景以及射门次数等。
加载完相关元素之后,便会生成阻碍射门的对方守门员和与运动员。然后用户便可以进行足球站准心的调整,开始游戏操作。
5.3 游戏处理逻辑
用户调整好准心之后,便可以点击“射门”按钮,射出足球;逻辑控制类会首先找到准心的位置,然后遍历准心位置上的所有节点SKNode,第一个节点,便是目标节点。
如果目标节点是运动员player,表示球被运动员捕获了,会被运动员或者守门员带走,会播放“失败”的音效,同时射门次数进行减一,丢球次数加一的操作。
如果目标节点是背景background,表示球踢歪了,会播放“失败”的音效,同时射门次数进行减一,丢球次数加一的操作。
如果目标节点是球网ballframe ,则表示球踢进了球网,会播放“成功”的音效,同时射门次数进行减一,进球次数加一的操作。
然后球会恢复到原来的位置,用户可以进行下一次操作

5.4 游戏结算逻辑
当用户神门次数达到上限5次之后,回开始进行游戏的结算,判断进球数课丢球数的大小,并显示响应的结果。如果进球数大于丢球数,会提示用户“恭喜,你赢了!”,并显示用户的进球数和丢球数量。如果进球数小于丢球数,会提示用户“很遗憾,你输了!”,并显示用户的进球数和丢球数。

六、相关技术说明

6.1 UIKit
UIKit 框架提供了为 iOS 和 Apple tvOS 构建 App 所需的核心对象。您可以使用这些对象在屏幕上显示内容,与这类内容进行互动,以及管理与系统的互动。App 依赖 UIKit 来实现基本行为,并且 UIKit 为开发者提供了多种方式,可以根据自身的具体需求来自定这类行为。
UIKit 提供了 App 所需的许多核心对象,其中包括实现以下功能的对象:与系统互动、运行 App 的主事件循环,以及在屏幕上显示内容。您可以直接套用其中的大多数对象,或者只进行细微修改。了解要修改哪些对象以及何时进行修改,对于实现 App 而言至关重要。
UIKit App 的结构基于“模型-视图-控制器 (MVC)”设计模式,其中对象按用途划分。模型对象管理 App 的数据和业务逻辑。视图对象提供数据的直观展示。控制器对象充当模型和视图对象之间的桥梁,在适当的时候在这两者之间移动数据。
6.2 SpriteKit
SpriteKit一个用来开发2D游戏的框架。整个游戏由场景组成,即SKScene的子类。然后让SKView呈现场景,当然在各个场景之间是可以切换的。在每个场景中都是SpriteKit节点,每个节点都有父节点,也可以有子节点。所有节点的根节点都是SKScene。不同的节点有不同的功能。
SkNode可以添加类似物理世界的PhysicBody,它具有重力,大小,方向等类似真实世界的属性,可以帮助开发者道道自己想要的效果。

七、总结

本次我们结合课堂所学知识和本次的主题:世界杯。做出了这个“点球大战”的小游戏,游戏基本功能完善,界面简洁美观,游戏规则简单但是又不失可玩性。
通过这次练习,我们进一步掌握了ios开发的基本流程,从需求分析,到界面设计,共鞥实现,以及代码测试等。
其次,我们掌握了通过相关工具协作开发,互相配合的开发过程。熟悉了相关开发工具Xcode的使用,以及界面UI设计工具的基本使用。

八、参考资料

  1. 视频资料:SpriteKit简介
    https://www.bilibili.com/video/BV1FD4y1m731/?p=2&spm_id_from=pageDriver&vd_source=1fe29350b37642fa583f709b9ae44b35
  2. 视频资料:Spritekit 游戏开发教程
    https://www.bilibili.com/video/BV1VJ411K79C/?spm_id_from=333.999.0.0&vd_source=1fe29350b37642fa583f709b9ae44b3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值