Canvas类画布范围问题....

liun_li 2010-09-01 03:36:04
做了一个滚动的小球程序,碰到障碍物会自动弹回,但是小球会滚动到下图的灰色部分,也就是说,这也属于画布的范围,有什么办法,能准确计算出灰色部分的高度.或者,让画面范围止于灰色部分..

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

import com.sun.perseus.parser.ColorParser;

public class bool extends MIDlet {
Display dis;
Can ca;
public bool() {
dis=Display.getDisplay(this);
ca=new Can();
ca.setTitle("会滚动的小球");
dis.setCurrent(ca);
new Thread(ca).start();
}
protected void startApp() throws MIDletStateChangeException {

}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自动生成方法存根

}

protected void pauseApp() {
// TODO 自动生成方法存根

}

class Can extends Canvas implements Runnable
{
int x=0,y=0;
int Width=this.getWidth();
int Heigth=this.getHeight();
int dx=8,dy=8;
final int r=7;
Can()
{
//setFullScreenMode(true);
}
void move()
{
x=x+dx;
y=y+dy;
if(x+r>=Width)
{
x=Width-r;
dx=-dx;
}
if(x-r<0)
{
x=0;
dx=-dx;
}
if(y+r>=Heigth)
{

y=Heigth-r;
dy=-dy;
}
if(y-r<0)
{
y=0;
dy=-dy;
}
}

protected void paint(Graphics g) {
g.setColor(250,250,250);
g.fillRect(0, 0, Width, Heigth);
move();
g.setColor(100,255,20);
g.fillRoundRect(x, y, r,r,90,90);
}

public void run() {
while(true)
{
repaint();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}

}

}
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
麦田捕手 2010-09-01
  • 打赏
  • 举报
回复
WTK模拟器屏幕高度问题,首先你要把Canvas设置为全屏模式,还有在wtk的安装目录中wtklib\devices\DefaultColorPhone打开DefaultColorPhone.properties把screen.height=320改为331
liun_li 2010-09-01
  • 打赏
  • 举报
回复
沒人知道嗎..我試過,把標題拿掉就行了,但是為什麼標題存在就不行了呢

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧