段代码来实现的。最后使用run()函数来实现图片的动画显示。先计算一下图片的位置,在横坐标上currentX=screenWidth/2-bm.getWidth()/2,计算出屏幕的中间坐标,还有图片的中间坐标;在纵坐边上currentY=screenHeight/2-bm.getHeight()/2获得图片的纵坐标还有屏幕的纵坐标。这样做的目的是让图片进行居中显示,美观。最后动态的更改图片的透明度的值并且不断的重绘来实现动画的效果。还有判断是判断图片是不是原来的图片,如果不是原来的图片,而是重新放里面的新图片,则图片动画需要多等一会。
还有用到了画布,首先是画布的获取canvas=myholder.lockCanvas(),然后是在画布上绘图锁定画布,myholder.unlockCanvasandPost(canvas)。
动画播放完毕后,主动转到主菜单界面,再进行其他的操作。
4.1.3 按钮主页面
MainMenuButton和MainMenuSurfaceView类这两个类主要实现了主菜单界面上面的一些功能的实现。主要由背景界面和一些界面上的按钮。按钮主要有开始游戏,背景音乐,音效的设置和积分榜。当点击按钮时,就会转到相应的页面。
MainMenuSurfaceView主要实现了游戏开始,音乐开关,积分榜这几个功能的实现,当点击设置音效时,就会进入到音乐开和音效开这个就是在MainMenuButton中实现的。
主页面背景的设置。首先是背景图片的定义,然后是背景图片的引用。在函数onDraw(Canvas canvas)中对背景图片进行绘制,通过canvas.drawColor(Color.WHITE)和canvas.drawBitmap(bgBitmap,0,0,paint)来实现的。在主页面上面还有两个虚拟按钮,也是通过这种方式绘出来的。在这个函数中焦点的设置也是非常重要的,设置焦点,并且设置为可触控焦点。如果没有设置可触控焦点,当按键被按下时,就不会有响应,原因就是没有设置当前的View获取焦点。焦点主要就是告诉系统,现在这个试图需要与用户交互,让系统来监听此视图。焦点的设置方法为setFocusable(true)来实现的,可触控焦点为setFocusableInTouchMode(true)。其他一些按钮也是通过这种方法实现的,但是触屏监听的实现是通过onTouchEvent()函数实现的。
首先是当有按下的动作时,获取该点的相应的坐标,通过event.getX()和event.getY(),这两个函数主要是获取触屏时该点的坐标。其次是判断该点的坐标是属于哪一个动作范围,并转移到相应的函数中去实现该动作。也就是通过Event.getAction()函数,去实现相应的动作。但按下的动作抬起时,startGameBtn.switchOff(),soundBtn.switchOff()和highScoreBtn.switchoff函数关闭所有的按钮,也就是停止了所有的操作。
为了游戏的美观,所有的图片都打开抗锯齿,并且通过函数把相应的按钮放置到主页面的相关位置。
用到的相关的线程的函数有craetAllThreads(),startAllThreads()和stopAllthreads().
SurfaceHolder类的实例,此类提供控制SurfaceView的大小,格式等,并且主要用于
上一篇:
基于单片机的温度控制器
下一篇:
试论APP广告在手机中的应用