求一段J2ME代码修改?
publicclassMIDPCanvasextendsCanvasimplementsCommandListener,Runnable{publicMIDPCanvas...
public class MIDPCanvas extends Canvas implements CommandListener, Runnable {
public MIDPCanvas() {
try {
setCommandListener(this);
addCommand(new Command("Exit", Command.EXIT, 1));
} catch (Exception e) {
e.printStackTrace();
}
Thread t = new Thread(this);
t.start();
}
public void paint(Graphics g) {
g.setColor(150);
g.fillRect(0, 0, 240, 320);
g.setColor(0xFF0000);
g.fillRect(0, 0, 10, 10);
}
public void run() {
while (true) {
try {
Thread.sleep(100);
} catch (Exception ex) {
}
repaint();
}
}
我的目的只是想让一个红色的方块从左上向右下移动 展开
public MIDPCanvas() {
try {
setCommandListener(this);
addCommand(new Command("Exit", Command.EXIT, 1));
} catch (Exception e) {
e.printStackTrace();
}
Thread t = new Thread(this);
t.start();
}
public void paint(Graphics g) {
g.setColor(150);
g.fillRect(0, 0, 240, 320);
g.setColor(0xFF0000);
g.fillRect(0, 0, 10, 10);
}
public void run() {
while (true) {
try {
Thread.sleep(100);
} catch (Exception ex) {
}
repaint();
}
}
我的目的只是想让一个红色的方块从左上向右下移动 展开
2个回答
展开全部
g.setColor(0xFF0000);
g.fillRect(0, 0, 10, 10);
这个部分,你的X和Y始终是0,不会动得,设置一个变量x,y
在run()的while循环里面自加就行了。
g.fillRect(0, 0, 10, 10);
这个部分,你的X和Y始终是0,不会动得,设置一个变量x,y
在run()的while循环里面自加就行了。
追问
太感谢了,我现在要想让方块碰到屏幕边反弹(折射反弹),这应该怎么做,模拟器的屏幕是320、240的
追答
这个就需要记录球的方向,上、下、左、右四个方向,上下就是y轴方向,左右就是X轴方向,在每次循环中对四个方向进行判断,如果X加上矩形的宽度超出320,或者x小于0,就把X轴设置为反方向,同理Y轴也是一样
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
private int w, h;
private int direction = 1;
private int blockX,blockY;
private int blockW = 10, blockH = 10;
private final int backgroundColor = 150;
private final int blockColor = 0xFF0000;
public void sizeChanged(int w, int h)
{
this.w = w;
this.h = h;
}
public void paint(Graphics g)
{
if (blockY + blockH > h)
direction = -1;
else if (blockY < 0)
{
direction = 1;
}
blockY = (direction + blockY);
blockX = blockY * w / h;// w/h高宽的1个单位比。
g.setColor(backgroundColor);
g.fillRect(0, 0, w, h);
g.setColor(blockColor);
g.fillRect(blockX, blockY, blockW, blockH);
}
public void run()
{
while (true)
{
try
{
Thread.sleep(100);
}
catch (Exception ex)
{
}
repaint();
serviceRepaints();
}
}
private int direction = 1;
private int blockX,blockY;
private int blockW = 10, blockH = 10;
private final int backgroundColor = 150;
private final int blockColor = 0xFF0000;
public void sizeChanged(int w, int h)
{
this.w = w;
this.h = h;
}
public void paint(Graphics g)
{
if (blockY + blockH > h)
direction = -1;
else if (blockY < 0)
{
direction = 1;
}
blockY = (direction + blockY);
blockX = blockY * w / h;// w/h高宽的1个单位比。
g.setColor(backgroundColor);
g.fillRect(0, 0, w, h);
g.setColor(blockColor);
g.fillRect(blockX, blockY, blockW, blockH);
}
public void run()
{
while (true)
{
try
{
Thread.sleep(100);
}
catch (Exception ex)
{
}
repaint();
serviceRepaints();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询