Articles of 2d

地图处理 – 室内/室外和加载大型地图

我有两个关于地图处理的问题。 问题1:我的地图将包括户外环境以及地牢,房屋等。我怎样才能将室外连接到室内? 我的简单解决scheme1.将所有内容放在同一个地图文件中,例如,当你穿过一扇门时,玩家将被“传送”到室内。 假设门的户外位置在坐标(10,10)处,并且给定房屋的室内环境在(1000,1000)时,当他穿过门时,玩家的坐标将被设置为(1000,1000) 。 这是最佳的还是有更好的方式呢? 问题2我的地图将包含一系列连接这些城市的大城市和path。 很明显地图会很大,我不确定是否可以将整个地图保存在内存中。 我将如何继续创建一个有效的地图管理系统? 我的简单解决scheme2.有地图由x * x瓦片的“块”组成,其中x是适合屏幕的瓦片的数量。 然后,我会加载砂金目前在大块,还有周围的块,但没有别的。 当玩家移动到一个新的块时,地图会加载新的周围块。 这会比将整个地图加载到内存中更有效的方式来处理地图吗? 这种方式的优点是,我不必将整个地图保存在内存中,但需要时间来dynamic加载每个“块”,从而创建加载时间。 我的基本解决scheme的任何改进很乐意。

使用Flash Platform类的2D引擎?

我想为Android开发2D游戏,但是,我想使用Flash Platform的框架API,例如: Sprite , Shape , Graphics , Bitmap ..等等,因为我已经在AS3中编写了我的游戏。 是否有使用Flash Platform框架API的Android二维引擎? 如果不是,Unity是否使用Flash Platform的框架API? 我知道我可以通过Adobe AIR将游戏移植到android,但是,我希望它能够以本机代码为基础,以避免Adobe AIR播放器的需求。 任何指导?

使用arrayList的Java 2D射击问题

我试图根据玩家面对的方向来投射导弹。 如果玩家正面朝右拍,导弹就向右走。 它正在起作用,但是当朝着导弹移动的导弹还在屏幕上而新的朝向右侧射击时,向左移动的导弹也转回,并且向右移动。 我试图把每个导弹当作这个射击问题的一个对象,但似乎不工作。 有没有什么办法解决这一问题? 在MainPanel类我有以下; public void run() { while (true) { move(); // move the player player.update(); // update the player's conditions if (firePressed) { fire(); } if (shots.size() > 0) { for (int i = 0; i < shots.size(); i++) { shots.get(i).move();// get a first shot and move it } } repaint(); […]

Spritesheet vs单个瓷砖

我目前正在编写一个2D平台游戏,这是我第一次编码video游戏。 现在我已经下载了“平台游戏艺术豪华”套餐 。 在瓷砖文件夹中有单个瓷砖和一个spritesheet,每个瓷砖上。 我应该使用spritesheet还是单个tile贴图?

等轴测图在不同的位置显示两个不同的图像

我创建了一个简单的使用HTML5和Javascript的等距游戏,但我似乎无法让显示器工作,现在我有9个具有X和Y位置的贴图,玩家有X和Y位置,玩家X和Y属性被设置为100,并且瓦片如图所示 tiles[0] = new Array(3); tiles[1] = new Array(3); tiles[2] = new Array(3); tiles[0][0] = new point2D( 100, 100); tiles[0][1] = new point2D( 160, 100); tiles[0][2] = new point2D( 220, 100); tiles[1][0] = new point2D( 100, 160); tiles[1][1] = new point2D( 160, 160); tiles[1][2] = new point2D( 220, 160); tiles[2][0] = new point2D( 100, 220); […]

获取指示2D世界空间相机可以看到的矩形

我有一个2D平铺游戏在XNA,与一个可移动的相机,可以滚动和缩放。 我试图获得一个矩形,它指出了我的相机正在看的世界空间的区域,所以我可以渲染这个矩形相交的任何东西(目前,所有的东西都被渲染了)。 所以,我是这样画世界的: _SpriteBatch.Begin( SpriteSortMode.FrontToBack, null, SamplerState.PointClamp, // Don't smooth null, null, null, _Camera.GetTransformation()); 我的Camera对象的GetTransformation()方法执行此操作: public Matrix GetTransformation() { _transform = Matrix.CreateTranslation(new Vector3(-_pos.X, -_pos.Y, 0)) * Matrix.CreateRotationZ(Rotation) * Matrix.CreateScale(new Vector3(Zoom, Zoom, 1)) * Matrix.CreateTranslation(new Vector3(_viewportWidth * 0.5f, _viewportHeight * 0.5f, 0)); return _transform; } 上述方法中的相机属性应该是自我解释的。 我怎样才能得到一个矩形,指出相机在世界空间正在看什么?

我怎样才能计算一个速度成正比的两个手位置之间的差异?

我正在使用Kinect SDK和XNA 4开发一个项目。我需要掌握手中的位置并在其上绘制一个精灵。 我是直接做的,因为我得到了“颤抖的手”效应。 所以,我正在考虑让这个精灵从前面的位置移动到新的位置上的每一帧中给出的新位置。 这样,精灵不会从一个位置跳到另一个位置。 这工作得很好,但是我使用了一个恒定的速度值,我真的希望使用由前一个和新的位置之间的差异给出的variables速度。 那就是:如果手在现实中移动得更快,速度会更快。 我真的不知道如何做这个工作。 有人能指出我正确的方向吗?

具有交互式位图背景的移动2D多人RPG游戏的可行性

我正在寻找开发Android的2D多人RPG游戏,鸟瞰图与Zelda / Pokemon类似。 这个游戏在所有方面都非常简单,因为我的意图是让成千上万的玩家占据我想象中需要良好performance的同一个世界。 不过,我不确定两个属性的性能要求: 用作背景的瓷砖地图是dynamic的(交互式)。 例如,玩家踩在水中,水变黑。 游戏中的每一个瓦片都是这样做的。 瓷砖地图是用于所有玩家的相同对象,但是在每个用户的移动设备上显示不同,即使玩家存在于同一个世界中。 例如,黑色的水在所有其他玩家的屏幕上显示为红色。 我有java的知识,但几乎没有关于游戏开发。 工具。 有这些要求的最佳过程吗? 我应该开发纯java,还是使用像Slick2D等工具? 如果甚至可能的话,性能密集程度如何? 编辑:游戏中没有冲突或困难的animation,我想象的只是改变瓷砖的颜色(如在示例中),客户端 – 服务器体系结构

圆与Rect碰撞准确度问题

蓝色的球是dynamic的,应该从墙上反弹,以及矩形。 目前,绿色的矩形是在场景中添加一条无形的线条,这不会让我的球走到我想要的地方。 你可以看到下面的图片上的问题,也看到我的源代码。 dynamic圆与静止矩形碰撞的源代码: public void collisionRect() { double dx = Math.abs(circle1.getLayoutX() – rect1.getLayoutX()); double dy = Math.abs(circle1.getLayoutY() – rect1.getLayoutY()); double rect1XRadius = rect1.getWidth() / 2; double rect1YRadius = rect1.getHeight() / 2; boolean xWalls = dx <= rect1XRadius; boolean yWalls = dy <= rect1YRadius; if (xWalls) { //if the ball hits any of the X […]

为什么我在以这种方式访问​​我的精灵成员时遇到exception?

我得到一个NullReferenceException错误,我做new Vector2(…) 。 我认为问题在于我使用的variables,即使他们正在控制玩家精灵,所以他们肯定不能为空,对吗? 然而,这是一个不同的阶级,并在这个顶部初始化。 这是有问题的方法: public void Shoot() { //if bullet delay resets then shoot if (bulletDelay >= 0) bulletDelay–; //if bullet delay is 0 then create a bullet at player bulletPosition if (bulletDelay <= 0) { //Here I create the new bullet passing in the texture and then modifying the bulletPosition were the […]