Search the Community

Showing results for tags 'Physics'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

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

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Twitter


Skype


Location


Interests

Found 660 results

  1. hi, because some issue, so i using group to create sprite as my colliders. var octopus; var colliders; var col; function create() { octopus = game.add.sprite(300, 200, 'octopus'); colliders = game.make.group(octopus, 'colliders', null, true, Phaser.Physics.ARCADE); octopus.updateTransform(); col = colliders.create(0, 0); col.body.setCircle(30, -30, -30); col.body.reset(colliders.worldPosition.x + col.x, colliders.worldPosition.y + col.y); game.debug.body(col, 'rgba(255,0,0,0.5)'); } function update(){ game.debug.body(col, 'rgba(255,0,0,0.5)'); } in the example, the body will flash to another point and then go back to the correct position. if i try to use Arcade Physics's overlap in two group. although two group is not overlap. that still cause overlap event. sorry about my english is not well
  2. Hi, Tower Boom is my first HTML5 game. It has 24 levels, and now available for non-exclusive licensing. The game was ported from flash, you can play the flash at https://www.coolmathgames.com/0-tower-boom If you're interested, feel free to send me a PM, I'll give you the HTML5 link. Here are some screenshoots...
  3. Hello guys ! I'm trying to make an anatomy based app with bones, muscles and ligaments. I'm actually prototyping to see if that's possible but I'm stuck on some features. Muscle representation For the muscles, I was thinking about a spring joint. But when I was testing, it seems that we can't add multiple joints between the same impostors ? For exemple, if we have 4 muscles between two cubes, each going corner to corner. If one spring is stiffer, the cube should rotate but it's not. I actually tried the same thing about a year ago on Unity and it was working like a charm but the unity webgl build is just too heavy and restrictive. Am I doing something wrong ? Do I need a new impostor for each muscle insertion ? Complex joint For some body joints, the simpler will be to add some angles restrictions. For exemple the ankle has like 30° flexion and 50° extension + 40° pronation and 20° supination. Is there a way to add this limitations ? My research on google point me only to https://saharan.github.io/OimoPhysics/oimo/dynamics/constraint/joint/RagdollJoint.html. Oimos can only limit in one axis and cannon seems to not have this feature. My playground : https://www.babylonjs-playground.com/#TB6ER9#1 Here what've done on Unity: https://imgshare.io/image/body-joint.pmmO9 (the img uploader was not working). Thanks. I didn't saw the new forum, my bad. The red banner isn't red enought :p. Here is the link to the new post => https://forum.babylonjs.com/t/how-to-handle-multiple-joints-between-two-impostors/3258
  4. Ninja.io is a fast paced, 2D multiplayer shooter inspired by games like Soldat, Unreal Tournament and N-game. Currently implemented game modes include Capture the Flag and Deathmatch. It uses the Box2D physics engine to enable convincing rigid body simulation. Players can make various moves including backflips, rolls, proning, running, flying and crouching. The game is still under active development and I'm willing to devote a great deal of time to finishing this project. I've made a test server available and you can join it by following these steps: - Go to ninja.io - Play as Guest - Enter a username - Join CTF or Deathmatch. - Select primary and/or secondary weapon Press H to display table of controls. Decrease the size of the browser window in case it runs slow. I've noticed that some laptops and older systems have trouble maintaining adequate fps. It is currently not possible to register a username, but I've been making progress on an account and highscore system. The game server is currently located in Europe. I plan on running additional servers on other continents and for the site to serve as a gateway to the nearest game server when players join in order to minimize latency. 2 European and 3 North American servers are available. Any thoughts, feedback or suggestions would be much appreciated! Thanks. Edit - 15-12-2017: New version! Sound effects have finally been added, weapons & items have been updated & tweaked, libraries have been updated and many improvements have been made along with numerous bugfixes. Edit - 15-05-2019: Several versions later: lots of new stuff! Running in Pixi.js v5 now. Party mode has been added, several new maps, new weapons, new sounds, new UI, new account/profile management (WIP), new FX! More to come! I'm currently finishing the implementation of the account system and I'm working on several new maps. More updates will follow soon!
  5. I'm starting out learning to build games in Phaser and doing multiplayer games and had the idea that I would build a simple multiplayer game to play with the kids. the basic idea: Two teams of either 1 or 2 players each kick a ball around a bounded area trying to get it into the opposing teams goal. I've played around with the physics engine demos a little bit and think I know enough to make a player (circle) that can move a ball (another circle) around in a Phaser game using P2 physics. I've also messed a little bit with node.js and the sockes library and implemented a little demo of setting up a server for multiplayer. Now I have gotten to the question of how to handle the physics in a multiplayer game. It seems to me like the physics simulation should be running on the server but how do you do that? Do I run a Phaser instance on the server to simulate physics or do I choose a standalone physics library and run that on the server? Bonus question: If physics is being simulated on the server do I need to run any physics on the client in this multiplayer example?
  6. I have this map created in Tiled, with an object layer for the doors. And this door object has a custom property "link", which should tell where the door goes. In phaser, I created an object layer for this doors and put them in to a new static group (this.physics.add.staticGroup). And if the player hits this door object, a method get called: this.physics.add.overlap( this.player, doors, this.enterDoor , null, this ). And there, in the enterDoor method, I want to read the "link" property, so I can switch the scene based on that value, which tells where to go next. But I am not able to get it there, it not seems to be possible to even add this value to the childs of the group, because already there, these values get lost. I am looking for a solution to this problem. These are the parts of the relevant code: Part 1, colliding with the door works without problems. Only thing there is, I have a missing sprite picture in game, but I do not want to use any sprite for the door. It should be a invisible area and if the player hits, it should go to the next scene. create() { this.map = this.add.tilemap( 'map1' ); var tileset = this.map.addTilesetImage( 'main', 'tiles' ); this.firstLayer = this.map.createStaticLayer( 'layer1', tileset ); this.secondLayer = this.map.createStaticLayer( 'layer2', tileset ); this.thirdLayer = this.map.createStaticLayer( 'layer3', tileset ); this.createPlayer( 400, 400 ); this.secondLayer.setCollisionBetween( 1, 2000 ); this.physics.add.collider( this.player, this.secondLayer); this.objectLayer = this.map.getObjectLayer( 'objectLayer' ); var doors; this.objectLayer.objects.forEach( ( object, index ) => { if (object.type === 'door') { object.key = object.name; object.setXY = { x: object.x + 16, y: object.y + 16 }; doors = this.physics.add.staticGroup( object ); //doors[ index ].set( 'link', object.link ); } }); this.physics.add.overlap( this.player, doors, this.enterDoor , null, this ); } Part 2, this is the enterDoor Method, called if the player hits the door. There I want to read the door.link property and based on that, go to the next scene. enterDoor( player, door ) { console.log( door.link ); //undefined door.disableBody( true, true) ; this.scene.switch( 'Outside', Outside ); // it should be like this: // this.scene.switch( door.link, door.link ); }
  7. Language: TypeScript Physics Engine: CannonJS Hey all, I would appreciate it if someone would help me solve these 2 mesh physics problems that I feel are related. I spent a lot of time trying to solve these related issues on my own and could not figure out what was going wrong. RELEVANT NOTE: BOTH problems occur right after switching from 1 scene to another scene. They only happen right after a scene loads. I have a video that demonstrates the error below. Problem 1: After loading each mesh (each with its own physics impostor), each mesh jumps a little (and then afterwards, they start falling because of gravity). I was wondering why/how to prevent it from happening. Note: I suspected that it is because they load too close to the ground and bounce because the computer erroneously thinks that the meshes/ground are touching. I am able to lessen the jump by making the ground’s position.y = -0.5 (so it is even clearer to the computer that the objects are not touching because all objects right now load at position.y = 0 (and I move objects before the next object loads so they don't intersect and start a collision)), but the jump still occurs, just less of a jump and still noticeable. Problem 2: After loading a certain scene, after being loaded, each instance of a special object I created (a class I created that includes a mesh) jumps in opposite directions from each other. I’m not sure why. I have a feeling it has to do with having multiple instances of the same class, each with their own mesh. After the scene loads, I am able to individually access each mesh and have them move individually, so their movement isn’t intertwined. Code/Video in Link: Relevant code and 1 video demonstrating error are in the Dropbox link. Note: The video shows both errors happening at the same time. Note: The code in this folder are not in the same directory/folder structure that I normally use for this program (so that is not the cause of my issues) [Link Removed] Thank you to all who read/and might help me with this issue!
  8. Hello I'm a beginner with Phaser and I want to extended a physcis sprite. So this is my code. class Player extends Phaser.Physics.Arcade.Sprite { constructor (scene, x, y,texture) { super(scene, x, y,texture); } } var player1; var MyScene = new Phaser.Class({ Extends: Phaser.Scene, initialize: function MyScene (config) { Phaser.Scene.call(this, config) }, preload: function () { this.load.image('back', 'img/background.jpg'); this.load.image('dude', 'img/player.png'); }, create: function () { this.add.image(540,360, 'back'); player1 = new Player(this, 400, 100, 'dude'); this.add.existing(player1); } }); var config = { type: Phaser.AUTO, width: 1080, height: 720, physics: { default: 'arcade', arcade: { gravity: { y: 1000 }, debug: false } }, scene: MyScene }; var game = new Phaser.Game(config); The object display the sprite but the object don't fall and I can not set something in my class. I search a long time a long time on internet and I didn't found. Do someone know where is my mistake ?
  9. Hi! I'm doing a school assignment about Phaser and I was wondering can someone explain the differences in Phaser 2 and Phaser 3 physics engines? Phaser 2 has: Arcade, P2 and Ninja physics and I know pretty much the differences in them. Phaser 3 has: Arcade, Impact, Matter and Multi physics, I guess the arcade is the same as in Phaser 2, but what about impact and matter? Can someone smarter than me explain how these work? Thank you in advance!
  10. Fling is a 2D platforming game with Grappling Hook as the only way to move. Gameplay itself is focused around one key mechanic and that's moving with grappling hook. Everything else in the game is centered around this kind of movement. Game features Endless mode in addition to 30 main levels. Fling is fun, challenging and addictive web game and it really tests your skills. Fling Trailer You can play Fling on Armor Games.
  11. Hey everyone, I looked around for details on this but I am trying to determine the difference between the Physic types: Arcade, Impact, Matter to see what would be best for my type of game or to experiment with. I read in the Dev blogs that "Arcade" was meant for very simple physics in a game, while somewhere else I read that "Matter" was meant for debugging... I would like to know what the real differences are and which would make the most sense for a given game type. Does anyone know what the differences between the Physic types are? Thanks!!!
  12. Hello, I have a question regarding the Contact Material example (http://phaser.io/examples/v2/p2-physics/contact-material). How is it possible to totally disable bouncing? Even with a restitution of 0, the sprite still bounces a little. Is it necessary to tweak yet another physical property? Or is it unavoidable to have bouncing in P2? Thanks!
  13. I know there are some discussions about this topic. But they are outdated & too old. Now it's 2018 , and some physics engines have been updated , and there are some new engines. So , let's talk it again. Which 2D Physics JS Engine is with better performance in 2018 ? matter-js p2.js box2d.js with liquid box2d.ts planck.js or someone else ?
  14. I've started using the Coding with Chrome extension to code Phaser on my Chromebook. I've added gravity and I'm trying to detect when things collide using physics.arcade.overlap(), but the function I provide for when it collides is never called. What I do is I make a matrix of objects and then detect collisions between each of them and the player. I think there's a better way to do this with groups but I'll look into that later. Here's my code: var player, map, mapObjs; map = [['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b'], ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b'], ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b'], ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b'], ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b'], ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b'], ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b'], ['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b']]; mapObjs = new Array(map[0].length); var game = new Phaser.Game(768, 768, Phaser.AUTO, 'Unnamed Game'); game.state.add('main', { preload: function(e) { game.load.image('background', '{{ file:background.png }}'); game.load.image('player', '{{ file:download.jpeg }}'); game.load.image('block', '{{ file:Brick_Block.png }}'); }, create: function(e) { if (navigator.userAgent == 'CwC sandbox') {game.time.desiredFps = 30;} var backgroundImage = game.add.image(0, 0, 'background'); backgroundImage.width = 768; backgroundImage.height = 768; player = game.add.sprite(50, 100, 'player'); game.physics.startSystem(Phaser.Physics.ARCADE); game.physics.arcade.enable(player); player.body.gravity.y = 9; player.body.bounce.y = 0.1; player.width = 100; player.height = 100; player.body.collideWorldBounds = true; for(var i = 0; i < map[0].length; i++) { mapObjs[i] = []; for(var j = 0; j < map.length; j++) { mapObjs[i][j] = game.add.sprite(32*i, 300+32*j, 'block'); mapObjs[i][j].width = 32; mapObjs[i][j].height = 32; } } }, input_: function(e) { }, update: function(e) { this.input_(e); for(var i = 0; i < mapObjs.length; i++) { for(var j = 0; j < mapObjs[i].length; j++) { game.physics.arcade.overlap(player, mapObjs[i][j], function(object1, object2) { console.log('hi'); // This never happens for some reason even thought the objects are visibly overlapping player.body.gravity.y = 0; player.body.accelerationY = 20; }, null, this); } } }, render: function(e) { }, }, true); game.state.start('main'); The '{{ file:background.png }}' is just the way that the editor references images so you can ignore it.
  15. Hi! character in my game is this cat: The cat is class extending group and contains torso and head, both are sprites with arcade physics enable on it. In the game, the cat is pushed up by applying velocity on it and it collects certain items (gameplay is similar to Flip the Gun game, check it out for better understanding). THE PROBLEM: In update method, I am constantly checking for collisionse between cat and the items: this.game.physics.arcade.overlap(this._cat, this._sceneObjectsLayer, this.onObjectCollision, null, this); My onObjectCollision method looks like this: onObjectCollision(cat: Phaser.Sprite, item: GeneratedItem) { console.log("COLLISION SOURCE IS " + cat.key); console.log("COLLISION! OBJECT ID IS " + item.ItemID + "... UPDATE FRAME IS " + this._updateFrameCnt); this._items++; this._UI.showCount(this._items); item.KillItem(); //inside this method I call item.kill() this._sceneObjectsLayer.remove(item); } Basically, it should just update the total amount of items taken in player UI. The problem is that same item is sometimes collected multiple times. That makes sense - one collision for torso, one for head, but I would expect it not to call this method for the same item after item.kill() is called. I already debugged this and I put the variable this._updateFrameCnt to update method. Result is this. You can see that the item with certain ID is collected, then it is killed and after few frames it is collected again like no kill() was called on it: State_game.ts:451 COLLISION SOURCE IS catHead State_game.ts:452 COLLISION! OBJECT ID IS 0... UPDATE FRAME IS 2034 GeneratedItem.ts:52 KILLING ITEM WITH ID 0 //called from item.KillItem //and after few frames: State_game.ts:451 COLLISION SOURCE IS catTorso State_game.ts:452 COLLISION! OBJECT ID IS 0... UPDATE FRAME IS 2040 GeneratedItem.ts:52 KILLING ITEM WITH ID 0 //called from item.KillItem Moreover, this sometimes happens for the same sprite (for example it is called twice for head sprite). Is this expected behaviour due the reasons how Phaser handles physics? Seems really strange for me, I would expect to make physics computation after each frame and therefore no second collision should occur, because the item should be dead at the time. Am I missing something here? Thanks in advance for your responses!
  16. Hi, I'm using the arcade physics engine. I'm trying to move a cloud left and right via tweens but the problem is the arcade box isn't moving with it. Does anyone know how to fix this? createTweens() { this.scene.tweens.add({ targets: this, x: this.distanceX, duration: this.speed, yoyo: true, loop: - 1 }); }
  17. For no good reason I was thinking about physics engines and came across this. As I was looking for a new challenge I took a look and as BitOfGold said the API is horrible but though I would give it a go. I took this example and had a go at making it work with Babylon. Never having worked with 'workers' before I had a go at doing a test with a direct implementation with Babylon.js which is here and if anyone is interested the code is at github. Very early days but slowly over the next year I will have a go at seeing what is possible and if getting somewhere will see whether it would make a good extension with added documentation. As a very amateur coder however I have a lot to learn for example how do I use ammo.js without enclosing everything in Ammo().then(function(Ammo) { }) Anyone else interested in seeing what is possible with Ammo.js and Babylon.js the let me know.
  18. Hi There, I use Arcade physics on Phaser3. And I got multiple moveable bodies which stick on top of each other. For two bodies this works, the third does sink a bit into the second and the forth makes the whole stack collapse and fall through the bodies. (example image attached) (edit) Note: Bodies are not falling through static sprites, the described behavior does only apply to dynamic bodies. I would prefer a "not checking" for weight, - setting velocity Y to 0 on collision does inflict many more problems. So this won't solve the issue. I set the OverlapBias on the Arcade physics to 20 (code below) to prevent bodies with high gravity falling through static sprites. The Y gravity is set to 2000, decreasing this amount does not solve the issue and the gravity amount is needed. arcade: { gravity: {x: 0, y: 2000}, debug: true, overlapBias: 20 } What I came around was thinking to set the weight or mass so that the sprites don't "sink" into each others body. Even tho if a body is falling on onto two bodies which are on top of each other, they complete break and fall through. Does anyone have an idea how to fix this?
  19. I'm making a game in phaser 3 using the arcade physics and I want the player to be able to move boxes. The player can move the boxes right now but they are to light. Can I solve this with friction between the boxes and the platforms, and if so how do I do that? Here is my code: platforms = this.physics.add.staticGroup(); platforms.create(180, 588, 'platform3').setScale(0.5).refreshBody(); platforms.create(580, 450, 'platform4').setScale(0.5).refreshBody(); platforms.create(980, 450, 'platform4').setScale(0.5).refreshBody(); platforms.create(1280, 450, 'platform4').setScale(0.5).refreshBody(); boxes = this.physics.add.group({ key: 'box', repeat: 9, setXY: { x: 100, y: 0, stepX: 180 } }); this.physics.add.collider(boxes, platforms); this.physics.add.collider(boxes, boxes);
  20. Hi, I would like to have two cards that when they collide with each other they would rotate in an analog way of the ones you can see in the attached video. This is the first part of the code: var config = { type: Phaser.AUTO, width: 800, height: 600, backgroundColor: '#1b1464', parent: 'phaser-example', physics: { default: "matter", matter: { gravity: { y: 0}, debug: true } }; scene: { preload: preload, create: create } }; var game = new Phaser.Game(config); function preload () { this.load.spritesheet("controllers", "assets/sprites/controllersSheet.png", { frameWidth: 100, frameHeight: 100 }); } var controller = []; function create () { this.matter.world.setBounds(); controller[1] = this.matter.add.sprite( 400, 100, 'controllers', 0, null, { restitution: 0, friction: 1}); controller[2] = this.matter.add.sprite( 400, 400, 'controllers', 1, null, { restitution: 0, friction: 1}); Then I am having some issues because with this next code they move as I'd like, but they don't rotate: controller[1].setInteractive(); controller[2].setInteractive(); this.input.setDraggable(controller[1]); this.input.setDraggable(controller[2]); this.input.on("drag", (pointer, gameObject, x, y) => {gameObject.setPosition(x, y); checkPosition();} ); this.input.on("dragstart", (pointer, gameObject) => { } ); this.input.on("dragend", (pointer, gameObject) => { } ); And with this other next code, they bounce all around and I can't find a way to make them stay fixed. this.matter.add.mouseSpring({ length: 0, stiffness: 0 }); If someone knows how to help me, I would be very thankful. mm.mp4
  21. I have a staticGroup of floating coins from a tilemap and I wanted to make the collision area circular and the correct size however: I tried calling `setCircle` on each object in the group but it has no effect. If I change the staticGroup to a group, I can see the circle form when using debug mode. However this then subjects the group to gravity and my objects fall out of the game Here's the relevant code: function create() { var coinTiles = map.addTilesetImage('coin'); coinLayer = map.createDynamicLayer('Coins', coinTiles, 0, 0); // I tried changing this to this.physics.add.group(); coinGroup = this.physics.add.staticGroup(); // Loop over each Tile and replace sprite coinLayer.forEachTile(tile => { if (tile.index === 17) { const x = tile.getCenterX(); const y = tile.getCenterY(); const coin = coinGroup.create(x, y, "coin"); // This line seems to have no effect on static objects. coin.body.setCircle(10, 10 , 10); coinLayer.removeTileAt(tile.x, tile.y); } }); // etc... } staticGroup: Group: (ignore circle offset being completely off)
  22. Whether there are fresh examples for Phaser 3. It is interesting to see the implementation of physics and realistic control of the machine in the style of GTA-2. I saw a couple of examples for Phaser 2, and they are something too complicated. How rotation car by ellipsis? How accelerate? How to ride back with a realistic turn?
  23. hi guys. Im new-comer babylon world! I have a question, I have load glb file, then use Oimo physics. so this glb-loaded Cube starting Let's dancing. why?? plz look this! https://playground.babylonjs.com/#6UZ7BJ#1
  24. Hi guys! Main character in my game is this cat: Cat is composed from two parts - the torso and the head - and for each part I want to have physics body enabled, therefore I decided all parts will be inside a group. During the gameplay, I apply certain amount of velocity to the cat torso and cat then should rotate around its own axis, clock-wise and counter clockwise. I chose the approach to apply velocity to the torso and I want to position the head according the torso in the update method. Basically I want to achieve the same behaviour as Sprite.addChild() (add head as a child of a torso), but I want to do it in a group. I imagine basic (pseudo)code should look like this: export class Cat extends Phaser.Group { private _torso: Phaser.Sprite; private _catHead: Phaser.Sprite; private _torsoHeadDistance: number; public constructor(game: Phaser.Game, startPosY: number) { super(game); //torso this._torso = game.add.sprite(game.world.centerX, startPosY, "torso"); this._torso.anchor.setTo(0.5); this._torso.scale.setTo(0.5); //head this._catHead = game.add.sprite(this._torso.x, this._torso.top, "head"); this._catHead.anchor.setTo(0.5, 0.7); this._catHead.scale.setTo(0.3); this.add(this._torso); this.add(this._catHead); game.physics.enable(this._torso, Phaser.Physics.ARCADE); game.physics.enable(this._catHead, Phaser.Physics.ARCADE); //Get the distance between both parts this._torsoHeadDistance = this.game.physics.arcade.distanceBetween(this._torso, this._catHead, true); } //This will be called when player interacts with the game public AddVelocity(angle, speed, angularVel: number) { this._game.physics.arcade.velocityFromAngle(angle, speed, this._torso.body.velocity); this._torso.body.angularVelocity = angularVel; } //Called from update each frame public UpdatePosition(){ //pseudo code this._catHead.position = this._torso.position + _torsoHeadDistance; this._catHead.rotation = this._torso.rotation; } } Basically I just want retain the same distance between both sprites in the group within the time. The problem is that I am not able to figure out the code which should be in UpdatePosition() method. I know it should be something with vectors and normalizing, but I already spent few hours solving this without success. Can someone point me closer to the solution, please? I start to be desperate... Thanks in advance!
  25. A collider collides only with set tiles on a tilemap. However, if you are using an overlap with a tilemap, it always callbacks. If you log the index of the Tile, it's 0. So "no set tile". Is that intended behavior?