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/

  • 相关阅读:
    LeetCode 42. Trapping Rain Water
    LeetCode 209. Minimum Size Subarray Sum
    LeetCode 50. Pow(x, n)
    LeetCode 80. Remove Duplicates from Sorted Array II
    Window10 激活
    Premiere 关键帧缩放
    AE 「酷酷的藤」特效字幕制作方法
    51Talk第一天 培训系列1
    Premiere 视频转场
    Premiere 暴徒生活Thug Life
  • 原文地址:https://www.cnblogs.com/chaohi/p/10766687.html
Copyright © 2011-2022 走看看