65.9K
CodeProject 正在变化。 阅读更多。
Home

Paper Down Hill

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.75/5 (3投票s)

2013年7月28日

CPOL

2分钟阅读

viewsIcon

8908

一款最多四人参与的、带有独特玩法的肥皂箱赛车计时游戏。

引言

“纸上赛道”是一款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] - 初始草稿。

© . All rights reserved.