zoukankan      html  css  js  c++  java
  • java游戏开发杂谈

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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


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

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

  • 相关阅读:
    bzoj2669 [cqoi2012]局部极小值 状压DP+容斥
    bzoj2560 串珠子 状压DP
    bzoj2004 [Hnoi2010]Bus 公交线路 矩阵快速幂+状压DP
    「校内训练 2019-04-23」越野赛车问题 动态dp+树的直径
    bzoj5210 最大连通子块和 动态 DP + 堆
    动态 DP 学习笔记
    bzoj4987 Tree 树上背包
    bzoj1190 [HNOI2007]梦幻岛宝珠 背包
    bzoj1004 [HNOI2008]Cards Burnside 引理+背包
    bzoj4922 [Lydsy1706月赛]Karp-de-Chant Number 贪心+背包
  • 原文地址:https://www.cnblogs.com/chaohi/p/10766687.html
Copyright © 2011-2022 走看看