{"action":"created","issue":{"url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/issues/36","repository_url":"https://api.github.com/repos/hexus/phaser-arcade-slopes","labels_url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/issues/36/comments","events_url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/issues/36/events","html_url":"https://github.com/hexus/phaser-arcade-slopes/issues/36","id":218689592,"number":36,"title":"Improve tunnelling","user":{"login":"hexus","id":2626789,"avatar_url":"https://avatars1.githubusercontent.com/u/2626789?v=3","gravatar_id":"","url":"https://api.github.com/users/hexus","html_url":"https://github.com/hexus","followers_url":"https://api.github.com/users/hexus/followers","following_url":"https://api.github.com/users/hexus/following{/other_user}","gists_url":"https://api.github.com/users/hexus/gists{/gist_id}","starred_url":"https://api.github.com/users/hexus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hexus/subscriptions","organizations_url":"https://api.github.com/users/hexus/orgs","repos_url":"https://api.github.com/users/hexus/repos","events_url":"https://api.github.com/users/hexus/events{/privacy}","received_events_url":"https://api.github.com/users/hexus/received_events","type":"User","site_admin":false},"labels":[{"id":372756468,"url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/labels/bug","name":"bug","color":"fc2929","default":true}],"state":"open","locked":false,"assignee":{"login":"hexus","id":2626789,"avatar_url":"https://avatars1.githubusercontent.com/u/2626789?v=3","gravatar_id":"","url":"https://api.github.com/users/hexus","html_url":"https://github.com/hexus","followers_url":"https://api.github.com/users/hexus/followers","following_url":"https://api.github.com/users/hexus/following{/other_user}","gists_url":"https://api.github.com/users/hexus/gists{/gist_id}","starred_url":"https://api.github.com/users/hexus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hexus/subscriptions","organizations_url":"https://api.github.com/users/hexus/orgs","repos_url":"https://api.github.com/users/hexus/repos","events_url":"https://api.github.com/users/hexus/events{/privacy}","received_events_url":"https://api.github.com/users/hexus/received_events","type":"User","site_admin":false},"assignees":[{"login":"hexus","id":2626789,"avatar_url":"https://avatars1.githubusercontent.com/u/2626789?v=3","gravatar_id":"","url":"https://api.github.com/users/hexus","html_url":"https://github.com/hexus","followers_url":"https://api.github.com/users/hexus/followers","following_url":"https://api.github.com/users/hexus/following{/other_user}","gists_url":"https://api.github.com/users/hexus/gists{/gist_id}","starred_url":"https://api.github.com/users/hexus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hexus/subscriptions","organizations_url":"https://api.github.com/users/hexus/orgs","repos_url":"https://api.github.com/users/hexus/repos","events_url":"https://api.github.com/users/hexus/events{/privacy}","received_events_url":"https://api.github.com/users/hexus/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/milestones/3","html_url":"https://github.com/hexus/phaser-arcade-slopes/milestone/3","labels_url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/milestones/3/labels","id":2315022,"number":3,"title":"0.3.0","description":"- Custom SAT.js that ignores flagged edges.\r\n- Memory consumption improvements (`new`, `.clone()`)","creator":{"login":"hexus","id":2626789,"avatar_url":"https://avatars1.githubusercontent.com/u/2626789?v=3","gravatar_id":"","url":"https://api.github.com/users/hexus","html_url":"https://github.com/hexus","followers_url":"https://api.github.com/users/hexus/followers","following_url":"https://api.github.com/users/hexus/following{/other_user}","gists_url":"https://api.github.com/users/hexus/gists{/gist_id}","starred_url":"https://api.github.com/users/hexus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hexus/subscriptions","organizations_url":"https://api.github.com/users/hexus/orgs","repos_url":"https://api.github.com/users/hexus/repos","events_url":"https://api.github.com/users/hexus/events{/privacy}","received_events_url":"https://api.github.com/users/hexus/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2017-02-10T20:14:30Z","updated_at":"2017-04-09T20:05:10Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2017-04-01T11:24:27Z","updated_at":"2017-04-18T05:22:32Z","closed_at":null,"body":"As per photonstorm/phaser-ce#94 and the road map, improvements can be made to tunnelling issues that can occur with small sprites.\r\n\r\n~~In the linked issue, it looks like the projectiles are only colliding with the tile face and not the entire tile.~~\r\n\r\nThe linked issue is caused by heuristics preventing collisions, and because the square tile has no \"preferred axis\" to separate on, no separation seems to occur. This is rather wrong! Pre v0.3.0, this could be solved by improving heuristics or simply not using them for square tiles.\r\n\r\nIn the case of the half tiles in the GIF below, the separation is responding correctly but **without** invoking collision callback, which is wrong.\r\n\r\n---\r\n\r\nThere are two issues here that will be addressed by planned features in the v0.3.0 roadmap:\r\n- [ ] Custom SAT implementation that can ignore some axes\r\n- [ ] Raycasting to avoid tunnelling\r\n\r\nFor 0.2.0 we want to at least make sure that the collisions and their callbacks are responding correctly; even if no separation occurs, it's still a collision the user could need to know about.\r\n\r\nDeciding the response vector in these situations is _**tricky**_."},"comment":{"url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/issues/comments/294685076","html_url":"https://github.com/hexus/phaser-arcade-slopes/issues/36#issuecomment-294685076","issue_url":"https://api.github.com/repos/hexus/phaser-arcade-slopes/issues/36","id":294685076,"user":{"login":"grayleonard","id":3433280,"avatar_url":"https://avatars1.githubusercontent.com/u/3433280?v=3","gravatar_id":"","url":"https://api.github.com/users/grayleonard","html_url":"https://github.com/grayleonard","followers_url":"https://api.github.com/users/grayleonard/followers","following_url":"https://api.github.com/users/grayleonard/following{/other_user}","gists_url":"https://api.github.com/users/grayleonard/gists{/gist_id}","starred_url":"https://api.github.com/users/grayleonard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grayleonard/subscriptions","organizations_url":"https://api.github.com/users/grayleonard/orgs","repos_url":"https://api.github.com/users/grayleonard/repos","events_url":"https://api.github.com/users/grayleonard/events{/privacy}","received_events_url":"https://api.github.com/users/grayleonard/received_events","type":"User","site_admin":false},"created_at":"2017-04-18T05:22:32Z","updated_at":"2017-04-18T05:22:32Z","body":"Yes, I was destroying the bullets within the collision callback, and I have gravity set to 0.\r\n\r\nIt might be necessary for the project I'm working on to use the heuristics for other sprites, so I might do a bit of debugging on my own and let you know what I figure out."}}
{"actor":{"display_login":"grayleonard"}}