请问:在游戏中,对场景(或者叫背景)的浏览是怎么做的。比如在“红警”中有很多的地图,我们可以通过鼠标来遍历它,这个地图在程序中是 ██████████┏━━━━━┓██★ ★██ ☆ up ☆ ██ ██ 〖初窥Java〗 ██ 【虚心学习】 ██★ ★██┗━━━━━┛██████████ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我当初觉得是基于类似于MVC的架构。地图相当于一个Model,它有不同的两个view,一个是主界面,另一个是缩略图。不知高手们意下如何。 我说楼主,你发问的地方是不是错了?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++ java编写塔防游戏(多版本)附带源码、注释、简单讲解 java继承的问题,在线等 一道JAVA游戏算法题 请教IT摸爬滚打多年的大虾 关于合并的问题,请大家帮忙看看!谢过! 学校要做公开课大家说我讲集合框架时,必须要讲哪几个类和接口,在开发中比较常用的,感谢大家 关于MQ的问题,急!急!急!请大家帮帮小弟 [共享]通用对象是否相等的比较 Applet安全问题! 关于CachedRowSet的疑问 能不能帮个忙 请教JAVA达人
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++