百威黑客马拉松实记

Unity官方和百威举行的黑客马拉松,10月9日17:00-11日19:00


在百威黑客马拉松,基于XKTV的设备二次开发,团队项目多人打地鼠游戏;

IDpatch 收集,票选出自己支持的ideal。现场组队,我的团队有李卓(ideal 提出者),潘晋,沈晨骥,(2人同事),蒋先利(潘晋前同事)。

想法丰富阶段,利用百威的XKTVTable,做多人打地鼠,微信接入,出现地雷,点击到的人喝酒,抱着百威的瓶盖出现,要点击2次。点击完,翻盘效果,点一下出现人的头像。


 [四号项目,打地鼠游戏]这是一个打地鼠游戏。多人游戏并能够促进玩家互动,地鼠数目和出现频率与玩家数相关。在游戏过程中,一个个不同的地鼠不时冒出。有的抱着玩家的微信头像,被击中后对应的玩家会被扣分。 有的抱着炸弹冒出,被击中后会提示饮酒惩罚。头顶着百威瓶盖的地鼠需要击中两次才计分,要打到地鼠,那就打开百威的瓶盖吧。规则简单,上手快。快节奏,能够迅速结束一场并开始下一场游戏,一局1分钟左右,头像被击中次数多者喝酒。 



分工大致如下,(分工不是定死的,当然鼓励大家讨论、合作)
李卓:定义具体游戏规则细节,研究百威的SDK,和百威的桌面整合,添加桌面按钮,进入游戏等。
朱涛:研究SDK,侧重于用户微信接入,采集头像等;
潘总:设计地鼠的冒出(冒出的速度,停留的时间等),设计 hide-show-transient 状态机等
蒋总:设计UI
Tony:设计击中后的事件(包括计分、动画等),以及如何结束。

目前的开发计划:
》地鼠洞: 3x5 = 15个
》打中头顶着炸弹的地鼠暂停游戏,播放魔鬼嘲笑声音,打中的人喝酒!
(打的过程中可能太乱,看不清谁打的可以大家全部喝酒,这样酒水消费量更大)

有时间的话做以下功能:
》阵营战
》难度选择,或者自动升级难度,越玩越快,加快冒出速度,缩短停留时间 

我遇到的问题,Texture转sprite。

transform.FindChild("root/head").GetComponent<Image>().sprite = Sprite.Create(item.headTexture
                        , new Rect(0, 0, item.headTexture.width, item.headTexture.height), Vector2.zero);
<pre name="code" class="csharp"><span style="font-family:Arial, Helvetica, sans-serif;">XKTV的应用是一个很大的wind7系统,跑的Unity应用程序,而我们开发的游戏是基于unity的二次开发。</span>
<span style="font-family:Arial, Helvetica, sans-serif;">
</span>
<span style="font-family:Arial, Helvetica, sans-serif;">游戏展示截图</span>
 

XKTV是一块支持多点触控的设备,同时支持40个点。可同时支持多个应用一起使用,只要应用设成窗体的。

设备如下图,请忽略本人


XKTV的sdk的熟悉花了很久。

用monobase 替换原来的MonoBehaviour。

百威XKTVTable技术负责人,仿造NGUI,写了个TableTools.AddChild(game,obj);
Resourcesload改为MyApplication.instance.LoadResources。

我个人认为,这是这样开发的,一个是系统Camera,一个是APPRootCamera。在Approot下添加simpleWindow,然后再在上面添加相应的加班,继承至Window,再在simpleWindow上添加root,用来控制窗体的,缩放,移动,拖拽。

总的就是先添加prefab,在prefab上AddComponent<ScriptName>();再在prefab上添加子prefab再添加,script;

这样开发感觉挺麻烦,通常我们开发都script直接挂在prefab上。XKTV是为了未来方便维护,把perfab和script分离,通过LoadResources的方法(相关于Resourcesload)

重新写了方向DoAwake(),Dostart(),DoUpdate()等替换了Awake(),Start(),Update()等方法;

在设计进行代码耦合,一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。

在这个实际项目中,获得微信用户数据,获得最终的排名,以及展示最终得分。PlayerInfoList,是添加到SimpleWindoow对象上的,root是节点,root有脚本控制窗体的操作,放大缩小,拖拽,旋转的操作。Ranking其实空物体,也可以添加一个空的GameObject,添加上Ranking.cs脚本,Ranking使用Rank的Prefab生成每个得分。如下图。

开发时间54小时,完成度接近90%,在微信接入这块,没办法做测试。权限问题。

通宵了一个晚上了,11日早中饭没吃。到评审结果,才感觉饿和累。这段经历很有意思。有些机会还想参加类似的活动。

晚上一起吃的晚饭,最终大奖被一个团队获得,3250的独轮车,我们获得二等奖调酒器,价值3百多。

附上报道http://mp.weixin.qq.com/s?__biz=MjM5NDAzOTQwMA==&mid=218959627&idx=1&sn=9350721a71c941914b61b9df70ec43d0&scene=2&srcid=1016KJMJNH6zVv34mCz4JAoi&from=timeline&isappinstalled=0#rd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值