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/

  • 相关阅读:
    typedef
    心目中的编程高手
    截取包含多字节字符的字符串
    Start deltacat Audio Mix Filter
    关于编译环境和DLL的惨痛教训
    【转】自定义Extjs中Grid单元格的显示格式
    Ajax 按需 提交指定字段 以 Json Model 形式 post 到 action
    [转]Log4Net 非常完整的配置。
    【转】Ext.data.Store
    this.getColumnModel is not a function Extjs 如何解决呢? Extjs 导出 到Excel 解决方案问题
  • 原文地址:https://www.cnblogs.com/chaohi/p/10766687.html
Copyright © 2011-2022 走看看