java游戏开发杂谈 - 界面刷新、坐标系

之前几篇博客里的例子,大家运行过的话,就能看出来,界面是需要刷新的。

JPanel里的绘制方法是paintComponent,界面上的东西都是这个方法画出来的。

JPanel对象有一个repaint方法,从字面意思大家也看的懂,这个是重绘方法。

可以粗浅的这么认为:每调用一次repaint,就会执行一次paintComponent


例如:界面上有一个方块,位置在坐标(20,20)处,

按一下向右的方向键,需要方块往右移动一个像素,变为坐标(21,20)

那么在按键监听方法里,判断按下的如果是向右方向键,就把方块的横坐标加1

然后调用repaint,重新绘制后,方块的位置就右移了一个像素。

注意:虽然只是方块动了,但整个画布都重新绘制,否则方块就是增大,而非右移。


再说一下坐标系,在图形界面开发中,界面的坐标都是以左上角为基准。

左上角就是(0,0),往右是横坐标递增,往下是纵坐标递增。

一个界面的大小是多大,右下角的坐标值就是多少。


想象一个黑板,在上面画一个方块,现在需要把它右移一下,

怎么做呢,先擦掉,在靠右的地方重新画一次,对吧。

这里的擦掉、重绘,对应的就是JPanel的 repaint 方法!

现在,问题来了,如果我们要方块不停的往右,怎么做呢?

当然就是:不停的让方块横坐标加1、再调用重绘。。

可是,如何让程序不停的运行这个逻辑呢?

那就需要用到线程了,且听下回分解吧。。


本来准备写线程的,突然又觉得,前面几篇贴的代码太多了,可能大家看的累,干脆整一篇纯文字的吧。这篇可能有点水了,台哥作为一个老的掉牙的程序员,有时候也分不清,哪里需要细讲,哪里需要粗略。所以,宁多写十句、不少写一句吧。如果大家都看懂了,并非我讲的好,而是因为,大家很聪明!!

欢迎关注:台哥编程课堂,https://www.cnblogs.com/chaohi/

posted on 2019-04-25 10:15 台哥编程课堂 阅读(...) 评论(...) 编辑 收藏

导航