您的位置:首页 > 其它

libgdx游戏引擎教程实战篇(四)移植俄罗斯方块(附源码)

2013-03-11 14:23 806 查看
转自:http://www.apkbus.com/android-58418-1-1.html

SDK版俄罗斯方块源码下载(我们移植工作的素材)


Tetris_slide.rar(537.04
KB, 下载次数: 34)

2012-7-10 22:08 上传
点击文件名下载附件

下载积分: 下载豆 -2

实战一到五移植后的源码:


libgdxTetris.rar(3.93
MB, 下载次数: 100)

2012-7-10 22:18 上传
点击文件名下载附件

下载积分: 下载豆 -2

我们接着实战三继续我们的移植工作(今晚我似乎讲了好几次这个话了=。=)

第三讲结束的时候我们的移植工作已经做了大半了。这个时候的程序已经可以运行了。也可以看到方块在动了...这是真的,相信我...

[align=left]不过我们还是没有做一个工作,就是捕捉触摸事件,在libgdx版本的俄罗斯方块中,我们不再捕捉键盘事件来控制方块,完全采用触摸的形式来控制。控制方式如下图所示,整个方块表示整个手机屏幕。[/align]



2012-7-10 22:00 上传
下载附件(24.46 KB)

[align=left]还是采用我曾经说过的,在GameScreen的reder()函数中捕捉触摸事件的方法。[/align]

if(Gdx.input.isTouched()){

int x=Gdx.input.getX();

int y=Gdx.input.getY();

if(x<(min/2)&&((y/x)>(max/min))&&y<(max-max*x/min)){

toLeft();

}

if(x>(min/2)&&(y/x<(max/min))&&y>(max-max*x/min)){

toRight();

}

if(((y/x)<(max/min))&&y<(max-max*x/min)){

roll();

}

if(((y/x)>(max/min))&&y>(max-max*x/min)){

toBelow();

}

}

复制代码
[align=left]当然这里还有一个问题,就像我们前几讲也曾经提到过的,render()函数运行得非常快,我们触摸一次的时间相对较长,那么就可能捕捉到很多次事件,那么该怎么办呢?我们可以在GameScreen.java里设置四个int型数:[/align]

int left;

int right;

int roll;

int below;

复制代码
[align=left]然后把以上判断触摸事件的代码改为:[/align]

if(Gdx.input.isTouched()){

int x=Gdx.input.getX();

int y=Gdx.input.getY();

if(x<(min/2)&&((y/x)>(max/min))&&y<(max-max*x/min)){

left++;

//触摸检测到事件并做出相应的频率变为原来的三分之一

if(left%3==0)

toLeft();

}

if(x>(min/2)&&(y/x<(max/min))&&y>(max-max*x/min)){

right++;

//触摸检测到事件并做出相应的频率变为原来的三分之一

if(right%3==0)

toRight();

}

if(((y/x)<(max/min))&&y<(max-max*x/min)){

roll++;

//触摸检测到事件并做出相应的频率变为原来的三分之一

if(roll%3==0)

roll();

}

if(((y/x)>(max/min))&&y>(max-max*x/min)){

below++;

//触摸检测到事件并做出相应的频率变为原来的二分之一 ,因为下降的操作灵敏一些比较好

if(below%2==0)

toBelow();

}

}

复制代码

[align=left]我们用这个很简单的办法就降低了事件实际的捕获频率,[/align]
[align=left]让游戏操作更自然一些,当然,灵敏度参数可以自行调整。[/align]

[align=left]这样,初步的移植就完成了。当然我们现在还有一些移植进来的函数没有用到,比如[/align]

[align=left]save(),read()函数等等,因为这些函数都是保存进度,读取进度的时候用的,我们先实现游戏功能,其他的我们一步步来。[/align]

其实我写到这个时候已经迫不及待偷偷地自己运行了一下,还好...可以运行...我们暂时先不看看效果图,看看libgdx版俄罗斯方块移植到现在的代码吧:



2012-7-10 22:06 上传
下载附件(39.53 KB)

算了,还是看看效果图吧,我也有点忍不住了。当然为了达到以下的效果,比如在GameScreen中加入背景图什么的小的改动我就没有在这里细说,大家可以看看代码。这一讲我们就把目前为止移植好了的源码放上来给大家看看好了。下一讲我们将做目前整个移植工作做一个总结,贴出各部分的完整代码并对各部分的功能再做一个解释。



2012-7-10 22:10 上传
下载附件(138.64 KB)

按一下下面的那个按钮...



2012-7-10 22:09 上传
下载附件(173.01 KB)

其实右上角有分数打印出来啦~!就是小了点...我懒了..没有把字体改大一点...大家将就看看吧=。=
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐