Paper Down Hill
一款最多四人参与的、带有独特玩法的肥皂箱赛车计时游戏。
引言
“纸上赛道”是一款2D肥皂箱赛车计时游戏,最多四名玩家可以作为合作团队参与,也可以互相竞争。
该游戏面向“一体化”平台和相应的 “游戏”类别。
概述
游戏开始时,会使用内置摄像头拍摄玩家(最多四人)的三张照片。 这些图像随后将用作游戏中卡丁车驾驶员的头部,如下所示。
主游戏然后由团队选择一系列的比赛。
每个比赛由两个阶段组成,一个5秒的设置阶段,每个人都可以调整卡丁车的形状(车轮的大小、座椅的位置、驾驶员的胖瘦)。
然后随机选择一名驾驶员,他们必须尽力以最快的速度下山,而不会从卡丁车上掉下来。
其他非驾驶玩家可以通过向他们投掷物体来帮助或阻碍驾驶员。
可以找到一个链接到显示部分2D物理效果的视频 这里。
开发
该游戏使用App Game Kit (AGK) v108开发,利用Tier 1命令集。 AGK的基本Tier1语言能够为像我这样的单个开发者实现快速开发,同时也能够轻松访问硬件内的更深层功能,例如多点触控、加速度计、陀螺仪等。
例如;以下几行代码涵盖了图像捕获和处理:
//take player photos dim NewHeadImg[2] as integer dim ModHeadImg[4,2] as integer ImagesTaken = 0 if GetCameraExists()=1 for p=1 to totalplayers //use camera repeat repeat ShowImageCaptureScreen() repeat sync() until ISCAPTURINGIMAGE() =0 NewHeadImg[ImagesTaken]=GETCAPTUREDIMAGE() until NewHeadImg[ImagesTaken]>0 ImagesTaken = ImagesTaken+1 until ImagesTaken>2 //mod images ImagesTaken=0 repeat HeadMemBlk = CreateMemblockFromImage(NewHeadImg[ImagesTaken]) imgW = GetMemblockInt(HeadMemBlk,0) imgH = GetMemblockInt(HeadMemBlk,4) //ellipse values a# = 120.0 b# = 200.0 for row = 0 to imgH-1 for col = 0 to imgW-1 r# = abs(row-(imgH/2.0)) if (1.0-((r#/b#)^2))>0.0 clim = trunc(sqrt((1.0-((r#/b#)^2))*(a#^2))) climlo = (imgw/2)-clim climhi = (imgw/2)+clim if (row<(0.125*imgH) or row>(0.875*imgH) or col<(climlo) or col>(climhi)) rem *** Calculate offset to alpha value *** offset = row*imgW*4+col*4+15 SetMemblockByte(HeadMemBlk,offset,0) endif else offset = row*imgW*4+col*4+15 SetMemblockByte(HeadMemBlk,offset,0) endif next col next row ModHeadImg[p,ImagesTaken] = CreateImageFromMemblock(HeadMemBlk) ImagesTaken = ImagesTaken+1 until ImagesTaken>2 next p endif
游戏初始关卡已经构建完成,但仍有很大一部分工作要做,例如大部分美术资源、多人游戏和多点触控的实现。 这个想法相对简单,有很多扩展空间,例如绘制自己的山丘或卡丁车组件。
关注点
该游戏将利用AIO的多点触控功能,允许玩家直接拖动和抛洒他们自己的精灵到屏幕上。
该游戏还利用内置网页游戏将玩家置于游戏中。
历史
[2013.07.27] - 初始草稿。