{"action":"closed","number":89,"pull_request":{"url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls/89","id":228584080,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4NTg0MDgw","html_url":"https://github.com/GDquest/make-pro-2d-games-with-godot/pull/89","diff_url":"https://github.com/GDquest/make-pro-2d-games-with-godot/pull/89.diff","patch_url":"https://github.com/GDquest/make-pro-2d-games-with-godot/pull/89.patch","issue_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/issues/89","number":89,"state":"closed","locked":false,"title":"Fixed axis inputs clashing with discrete inputs","user":{"login":"taylorjoshuaw","id":1307336,"node_id":"MDQ6VXNlcjEzMDczMzY=","avatar_url":"https://avatars2.githubusercontent.com/u/1307336?v=4","gravatar_id":"","url":"https://api.github.com/users/taylorjoshuaw","html_url":"https://github.com/taylorjoshuaw","followers_url":"https://api.github.com/users/taylorjoshuaw/followers","following_url":"https://api.github.com/users/taylorjoshuaw/following{/other_user}","gists_url":"https://api.github.com/users/taylorjoshuaw/gists{/gist_id}","starred_url":"https://api.github.com/users/taylorjoshuaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taylorjoshuaw/subscriptions","organizations_url":"https://api.github.com/users/taylorjoshuaw/orgs","repos_url":"https://api.github.com/users/taylorjoshuaw/repos","events_url":"https://api.github.com/users/taylorjoshuaw/events{/privacy}","received_events_url":"https://api.github.com/users/taylorjoshuaw/received_events","type":"User","site_admin":false},"body":"I've noticed with some of my own projects that mixing axis inputs with other types of input in a single action (such as \"move_left\") can cause the two to \"fight\" each other. It mostly happens when you hold down a key for an action that also has an axis assigned to it. Randomly, you could just lose the state of the key being pressed until you lift the key and press it again. Other times, it can just ignore the keypress altogether. I think it's a timing-specific thing with the engine's input code if the analog sensor in the gamepad momentarily exceeds its deadzone (which can happen, especially with noisier sensors).\r\n\r\nI saw this behavior occurring right away when I first ran this project and implemented a simplified version of the fix I did in one of my own projects to get around this issue. Basically, actions with axis inputs are split into two actions. I named these \"discrete_move_left\", \"joy_move_left\", etc. I called the keyboard version \"discrete\" rather than \"key\" as a pattern. The only thing needed to fix this issue is to keep axes separate from discrete inputs. You could add D-Pad buttons to the discrete actions alongside the keyboard without any issues. I didn't do so here only because I didn't know if we had something in mind for the D-Pad in the future.\r\n\r\nJust to reiterate, not all actions will need duplicate actions for joypad. Only actions with axis inputs seem to cause problems. This may not have been an issue for most people, but if I'm encountering this across multiple projects and versions of Godot, then it might also affect others in the future.\r\n\r\n- [X] __Motion.gd__: Fixed random axis input collisions on \"move_xxx\" actions with discrete input\r\n- [X] __godot.project__: Split the following actions into two actions:\r\n  - \"move_left\" => \"discrete_move_left\", \"joy_move_left\"\r\n  - \"move_right\" => \"discrete_move_right\", \"joy_move_right\"\r\n  - \"move_up\" => \"discrete_move_up\", \"joy_move_up\"\r\n  - \"move_down\" => \"discrete_move_down\", \"joy_move_down\"\r\n\r\n(This is a resubmit of #87 due to my mistakenly working off of master the first time I submitted the PR)","created_at":"2018-11-06T06:11:23Z","updated_at":"2018-11-06T23:14:13Z","closed_at":"2018-11-06T23:14:12Z","merged_at":"2018-11-06T23:14:12Z","merge_commit_sha":"3949bc3b0c70179b1f64499d47ed18555dc591d6","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls/89/commits","review_comments_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls/89/comments","review_comment_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/issues/89/comments","statuses_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/statuses/5bf959867bddba90a04a24cf537fbf0866e87a84","head":{"label":"taylorjoshuaw:bugfix-axis-discrete-input","ref":"bugfix-axis-discrete-input","sha":"5bf959867bddba90a04a24cf537fbf0866e87a84","user":{"login":"taylorjoshuaw","id":1307336,"node_id":"MDQ6VXNlcjEzMDczMzY=","avatar_url":"https://avatars2.githubusercontent.com/u/1307336?v=4","gravatar_id":"","url":"https://api.github.com/users/taylorjoshuaw","html_url":"https://github.com/taylorjoshuaw","followers_url":"https://api.github.com/users/taylorjoshuaw/followers","following_url":"https://api.github.com/users/taylorjoshuaw/following{/other_user}","gists_url":"https://api.github.com/users/taylorjoshuaw/gists{/gist_id}","starred_url":"https://api.github.com/users/taylorjoshuaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taylorjoshuaw/subscriptions","organizations_url":"https://api.github.com/users/taylorjoshuaw/orgs","repos_url":"https://api.github.com/users/taylorjoshuaw/repos","events_url":"https://api.github.com/users/taylorjoshuaw/events{/privacy}","received_events_url":"https://api.github.com/users/taylorjoshuaw/received_events","type":"User","site_admin":false},"repo":{"id":156313946,"node_id":"MDEwOlJlcG9zaXRvcnkxNTYzMTM5NDY=","name":"make-pro-2d-games-with-godot","full_name":"taylorjoshuaw/make-pro-2d-games-with-godot","private":false,"owner":{"login":"taylorjoshuaw","id":1307336,"node_id":"MDQ6VXNlcjEzMDczMzY=","avatar_url":"https://avatars2.githubusercontent.com/u/1307336?v=4","gravatar_id":"","url":"https://api.github.com/users/taylorjoshuaw","html_url":"https://github.com/taylorjoshuaw","followers_url":"https://api.github.com/users/taylorjoshuaw/followers","following_url":"https://api.github.com/users/taylorjoshuaw/following{/other_user}","gists_url":"https://api.github.com/users/taylorjoshuaw/gists{/gist_id}","starred_url":"https://api.github.com/users/taylorjoshuaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taylorjoshuaw/subscriptions","organizations_url":"https://api.github.com/users/taylorjoshuaw/orgs","repos_url":"https://api.github.com/users/taylorjoshuaw/repos","events_url":"https://api.github.com/users/taylorjoshuaw/events{/privacy}","received_events_url":"https://api.github.com/users/taylorjoshuaw/received_events","type":"User","site_admin":false},"html_url":"https://github.com/taylorjoshuaw/make-pro-2d-games-with-godot","description":"A-RPG demo made with Godot, MIT-licensed, from our Godot course","fork":true,"url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot","forks_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/forks","keys_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/teams","hooks_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/hooks","issue_events_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/issues/events{/number}","events_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/events","assignees_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/assignees{/user}","branches_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/branches{/branch}","tags_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/tags","blobs_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/git/refs{/sha}","trees_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/statuses/{sha}","languages_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/languages","stargazers_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/stargazers","contributors_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/contributors","subscribers_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/subscribers","subscription_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/subscription","commits_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/commits{/sha}","git_commits_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/git/commits{/sha}","comments_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/comments{/number}","issue_comment_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/issues/comments{/number}","contents_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/contents/{+path}","compare_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/merges","archive_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/downloads","issues_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/issues{/number}","pulls_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/pulls{/number}","milestones_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/milestones{/number}","notifications_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/labels{/name}","releases_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/releases{/id}","deployments_url":"https://api.github.com/repos/taylorjoshuaw/make-pro-2d-games-with-godot/deployments","created_at":"2018-11-06T02:26:41Z","updated_at":"2018-11-06T05:44:50Z","pushed_at":"2018-11-06T06:38:16Z","git_url":"git://github.com/taylorjoshuaw/make-pro-2d-games-with-godot.git","ssh_url":"git@github.com:taylorjoshuaw/make-pro-2d-games-with-godot.git","clone_url":"https://github.com/taylorjoshuaw/make-pro-2d-games-with-godot.git","svn_url":"https://github.com/taylorjoshuaw/make-pro-2d-games-with-godot","homepage":"","size":3610,"stargazers_count":0,"watchers_count":0,"language":"GDScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GDquest:master","ref":"master","sha":"0d451acce0b6cfa2e4fa163c81eb8134e1c4a0a3","user":{"login":"GDquest","id":26459021,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI2NDU5MDIx","avatar_url":"https://avatars1.githubusercontent.com/u/26459021?v=4","gravatar_id":"","url":"https://api.github.com/users/GDquest","html_url":"https://github.com/GDquest","followers_url":"https://api.github.com/users/GDquest/followers","following_url":"https://api.github.com/users/GDquest/following{/other_user}","gists_url":"https://api.github.com/users/GDquest/gists{/gist_id}","starred_url":"https://api.github.com/users/GDquest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GDquest/subscriptions","organizations_url":"https://api.github.com/users/GDquest/orgs","repos_url":"https://api.github.com/users/GDquest/repos","events_url":"https://api.github.com/users/GDquest/events{/privacy}","received_events_url":"https://api.github.com/users/GDquest/received_events","type":"Organization","site_admin":false},"repo":{"id":151924861,"node_id":"MDEwOlJlcG9zaXRvcnkxNTE5MjQ4NjE=","name":"make-pro-2d-games-with-godot","full_name":"GDquest/make-pro-2d-games-with-godot","private":false,"owner":{"login":"GDquest","id":26459021,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI2NDU5MDIx","avatar_url":"https://avatars1.githubusercontent.com/u/26459021?v=4","gravatar_id":"","url":"https://api.github.com/users/GDquest","html_url":"https://github.com/GDquest","followers_url":"https://api.github.com/users/GDquest/followers","following_url":"https://api.github.com/users/GDquest/following{/other_user}","gists_url":"https://api.github.com/users/GDquest/gists{/gist_id}","starred_url":"https://api.github.com/users/GDquest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GDquest/subscriptions","organizations_url":"https://api.github.com/users/GDquest/orgs","repos_url":"https://api.github.com/users/GDquest/repos","events_url":"https://api.github.com/users/GDquest/events{/privacy}","received_events_url":"https://api.github.com/users/GDquest/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GDquest/make-pro-2d-games-with-godot","description":"A-RPG demo made with Godot, MIT-licensed, from our Godot course","fork":false,"url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot","forks_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/forks","keys_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/teams","hooks_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/hooks","issue_events_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/issues/events{/number}","events_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/events","assignees_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/assignees{/user}","branches_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/branches{/branch}","tags_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/tags","blobs_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/git/refs{/sha}","trees_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/statuses/{sha}","languages_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/languages","stargazers_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/stargazers","contributors_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/contributors","subscribers_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/subscribers","subscription_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/subscription","commits_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/commits{/sha}","git_commits_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/git/commits{/sha}","comments_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/comments{/number}","issue_comment_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/issues/comments{/number}","contents_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/contents/{+path}","compare_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/merges","archive_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/downloads","issues_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/issues{/number}","pulls_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls{/number}","milestones_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/milestones{/number}","notifications_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/labels{/name}","releases_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/releases{/id}","deployments_url":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/deployments","created_at":"2018-10-07T09:21:32Z","updated_at":"2018-11-06T23:03:33Z","pushed_at":"2018-11-06T23:14:12Z","git_url":"git://github.com/GDquest/make-pro-2d-games-with-godot.git","ssh_url":"git@github.com:GDquest/make-pro-2d-games-with-godot.git","clone_url":"https://github.com/GDquest/make-pro-2d-games-with-godot.git","svn_url":"https://github.com/GDquest/make-pro-2d-games-with-godot","homepage":"","size":3598,"stargazers_count":218,"watchers_count":218,"language":"GDScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":27,"mirror_url":null,"archived":false,"open_issues_count":12,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":27,"open_issues":12,"watchers":218,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls/89"},"html":{"href":"https://github.com/GDquest/make-pro-2d-games-with-godot/pull/89"},"issue":{"href":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/issues/89"},"comments":{"href":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/issues/89/comments"},"review_comments":{"href":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls/89/comments"},"review_comment":{"href":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/pulls/89/commits"},"statuses":{"href":"https://api.github.com/repos/GDquest/make-pro-2d-games-with-godot/statuses/5bf959867bddba90a04a24cf537fbf0866e87a84"}},"author_association":"NONE","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"NathanLovato","id":12694995,"node_id":"MDQ6VXNlcjEyNjk0OTk1","avatar_url":"https://avatars3.githubusercontent.com/u/12694995?v=4","gravatar_id":"","url":"https://api.github.com/users/NathanLovato","html_url":"https://github.com/NathanLovato","followers_url":"https://api.github.com/users/NathanLovato/followers","following_url":"https://api.github.com/users/NathanLovato/following{/other_user}","gists_url":"https://api.github.com/users/NathanLovato/gists{/gist_id}","starred_url":"https://api.github.com/users/NathanLovato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NathanLovato/subscriptions","organizations_url":"https://api.github.com/users/NathanLovato/orgs","repos_url":"https://api.github.com/users/NathanLovato/repos","events_url":"https://api.github.com/users/NathanLovato/events{/privacy}","received_events_url":"https://api.github.com/users/NathanLovato/received_events","type":"User","site_admin":false},"comments":2,"review_comments":0,"maintainer_can_modify":false,"commits":4,"additions":31,"deletions":26,"changed_files":4}}
{"actor":{"display_login":"NathanLovato"}}