Search the Community

Showing results for tags 'isometric'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • HTML5 Game Coding
    • News
    • Game Showcase
    • Coding and Game Design
  • Frameworks
    • Phaser
    • Pixi.js
    • Babylon.js
    • Panda.js
    • melonJS
    • Haxe JS
    • Kiwi.js
  • General
    • General Talk
  • Business
    • Collaborations (un-paid)
    • Jobs (Hiring and Freelance)
    • Services Offered

Found 84 results

  1. Hi, I am developing a game with babylon.js, and I use an isometric view (so z coordinate, is actually pointing top left of the screen, and x bottom left) : var zoom = 2; var cameraPosition = new BABYLON.Vector3(5*zoom, 4.1*zoom, 5*zoom); var scene = new BABYLON.Scene(engine); var camera = new BABYLON.TargetCamera("camera1", cameraPosition, scene); camera.mode = BABYLON.Camera.ORTHOGRAPHIC_CAMERA; camera.orthoTop = 2.5 * zoom; camera.orthoBottom = -2.5 * zoom; camera.orthoLeft = -5 * zoom; camera.orthoRight = 5 * zoom; Therefore, when the player wants to go up (velocity.top), the controlled mesh should increment both z, and x, which results in the following equations : if (player.velocity.top !== 0 && player.velocity.left !== 0) var d = 0.7071; // Cos(45°) else var d = 1; player.position.z += Math.sign(player.velocity.top - player.velocity.left) * d * t; player.position.x += Math.sign(player.velocity.top + player.velocity.left) * d * t; All this seems to be working fine. Now, I would like the orthographic camera to follow the player when he is moving. I can't make the camera target the player, as it breaks the isometric view : the camera doesn't move to follow the player, it rotates, and as the angle of the camera changes, the isometric view breaks. Instead, I think I need to move the bounding box of the orthographic camera to be centered on the player position. But because the camera is orthographic, the bounding box doesn't seem to be related to the same coordinates as the player : the same way position.z is an arbitrary combination of velocity.top and veloctiy.left, orthoTop should be the inverse combination of position.z and position.x. So instead, my idea was to increment the bounding box by the same amount the player moves (as the velocity is in the same direction than the bounding box). By tweaking the values, I came up with this approximate solution, which I have a hard time to understand. if (player.velocity.top !== 0 && player.velocity.left !== 0) var d = 0.35; // Cos(45°)³ else var d = 1; camera.orthoTop -= Math.sign(player.velocity.top) * d * t * .7; camera.orthoBottom -= Math.sign(player.velocity.top) * d * t * .7; camera.orthoLeft -= Math.sign(player.velocity.left) * d * t * 1.4; camera.orthoRight -= Math.sign(player.velocity.left) * d * t * 1.4; It is approximate, because it only minimizes the error of movement between the camera and the mesh. But if the player goes one direction long enough, it will eventually go out of the screen. I am pretty sure there is an explanation for all this, but can't find it. What is the correct way to make an orthographic camera follow a target in an Isometric view ? Thanks,
  2. Isometric grids

    I have an isometric grid set up, but I'm not sure what size the tiles should be. In another question I asked about scaling and learned about mipmapping. How does this apply to isometric tiles? Should the width be 128 or the height? I don't think it's possible to make both a power of 2. Or does this even matter? Is the solution to package multiple texture sizes of each tile. Also once I get the size figured out how do I get ride of the grid lines from the aliased edges, do you overlap the tiles slightly?
  3. I thought about using TravisoJS (http://www.travisojs.com/) but I haven't seen any games that use it. Does anyone have experience with it?
  4. Creating isometric assets

    Hello all! I'm currently making an isometric game using Phaser and the superb isometric plugin. However when it comes to creating assets I hit a wall. When searching online I don't really find something useful on best practice on creating isometric art but a few tutorials. If I want to a few characters - say same form, different clothes - in eight directions should I use a program life Inkscape and draw all of the different angles or should I create a 3D model and take pictures. I find the information on the topic very lacking. Thanks in advance for any answer! :-)
  5. Hi, In my isometric tmx file the object positions are :"x":4097 , "y": 3300. But in melonjs when i load the positions I am getting entirely different x and y cordinates. How can i map these both! can someone help me here! I am trying to save the game by editing the tmx json. so the x and y postions I am getting from the UI, when i try to save them in json . its not aligned.the postions are completely different!
  6. Arkona II

    Hello all, please take a look at my uber-alpha project Arkona II. It runs as a desktop app (courtesy of electron) but it is an html5/js game. I've only been able to run the mac version, so apologies is the other platforms are not working. https://github.com/uzudil/arkona2/releases Thanks! --U ps.: did I mention I'm looking for contributors?! It could be you...
  7. I made two maps with Tiled, start with Isometric then I have changed to Ortogonal and set the width to 32 pixels. I have a Javaascript function to read the JSON map and use "game.add.isoSprite" to show the sprites in Browser. When did I make maps with diferent sizes it didn't work in the same way. First town map (Stade 1): widh: 14 pixels height: 20 pixels this.hero.anchor.setTo( 0.5 ); Second town map Stade 2: widh: 20 pixels height: 8 pixels this.hero.anchor.setTo( 1.1 ); I set up the anchor with diferent value and then then hero walk over the map. // Set the First world size this.game.world.setBounds( 0, 0, (14+2) * 64, (20+2) * 32); this.game.physics.startSystem(Phaser.Plugin.Isometric.ISOARCADE); this.game.physics.isoArcade.bounds.widthX = 14 * 32; this.game.physics.isoArcade.bounds.widthY = 20 * 32; // Set the Second world size this.game.world.setBounds( 0, 0, (2 + 20) * 64, (2 + 8) * 32); this.game.physics.startSystem(Phaser.Plugin.Isometric.ISOARCADE); this.game.physics.isoArcade.bounds.widthX = 20 * 32; this.game.physics.isoArcade.bounds.widthY = 8 * 32; //Loop var oSprite = jogo.add.isoSprite(posX, posY, 0, imagemCarregada, qualSprite , group); oSprite.anchor.set(0.5); //hero this.hero.game.add.isoSprite(x, y, 0, loadImage, imagem , grupo); //In the First Map this.hero.anchor.setTo( 0.5 ); //In the Second Map this.hero.anchor.setTo( 1.1 ); I use a lot of values and didn't work equality in two maps. My englsh isn't good.
  8. Set world bounds for an isometric world

    Hello. I am having an hard time on defining the bounds of my isometric world. I have tried so many things but it just doesn't get any good. I couldn't find a way to debug the bounds and actually see them. I think that the setBounds(x, y, width, height) is on screen coordinates. I am not sure anymore? Can someone clarifiy me this and help me ? EDIT: In the docs of the isometric plugin http://udof.org/phaser/iso/doc/Phaser.Plugin.Isometric.Arcade.html I noticed there is a setbounds for isometric. However I cannot work with it correctly what am I doing wrong? @lewster32 It just bugs the whole thing game.plugins.add(new Phaser.Plugin.Isometric(game)); game.physics.startSystem(Phaser.Plugin.Isometric.ISOARCADE); game.time.advancedTiming = true; game.iso.anchor.set(0.5,0.2); game.world.setBounds(0, 0, 0, 10000, 10000, 10000);
  9. I see the plugin's a bit dormant ATM, I think, but perhaps you guys have had enough experience to answer what _seems_ like a simple question: Given I have a Phaser.Group() of Isometric.ISOSprite() acting as the 'floor' tile-map, is it possible to constrain the state's bounds based on this Group? The group will be dynamic so the number of sprites will change. I had initially thought simply going: game.world.setBounds(myGroup.x, myGroup.y, myGroup.width, myGroup.height); would work, but of course those coordinates don't accurately reflect the 'true' dimensions of the isometric grid, given the plugin projects the coordinates. I tried a couple of guess/combinations, but I always got 'weird' bounds as a result. Any ideas? Hopefully the answer's simple!
  10. Phaser create hitboxes in isometric

    Hello. I was able to create a hitbox on non-isometric as so: hitboxes = game.add.group(); hitboxes.enableBody = true; var new_dude = game.add.sprite(250,150,"walking_dude"); new_dude.scale.x = 2; new_dude.scale.y = 2; new_dude.addChild(hitboxes); hitbox1 = hitboxes.create(0,0,null); hitbox1.body.setSize(65,70,77,5); // basically a no-image sprite with physics body fixed to a character I can't translate this using isometric plugin because the cube doesn't get fixed to the character as it should. It falls to the ground. What is the actual difference between the two codes? Why does the first gets fixed to character and the second doesn't? I am on this mistery for hours hitboxes = game.add.group(); new_dude = game.add.isoSprite(30, 30, 0, 'walking_dude',0); new_dude.scale.x = 2; new_dude.scale.y = 2; new_dude.addChild(hitboxes); hitbox1 = game.add.isoSprite(30,30,0,null,0,hitboxes); game.physics.isoArcade.enable(hitboxes); hitbox1.body.setSize(300,300,300); The isometric plugins http://udof.org/phaser/iso/doc/Phaser.Plugin.Isometric.html
  11. I want to create a city builder. Some objects will have transparent pixels, but they still capture click events. Is there a way to figure out which object was clicked in a way more advanced than just rectangles for shapes? I'm thinking I might have to figure out the click coordinates, then iterate over all objects in that point, starting with highest z-order, until I reach a non-transparent pixel.
  12. Getting a 2D array for Easystar?

    Hi all, I have been trying to follow this tutorial here: https://developer.tizen.org/community/tip-tech/using-easystar.js-implement-pathfinding-tizen-game-projects However, it mentions about a 2D array and right away I'm lost. I have a game in Phaser Isometric but I don't use a 2D array at all. I just have a tile and a loop to add to a tile group. spawnTiles: function () { var tile; for (var xx = 0; xx < 400; xx += 38) { for (var yy = 0; yy < 400; yy += 38) { // Create a tile using the new game.add.isoSprite factory method at the specified position. // The last parameter is the group you want to add it to (just like game.add.sprite) tile = game.add.isoSprite(xx, yy, 0, 'tile', 0, tileGroup); tile.anchor.set(0.5, 0); } } } How do I get a 2D array for Easystar to use?
  13. Hey all, So I recently switched my entire game over to Phaser Isometric by @lewster32 and now I keep running into an issue with collision. With just spawning a sprite in and not chaning any of its body properties, collision happens when the TOP of my player's body box reaches the TOP of the sprite's body box. This is a problem because it allows me to just walk through the sprite diagonally, which is not what I want. In fact, what I want is for collision to happen when the BOTTOM of the body boxes touch. (Sidenote: when I say body box I'm referring to the the 3d body shown through a body debug). Here is an example of how it works with no changes made to the body of either sprite. This is collision happening with no modifications: image - side note I am moving up and to the left in this picture, not down and to the left. This is after some changes to the body, the same thing happens too but it more closely represents what I *want* to happen, except it's still happening only with the top of the player sprite and tree sprite. image 2 Similarly, when I go to the top right side of the tree and move down into it, my body will go through the body box until the top of the body box hits the tree's box. When I mess with the Z values it all breaks and no collision will happen either. On top of that, changing the sprites anchors PAST (.5, .49999) also breaks something. Collision will happen at an anchor of (.5, .4999) but not at (.5, .5), it's very strange. Edit: Also, if i set the anchor to greater than (.5, .5) AFTER I enable isoPhysics on the body, the sprite's position gets moved thousands away and sometimes into the negative's. Here is my code to spawn the sprite and player. There is much more that goes into spawning the sprites, but this is anything that could even be related to the issue at hand. player1 = game.add.isoSprite(1000, 1000, 0, 'person'); game.physics.isoArcade.enable(player1); game.physics.isoArcade.collide(player1, itemGroup, null, null, this); createSprite = game.add.isoSprite(1250, 1250, 0, itemGet(chunks.chunks[i][slot]), null, itemGroup); //the anchor and body.setSize code here draws what you see in image 2. With these lines commented out, it outputs image 1. createSprite.anchor.setTo(.5, .49); game.physics.isoArcade.enable(createSprite); createSprite.body.setSize(40, 40, 0, 27, 27); createSprite.body.immovable = true; Any help is GREATLY appreciated. Ive been trying to fix this for a few days now, nothing I do works.
  14. Isometric 2.5D projectiles

    I am somewhat new to Phaser and have a goal of making a game with similar gameplay to the first Navyfield. One concept I am having trouble with is how Navyfield managed to do projectiles with 3D positions using 2D sprites. What steps do I have to take to have a cannon fire a projectile up in the air and possibly at an angle towards or away from the "camera"? If possible, could I get some psuedo code or even better an example using Phaser? Here is an example of the projectile system used in Navyfield (might be a bit loud):
  15. Failing to add plugin

    Hey everyone, I am currently following the format of this tutorial to try to create a structured Phaser project, where the code is split up. Everything seems to go well, except from the fact that I can't seem to add the Isometric plugin I am using. This is the code I'm using: Main.js window.onload = function(){ var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-canvas', null, true, false); game.state.add('Boot', Boot); game.state.add('Preload', Preload); game.state.add('Menu', Menu); game.state.add('Start', Start); game.state.start('Boot'); } Preload.js var Preload = function(game){ }; Preload.prototype = { preload: function(){ this.time.advancedTiming = true; this.plugins.add(new Phaser.Plugin.Isometric(this)); this.iso.anchor.setTo(0.5, 0.2); this.load.spritesheet('basic_ground', 'img/spritesheet/basic_ground_tiles.png', 128, 128); }, create: function(){ this.state.start('Start'); } } This is the error I am getting when running: Uncaught TypeError: Cannot read property 'add' of undefined at Preload.preload (Preload.js:8) at c.StateManager.preUpdate (phaser.min.js:10) at c.Game.updateLogic (phaser.min.js:12) at c.Game.update (phaser.min.js:12) at c.RequestAnimationFrame.updateRAF (phaser.min.js:18) at window.requestAnimationFrame.forceSetTimeOut._onLoop (phaser.min.js:18) Any help?
  16. Hello, all. I'm wondering if anyone knows a way of placing a large image in the background of a game made using the Phaser Isometric Plugin. Is sorting within groups the only way of layering objects? Is it possible to place an object behind all others, regardless of position? This may be something of a silly newbie question. I've been using the plugin for about three days. Thank you very much for reading and considering. Any input is very much appreciated. -JStan
  17. Arkona (working title) is an isometric retro rpg in a style you may remember if you played pc games in the 90s. :-) I'm looking for people who are just into this stuff. The game is in a relatively early stage and is meant as a hobby project only. I could use help with: - music/sound fx (there are none so far) - 3d artist: is toon-shaded creature animation your thing? - pixel artist: see screenshot below for reference - coder: phaser+es6+webpack, there is a lot to do (combat, inventory, pathfinding, etc.) - other: want to write conversations, design levels, etc? Get the source here: https://github.com/uzudil/arkona Thanks for considering! --U
  18. Hi! I search some tutorials about how to create an isometric game. Do you know some place where i can learn about the base concepts of isometric games and maybe a little Maths? Thank you
  19. I am having issues working with the isometric plugin without using world bounds. As an example, gravity will cause my sprite to continue to move when providing a velocity on z for jumping because it never hits the ground. I think I have a partial solution to this by checking if z is < 0 then set it to 0. This seems to work, but I now think that collision is not working right, or the sorting depth is not working. If my player character jumps, he will be in front of all other objects. Has anyone worked with the isometric plugin without using world bounds? If so, do you have any tips? Thanks.
  20. Phaser Isometric plugin

    I've spent the last week or so putting together a fairly comprehensive plug-in for Phaser in the form of an isometric (axonometric and dimetric to be precise) renderer for Phaser. Not wanting to stop there, I decided to go the whole hog and port over Phaser.Physics.Arcade to the new renderer by adding in an extra dimension. You can get the plug-in here: http://rotates.org/phaser/iso/ - the page also contains a working example so feel free to view the source to get a feel for how it works. I'll be creating several more examples in the coming days and weeks, as well as improving the plug-in, fixing bugs and so on. As of yet, I am undecided as to whether to embark on trying to create an isometric equivalent to TileMap (with Tiled importer) but if there's enough interest I may see what I can do. Enjoy, and I'm looking forward to seeing what you do with it!
  21. HTML5 isometric engine?

    Hello. I am searching for a good html5 isometric game engine. It can't be restricted to AABB collision. Need more complex collisions. What would you recommend? I found this MelonJs example that didn't seem bad. (not sure if it meets the requirements though). So Melon.js? I know phaser has an isometric plugin but I think the collisions are rather simple since it is based on arcade physics which are only AABB, @Milton? http://jsiso.com/? https://www.isogenicengine.com/ ? seems quite simple... idk http://jdan.github.io/isomer/ same I have a dought also. Those games like Diablo, are they grid-fixed?
  22. Hi, I'm starting with Phaser + Isometric plugin and is pretty cool. I think it has what I need for now, but now I'm stuck with some tests... I'm trying to detect when a srpite is hidden by another sprite in the isometric map. Something similar to? https://phaser.io/examples/v2/sprites/overlap-without-physics I tried with intersects without results, I think this is because colliding avoid intersections. I tried also with overlap, but I have results only when collides, and I want to know it without colliding. Scene A: Blue cube is not colliding but has a hidden part because of isometric ordering. That is what I need to detect. Scene B: Blue cube is not hidden on any part, so I don't mind... Any ideas? Thank you all in advance!
  23. DEMO: http://silashatfield.com/game/ I've been grinding away with all of my free time getting dragon bones to work in phaser and creating an isometric concept. It's been a HUGE learning curve for me but I wanted to share what I have so far. Also, big thanks for http://rotates.org/phaser/iso/
  24. Hello, I am running into an issue where I have an empty sprite and add lots of children items to it. When I debug this item, my frame box to show my sprite is very tiny. If I use body.setSize I can make the empty sprite get bigger, but I haven't been able to figure out how to do this programmatically because whenever I try to use width it gives me the scale size .3. If the empty sprite has no size the depth sorting does not work so it makes my sprite always behind everything, like the ground. If I try to use other functions like LocalBounds I get the x, y, .3, .3. I want to get the actual pixel size of what the sprite and its children make up even if the parent sprite is an empty sprite. Is this possible? I am also using the isometric plugin if that helps. Here is probably the most relevant code to get the idea. this.model is an isometric sprite. (<any>this.game.physics).isoArcade.enable(this.model); this.model.body.collideWorldBounds = true; this.model.body.x = this.game.world.width * 0.5; this.model.body.y = this.game.world.height * 0.5; this.model.anchor.set(0.5); this.model.scale.set(0.3, 0.3); this.model.body.setSize(150, 150, 300, 0); //i want to set the size to be the entire size of the empty sprite + it's children this.model.width is scale size .3, but it looks like setSize requires pixels? this.game.debug.body(this.model, 'rgba(189, 221, 235, 0.6)', false);
  25. Phaser isometric plugin: rotate phyisics body?

    down vote favorite I am working with Phaser and its isometric plugin. I have a sprite with this physical body ( as shown in blue). As you can see the physics body doesn't match the actually visible body. I think I would need to rotate the body in order to properly match the visible body. Because the sprite is an iso sprite but its position is not "isometric". I have no idea on how to do that and if there is another solution. Can someone help me?