寻宝游戏 - 利用iBeacon特性设计的iOS线下寻宝游戏 - 物联网小游戏

本文介绍了一款基于iBeacon技术的iOS线下寻宝游戏的开发过程。作者通过购买7个Beacon设备,分别代表七颗龙珠,玩家需找到所有设备以完成游戏。文中详细阐述了游戏的创建、界面设计、硬件准备、SDK集成及游戏逻辑实现,最终实现了通过监测Beacon距离来寻找龙珠的功能。完整源代码可在GitHub上获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

寻宝游戏 - 利用iBeacon特性设计的iOS线下寻宝游戏

作者简介

科科香,程序员
方向:IoT,方案集成,喜好各种新鲜东东
转载请注明出处

iBeacon简介

iBeacon(下面简称Beacon)是Apple在2013年9月发布的基于iOS7(及以上)的新功能。其工作方式是,配备有低功耗蓝牙(BLE)通信功能的使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软件会根据该ID采取一些行动。

WWDC 14 之后,对 iBeacon 加大了基数支持和对其用于室内地图的应用有个更明确的规划。苹果公司公布了 iBeacon for DevelopersMaps for Developers等专题页面。

想要了解iBeacon的更多信息,见维基百科

游戏简介

将iBeacon设备作为需要寻找的宝物,隐藏于各个地方,玩家需要安装上开发的app,带着手机找寻宝物,集齐宝物,获取奖励,游戏演示视频

Here We Go!

介绍完了背景,进入正题,如何制作这款游戏?

首先,你需要购入Beacon设备(这个游戏是寻找龙珠主题,所以买了7个,什么牌子不说了,有广告嫌疑)。淘宝上可以搜到很多Beacon卖家。

Beacon准备好之后,开始开发,这款游戏只做了iOS版本。

创建项目

在Xcode中创建项目,选择Simple View项目。输入名称dragonball-safari和组织名称。

导入CoreLocation.framework。

创建好项目并添加完库之后,需要删除ViewController.h和ViewController.m两个文件。并且添加几个新的项目文件:

  • TabBarViewController.h
  • TabBarViewController.m
  • SafariViewController.h
  • SafariViewController.m
  • PickerViewController.h
  • PickerViewController.m

整个项目结构如下:
这里写图片描述

在模拟器上运行项目,效果如下。因为现在没有添加任何的视图元素,所以是一个黑屏。

界面

本文主要介绍如何应用iBeacon技术,界面工作在此不做介绍。下图是最后需要展示的界面。
这里写图片描述
这里写图片描述

上述的所有源代码在此下载

寻找龙珠

下载好上述的项目工程,并打开项目运行,你会得到上面展示的界面。下面,我们开始添加iBeacon的部分,让整个游戏开始正常运行。

开始之前,有几个地方先说明一下。

硬件准备

我用的是BrightBeacon的产品(好吧,还是说了厂家,不过选择其他厂家产品也没有影响,Beacon的接口和属性都是通用的,这是因为Apple做了规范),一共买了7个,需要把7个Beacon的Minor值设置成从1到7,分别代表七颗龙珠。否则无法进行游戏。

SDK

因为用的BrightBeacon的产品,所以直接用的他们提供的SDK

下载并将他的SDK和include文件引入项目工程中,如下图。
这里写图片描述

准备工作做完之后,下面开始进行编码。

打开AppDelegate.m文件,引入BRTBeaconSDK.h文件和UserDefaultTool.h文件。自定义一个用于SDK的App Key。这个key需要在BrightBeacon的官方网站上申请。

#import "BRTBeaconSDK.h"
#import "UserDefaultTool.h"

之后注册app,并进行初始化工作。UserDefaultTool这个文件是预先写好的,用于控制龙珠的查找和初始化工作。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [BRTBeaconSDK registerApp:BRT_SDK_KEY onCompletion:^(NSError *error) {
        NSLog(@"%@", error.description);
    }];

    [UserDefaultTool initUserDefaultData];

    return YES;
}

完成这一步之后,运行一下。在模拟器中,App会告知用户需要访问用户的地理位置信息,如果没有打开蓝牙的话,也会提示用户打开蓝牙。是不是很有意思:)
这里写图片描述

注册好应用之后,下面开始监测Beacon吧。

在SafariViewController.m里面,依次加入这些方法。

- (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值