PixelPicoSean

Members
  • Content Count

    278
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by PixelPicoSean

  1. Phaser 3 and Construct 3 are both great. But you may also "try" something different I made one called "voltar", which used to be called LesserPanda (yeah you may guess it started as a fork of Panda, but has changed over time). https://github.com/pixelpicosean/voltar Voltar is a framework the same as Phaser/Panda but also come with a visual editor (and the editor is called Godot which you may heard of). Major feature of voltar is that it has abilities to import scene/timeline animation/tilemap from Godot engine, and has very similar API to GDScript. So you can clone the engine folder, import Godot project and start editting. When your scene is ready to use, run the import script to convert data into JSON which will then be available from code. And if you like Godot but want to use JavaScript and wish for a very small mobile friendly support, yes this is exactly what I've been making it to. You are not limited to use the editor since the editor only produces JSON and engine load those data "automagically". For now almost all the 2D nodes are supported from Godot, and I've used it for all my contract works since 2018. BTW. UI system is exactly the same as Godot but I did not add theme support yet which I think is not useful for production, so kept it simpler. Physics system is also the same but without RigidBody2D which you may want to have, maybe I will get it done in the future. Feel free to ask me any questions.
  2. You can find a tool to generate JSON file and write a custom PIXI loader for it. I've done similar stuff, here's my in-house framework: https://github.com/pixelpicosean/voltar It is PIXI based, and I have scripts to convert Godot scenes into JSON and load. I've gone that way too far, even heavily modified PIXI to support this workflow though. You can do same thing without modify PIXI at all, only write scripts for features you want (layout with containers/sprites) which I think is fairly easy.
  3. CrossCode is written in impact.js as I remember. They've made tons of changes to the engine for better performance (and even a component system) and some in-house tools, so they may already made the game data driven and can be easily hand port into C++ since most contents are portable JSON data.
  4. Your game does not looks so heavy animation-ish, any JavaScript framework should be able to support.
  5. Thank you all for the reply, I am trying the preserveDrawingBuffer fix and see whether it works. The phone that has this issues is Zenphone Z00VD.
  6. Hi I just built a game with Phaser3 (3.10.1) and wrapped with cordova crosswalk (2.4.0), the screen keeps blinking while running on some Android devices. It works pretty well on most devices and even without any issue in the browser instead of cordova from same device. Anyone has similar experience?
  7. Yes you can use "tilePositionX = -camera.scrollX" just like that, but for a parallel background I think you can simply set "scrollFactorX" of it instead.
  8. Since you are using impact physics engine, you'd use `this.impact.add.sprite(...)` instead.
  9. Container is exactly what you are looking for. It is still WIP and can be found in the `container` branch.
  10. // your collision tile id is 3 collisionLayer.setCollisionBetween(3, 3); // or use setCollision method collisionLayer.setCollision([3], true); // the same methods can also be called from tilemap instance
  11. The matter render system is not used in Phaser3. You can take a look at how the debug drawing work, and use graphics to draw the shape manually.
  12. `pixelArt: true` instead of `pixelart: true` ?
  13. In methods of your scene class/object. `this` is exactly the scene instance.
  14. PixelPicoSean

    Load tilemap

    function preload(){ this.load.image('gameTiles', 'tiles_spritesheet.png'); this.load.tilemapTiledJSON('level1', 'map.json'); } function create(){ this.map = this.add.tilemap('level1'); var tileset = this.map.addTilesetImage('tiles_spritesheet','gameTiles'); this.backgroundLayer = this.map.createLayer('backgroundLayer', tileset); }
  15. Game instance should not be used for creating objects and input event handling, use the scene instead. // Create objects from a method of scene this.add.sprite(...) // Subscribe to input events of a scene this.input.on('pointerdown', function(event) {}, this)
  16. Take a look at the collision filter example: http://labs.phaser.io/view.html?src=src\physics\matterjs\collision%20filter.js
  17. There're no Signals in Phaser 3 any more. For input events you can do this: pause_label.on('pointerup', function(event) {}); And enable input listeners: pause_label.setInteractive();
  18. There're a lot of FRP libraries, I've used kefir.js and flyd, both of them are really great (and also support EventEmitter like interface) and much better than Rx IMHO.
  19. Currently `blocked` only shows whether a body is collide with world bounds, I don't know whether that is a bug or by design. For your purpose, check `touching.down` instead.
  20. The DOM API uses Event Emitter like approach, and you can still use Promise and Rx on top of that. And Rx does have event emitter support, you only need to create streams for the events you are going to use.
  21. var columna = this.physics.add.group({ gravityY: 0 });
  22. @mattasaurus Multi-tileset is currently not supported, you need to create layers for different tilesets. @elleniaw Objects in an object layer have rotation and flipping support if that's what you mean.
  23. RenderTexture can only draw texture frames. But you can generate a texture from text inner canvas.
  24. You need to call setVelocityX on each of them, by using a loop or Call action: Phaser.Actions.Call(malos.getChildren(), function(go) { go.setVelocityX(100) })
  25. They did not explain it at all, but 714KB is acceptable right? 72KB of core might be possible, but to my experience of compiling C++ code into wasm, a fully functional game with WebGL and audio(also includes some cross platform code and framework such like IMGUI) starts from 500KB gzipped or 1100KB uncompressed. 100KB if only use WebGL with nothing else. In my case I don't use STL at all which increases final size significantly. Which means even containers like string, vector and map are my hand coded version. And that is hand written optimized C++ code. As far as I know, it's only possible to use C instead of C++ to reduce the size of generated asm.js/wasm code. Unity's C# to C++ cannot do that much optimize, especially for its huge code base. A friend of mine told me that Unity uses gzip to compress everything and uncompress them at the runtime, maybe there's some black magic.