我目前正在使用HTML5 <canvas>元素在Javascript中编写2D游戏.它很顺利,但我遇到了一个问题.
我的游戏的关卡设计是一个网格(因此路径成本从一个单元格移动到北/南/东/西单元格为1),各种障碍占据网格中的不同位置 - 很像迷宫,但有很多更多的摆动空间.每个单独的级别大约为400×200个单元.
我试图实现一个敌人,无论他们在哪里都能找到玩家,但是我无法尝试翻译各种寻路算法之一以适合我的情况.我遇到的大多数(如A*和Dijkstra)似乎最适合3D或更复杂的2D情况.我想知道是否有可能大大简化这些算法以更好地适应我的目的,或者如果深度优先搜索的东西在给定级别大小的情况下是更有效的替代方案.
我目前正在编写从模型空间到剪辑空间的转换,以便在OpenGL中使用.从我所看到的,程序员通常使用传统的矩形平截头体来定义模型空间中的剪裁边界.我个人考虑过像平截头体的形状,除了近平面和远平面是以平截头体(相机)的顶点为中心的球体.所以看起来像这样:
黄色区域对应于OpenGL的剪辑空间,并且两个球体(在该横截面图像中描绘为圆圈)对应于OpenGL z=-1
(内部球体)和z=1
(外部球体).
这是一种更逼真的投影模型,还是在设计投影矩阵时我应该坚持使用传统的矩形平截头体?
我如何通过覆盖其void paint (Graphics g)
方法将部分透明的图像绘制到JPanel上?我已经尝试过显而易见的方法,即加载图像然后使用((Graphics2D)g).drawImage(...)
但是没有用,互联网并没有告诉我太多.
3d ×1
html5 ×1
java ×1
javascript ×1
jpanel ×1
opengl ×1
path-finding ×1
png ×1
swing ×1
transparency ×1