今天下午准备做一个从游戏返回到主菜单
但是按键了却画面没有改变,本应回到主菜单
找了很久原因,网上各种搜索都没找到
跟踪检查,发现状态机在按键之后就变成了菜单选项
但为什么就绘不出菜单呢
问了一个朋友,给个提示才恍然大悟
原来问题出在绘制地图的setclip(,,,)
绘制了地图后把地图分成了很多块
所以菜单页面被画到其中一个界面
就没有在全界面显示出来
解决办法
在地图画完的最后面加一个setclip(0,0,screenWidth,screenHeight)
目的是让后续的绘图还是覆盖整个手机屏幕
下面是setClip的用法
setClip方法的原理是通过只在屏幕上显示一部分内容,让图片恰好位于该部分的内容显示出来。
setClip的方法就是在屏幕上设置这个“透视孔”,只有位于该孔中的图片内容显示出来。
setClip的方法说明如下
public void setClip(int x, int y, int width, int height)
其中
x——可以显示的矩形区域左上角的x坐标
y——可以显示的举行区域左上角的y坐标
width——矩形的宽度
height——巨型的高度
实际使用示例
g.setClip(10,20,20,30);
g.drawImage(image,10,20,Graphics.LEFT | Graphics.TOP);
则只显示image对象代表的图片中从开始位置,高30,宽20的部分,其余的部分都不显示。
注意:在使用完setClip以后,需要恢复系统的默认设置,使整个屏幕都可以显示:
g.setClip(0,0,this.getWidth(),this.getHeight());