java的paint一些小问题 10

第一。-------------------现在,我要有一张画布是用来做星星的背景的,这些星星是不会动的,用了另外一张画布来画了流星,我这张画布是继承了前面那张画布的,这... 第一。-------------------现在,我要有一张画布是用来做星星的背景的,这些星星是不会动的,用了另外一张画布来画了流星,我这张画布是继承了前面那张画布的,这样一来,在paint函数中就会被覆盖原来的背景星星,也就是不能同时出现了,如果用一张画布来画这些,那么repaint()函数就会不断重画,导致背景不断改变,那么我有什么方法将这些都同时显示出来,我刚刚学,不要太深奥的。
第二。-------------------要两个小球相撞实现反弹的条件是什么,能否说一下。
第三。-------------------小球一碰壁就会变颜色,代码如下
public void paint ( Graphics g )
{
if ( x <= 0 || y <= 0 || x >= 363 || y >= 341 )
{
g.setColor ( new Color ( (int)( Math.random()*255 ),(int)( Math.random()*255 ),(int)( Math.random()*255 ) ) );
}
g.fillOval ( x, y, 20, 20 );
g.fillOval ( i, z, 20, 20 );
}
if是碰壁的条件,可是,结果却是一碰壁就变了颜色,一离开壁就恢复颜色了。求教了。
展开
 我来答
优质内容提供者andy
2015-01-28 · TA获得超过1561个赞
知道大有可为答主
回答量:2551
采纳率:72%
帮助的人:767万
展开全部
第一画流星本来就要不断repaint 第二 这个要判断x y坐标 加上半径如果已经互相在对方范围内就实现反弹 第三 你的条件应该用bool类型的 一碰到墙这个bool值发生变化 接下来用这个bool值做判断就不会立刻恢复颜色了
更多追问追答
追问
第一--------是啊,但是我的背景不想要一直被重画。(用同一张画布的时候)。
第二---------我懂了
第三---------我不明白,是不是当你调用repaint的时候,他会把setColor自动设置为默认颜色?如果是的话,按理说你的也会碰壁后恢复颜色的啊,可是你没有,不明白这些机制。求解释。
追答
那简单你背景 用一张静态图片  新建一个panel专门画星星。。。
第三个 你的意思是离开的时候 需要恢复颜色还是不恢复颜色。。 如果出来的结果 跟你的结果不一样肯定是判断条件出错了 明白吗
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式