█████████
█┏━━━━━┓█
█★          ★█
█   ☆ up ☆   █
█          █
█ 〖初窥Java〗 █
█ 【虚心学习】 █
█★          ★█
█┗━━━━━┛█
█████████

解决方案 »

  1.   

    我当初觉得是基于类似于MVC的架构。地图相当于一个Model,它有不同的两个view,一个是主界面,另一个是缩略图。不知高手们意下如何。
      

  2.   

    我说楼主,你发问的地方是不是错了?
    CSDN明明有个“游戏讨论区”怎么不发到那里去?算了,以后发问要有“针对性”
    对于这个问题,怎么说呢?
    你听过“地图平铺”技术吗?我见过的有三种:1。单元格技术
    这种方法就是麻烦,但是控制方便。
    简单地说就是事先设计好各个单元格(就是大小一样的位图(比如16*16)
    然后用一个数组表示其数据结构
    比如map[] = {111111111111
                 110000000001
                 100011100001
                 111100001111}
    这里,1代表墙,0代表路,以此类推。
    这样,通过这个数组,既可以方便地图渲染,也方便逻辑判断。
    就像是拼积木。
    这种方法以前在家用机上比较流行(FC,SFC等),比较适合RPG和SLG2。稀疏法
    就是用一张大的图(完整的)。
    它的优点是能实现美丽和复杂的地图,缺点是逻辑不好判断(要到后期自己建逻辑网络)3。均匀平铺
    这种方法在空战游戏中比较流行,其实只要背景不复杂,重复性大的的就可以
    比如大多数空战游戏都是在外太空,只有一些行星和黑色的背景等
    它的实现方法就是通过游戏内置的“世界坐标”来决定现在应该在屏幕上显示什么对象,
    (比如先画黑色的宇宙背景,再来点小星星就行了,最后就画ship和敌人)“浏览”是怎么做的?
    当然是通过“裁剪”来实现的
    比如说:
    窗口大小是640*480,你的地图是1600*1200的,现在假设窗口区的左上角正好和地图左上角(0,0)对齐。现在你鼠标往右移动一点,获得它移动的相对距离,比如说是dx,你就让地图的(dx,0)对到窗口的左上角,那么地图对到窗口右下角的坐标就是(640+dx,480)当然,使用上面三种不同的技术在渲染判断的时候有些差别
    不过好在DirectX自动支持裁剪(比如DirectDraw的Blt)说了这么多,我自己也觉得没说清楚,你最好去网上找找相关资料和源代码来看最直接另外就是:如果你只是业余爱好的话,用java也可以
    但是你想专业点的话,你得知道:
    Java只适合开发网页游戏和手机游戏
    如果你想做PC游戏或者TV游戏,你只能学C/C++