Redid some collision-detection - no new features

This commit is contained in:
julian 2018-06-29 16:24:39 +02:00
parent 292c6cf08f
commit ed3a54af10
17 changed files with 321 additions and 296 deletions

View File

@ -86,20 +86,31 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/build-info" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes-jar" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes-jar" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-apk" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-main-apk-res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/resources" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/split-apk" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/splits-support" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/splits-support" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" />

File diff suppressed because one or more lines are too long

View File

@ -4,21 +4,21 @@ ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12 INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12 INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12 INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12
MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/129292706d58eaa2ec38773c9ee9276e/AndroidManifest.xml:17:1-24:12 MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/f70bb4f34045a4ad4687360caf0ef927/AndroidManifest.xml:17:1-24:12
MERGED from [com.google.android.gms:play-services-ads:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-15.0.0.aar/1727ceccb3bfaf1e1249c68b1acb9ca2/AndroidManifest.xml:17:1-25:12 MERGED from [com.google.android.gms:play-services-ads:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-15.0.0.aar/7ac24a6f66d0598e2adcb13e6d71007a/AndroidManifest.xml:17:1-25:12
MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/fc6693aec41de5c870b5746aa4de9f10/AndroidManifest.xml:17:1-24:12 MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/ee16e1ceb133ed4e18a847b72832fd6f/AndroidManifest.xml:17:1-24:12
MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:17:1-36:12 MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:17:1-36:12
MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/1393512dd54bd99f0e67cd94c3fa42c8/AndroidManifest.xml:2:1-9:12 MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/7228f95980bb897adadb225cedf5e592/AndroidManifest.xml:2:1-9:12
MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/eecbca62aba1ebef742a1b48098a6aa9/AndroidManifest.xml:17:1-28:12 MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/e6be48dd0b6e4917c12c50474730ff78/AndroidManifest.xml:17:1-28:12
MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/70a507bdce25edd4f0ef8847c2b6cf5a/AndroidManifest.xml:17:1-31:12 MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/403416afa90196cce0fd49a00fa22962/AndroidManifest.xml:17:1-31:12
MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/7f6904797d97f90b26d5b2e089611917/AndroidManifest.xml:17:1-28:12 MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/0a428101973fd54eb7667c484618df34/AndroidManifest.xml:17:1-28:12
MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/c12d7e6acac8b0f0add805538afc1b0c/AndroidManifest.xml:17:1-24:12 MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/dfd96f823a554f14fee781bac95ef9dc/AndroidManifest.xml:17:1-24:12
MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/ef1ac4c6ae609a360ee0f28a0f75bb14/AndroidManifest.xml:17:1-31:12 MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/aaa178100ecfc1b9d4211ee422904fab/AndroidManifest.xml:17:1-31:12
MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/baed94e7a5fb135aa8b31946815dfbe8/AndroidManifest.xml:17:1-31:12 MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/4e9bfb3e7bd9eb8f0a1315161e1afba7/AndroidManifest.xml:17:1-31:12
MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/93b3a6f58fbc99ec81855ce1a4f30f85/AndroidManifest.xml:17:1-31:12 MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/962659bc193c74c3d8396b28d91edbd1/AndroidManifest.xml:17:1-31:12
MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/2925200056b0dc0fa3f8acd4d6a71c4e/AndroidManifest.xml:17:1-31:12 MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/07e5211afbefb3917a439f23e4af4190/AndroidManifest.xml:17:1-31:12
MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/3755c07159852d0529030aba18d6157c/AndroidManifest.xml:17:1-31:12 MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/b422348bafb09bac1523beee6b873efd/AndroidManifest.xml:17:1-31:12
MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/09648047c90badc0b0127ce878e489ef/AndroidManifest.xml:17:1-30:12 MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/c7fdda8e225d8c787b9e917a4ca7f2fe/AndroidManifest.xml:17:1-30:12
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12 INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12 INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12 INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:2:1-28:12
@ -44,34 +44,34 @@ ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/
ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:7:9-32 ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:7:9-32
application application
ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:9:5-26:19 ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:9:5-26:19
MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/129292706d58eaa2ec38773c9ee9276e/AndroidManifest.xml:22:5-20 MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/f70bb4f34045a4ad4687360caf0ef927/AndroidManifest.xml:22:5-20
MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/129292706d58eaa2ec38773c9ee9276e/AndroidManifest.xml:22:5-20 MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/f70bb4f34045a4ad4687360caf0ef927/AndroidManifest.xml:22:5-20
MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/fc6693aec41de5c870b5746aa4de9f10/AndroidManifest.xml:22:5-20 MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/ee16e1ceb133ed4e18a847b72832fd6f/AndroidManifest.xml:22:5-20
MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/fc6693aec41de5c870b5746aa4de9f10/AndroidManifest.xml:22:5-20 MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/ee16e1ceb133ed4e18a847b72832fd6f/AndroidManifest.xml:22:5-20
MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:26:5-34:19 MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:26:5-34:19
MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:26:5-34:19 MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:26:5-34:19
MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/1393512dd54bd99f0e67cd94c3fa42c8/AndroidManifest.xml:7:5-20 MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/7228f95980bb897adadb225cedf5e592/AndroidManifest.xml:7:5-20
MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/1393512dd54bd99f0e67cd94c3fa42c8/AndroidManifest.xml:7:5-20 MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/7228f95980bb897adadb225cedf5e592/AndroidManifest.xml:7:5-20
MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/eecbca62aba1ebef742a1b48098a6aa9/AndroidManifest.xml:22:5-26:19 MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/e6be48dd0b6e4917c12c50474730ff78/AndroidManifest.xml:22:5-26:19
MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/eecbca62aba1ebef742a1b48098a6aa9/AndroidManifest.xml:22:5-26:19 MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/e6be48dd0b6e4917c12c50474730ff78/AndroidManifest.xml:22:5-26:19
MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/70a507bdce25edd4f0ef8847c2b6cf5a/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/403416afa90196cce0fd49a00fa22962/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/70a507bdce25edd4f0ef8847c2b6cf5a/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/403416afa90196cce0fd49a00fa22962/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/7f6904797d97f90b26d5b2e089611917/AndroidManifest.xml:22:5-26:19 MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/0a428101973fd54eb7667c484618df34/AndroidManifest.xml:22:5-26:19
MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/7f6904797d97f90b26d5b2e089611917/AndroidManifest.xml:22:5-26:19 MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/0a428101973fd54eb7667c484618df34/AndroidManifest.xml:22:5-26:19
MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/c12d7e6acac8b0f0add805538afc1b0c/AndroidManifest.xml:22:5-20 MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/dfd96f823a554f14fee781bac95ef9dc/AndroidManifest.xml:22:5-20
MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/c12d7e6acac8b0f0add805538afc1b0c/AndroidManifest.xml:22:5-20 MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/dfd96f823a554f14fee781bac95ef9dc/AndroidManifest.xml:22:5-20
MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/ef1ac4c6ae609a360ee0f28a0f75bb14/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/aaa178100ecfc1b9d4211ee422904fab/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/ef1ac4c6ae609a360ee0f28a0f75bb14/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/aaa178100ecfc1b9d4211ee422904fab/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/baed94e7a5fb135aa8b31946815dfbe8/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/4e9bfb3e7bd9eb8f0a1315161e1afba7/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/baed94e7a5fb135aa8b31946815dfbe8/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/4e9bfb3e7bd9eb8f0a1315161e1afba7/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/93b3a6f58fbc99ec81855ce1a4f30f85/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/962659bc193c74c3d8396b28d91edbd1/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/93b3a6f58fbc99ec81855ce1a4f30f85/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/962659bc193c74c3d8396b28d91edbd1/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/2925200056b0dc0fa3f8acd4d6a71c4e/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/07e5211afbefb3917a439f23e4af4190/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/2925200056b0dc0fa3f8acd4d6a71c4e/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/07e5211afbefb3917a439f23e4af4190/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/3755c07159852d0529030aba18d6157c/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/b422348bafb09bac1523beee6b873efd/AndroidManifest.xml:25:5-29:19
MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/3755c07159852d0529030aba18d6157c/AndroidManifest.xml:25:5-29:19 MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/b422348bafb09bac1523beee6b873efd/AndroidManifest.xml:25:5-29:19
MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/09648047c90badc0b0127ce878e489ef/AndroidManifest.xml:24:5-28:19 MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/c7fdda8e225d8c787b9e917a4ca7f2fe/AndroidManifest.xml:24:5-28:19
MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/09648047c90badc0b0127ce878e489ef/AndroidManifest.xml:24:5-28:19 MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/c7fdda8e225d8c787b9e917a4ca7f2fe/AndroidManifest.xml:24:5-28:19
android:supportsRtl android:supportsRtl
ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:13:9-35 ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml:13:9-35
android:label android:label
@ -104,40 +104,40 @@ uses-sdk
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml reason: use-sdk injection requested INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml reason: use-sdk injection requested
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml
MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/129292706d58eaa2ec38773c9ee9276e/AndroidManifest.xml:20:5-43 MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/f70bb4f34045a4ad4687360caf0ef927/AndroidManifest.xml:20:5-43
MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/129292706d58eaa2ec38773c9ee9276e/AndroidManifest.xml:20:5-43 MERGED from [com.android.support:appcompat-v7:23.1.1] /home/julian/.gradle/caches/transforms-1/files-1.1/appcompat-v7-23.1.1.aar/f70bb4f34045a4ad4687360caf0ef927/AndroidManifest.xml:20:5-43
MERGED from [com.google.android.gms:play-services-ads:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-15.0.0.aar/1727ceccb3bfaf1e1249c68b1acb9ca2/AndroidManifest.xml:21:5-23:62 MERGED from [com.google.android.gms:play-services-ads:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-15.0.0.aar/7ac24a6f66d0598e2adcb13e6d71007a/AndroidManifest.xml:21:5-23:62
MERGED from [com.google.android.gms:play-services-ads:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-15.0.0.aar/1727ceccb3bfaf1e1249c68b1acb9ca2/AndroidManifest.xml:21:5-23:62 MERGED from [com.google.android.gms:play-services-ads:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-15.0.0.aar/7ac24a6f66d0598e2adcb13e6d71007a/AndroidManifest.xml:21:5-23:62
MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/fc6693aec41de5c870b5746aa4de9f10/AndroidManifest.xml:20:5-44 MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/ee16e1ceb133ed4e18a847b72832fd6f/AndroidManifest.xml:20:5-44
MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/fc6693aec41de5c870b5746aa4de9f10/AndroidManifest.xml:20:5-44 MERGED from [com.google.android.gms:play-services-ads-identifier:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-15.0.1.aar/ee16e1ceb133ed4e18a847b72832fd6f/AndroidManifest.xml:20:5-44
MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:20:5-44 MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:20:5-44
MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:20:5-44 MERGED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:20:5-44
MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/1393512dd54bd99f0e67cd94c3fa42c8/AndroidManifest.xml:5:5-44 MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/7228f95980bb897adadb225cedf5e592/AndroidManifest.xml:5:5-44
MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/1393512dd54bd99f0e67cd94c3fa42c8/AndroidManifest.xml:5:5-44 MERGED from [com.google.android.gms:play-services-gass:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-gass-15.0.0.aar/7228f95980bb897adadb225cedf5e592/AndroidManifest.xml:5:5-44
MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/eecbca62aba1ebef742a1b48098a6aa9/AndroidManifest.xml:20:5-44 MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/e6be48dd0b6e4917c12c50474730ff78/AndroidManifest.xml:20:5-44
MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/eecbca62aba1ebef742a1b48098a6aa9/AndroidManifest.xml:20:5-44 MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/e6be48dd0b6e4917c12c50474730ff78/AndroidManifest.xml:20:5-44
MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/70a507bdce25edd4f0ef8847c2b6cf5a/AndroidManifest.xml:21:5-23:54 MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/403416afa90196cce0fd49a00fa22962/AndroidManifest.xml:21:5-23:54
MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/70a507bdce25edd4f0ef8847c2b6cf5a/AndroidManifest.xml:21:5-23:54 MERGED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/403416afa90196cce0fd49a00fa22962/AndroidManifest.xml:21:5-23:54
MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/7f6904797d97f90b26d5b2e089611917/AndroidManifest.xml:20:5-44 MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/0a428101973fd54eb7667c484618df34/AndroidManifest.xml:20:5-44
MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/7f6904797d97f90b26d5b2e089611917/AndroidManifest.xml:20:5-44 MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/0a428101973fd54eb7667c484618df34/AndroidManifest.xml:20:5-44
MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/c12d7e6acac8b0f0add805538afc1b0c/AndroidManifest.xml:20:5-44 MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/dfd96f823a554f14fee781bac95ef9dc/AndroidManifest.xml:20:5-44
MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/c12d7e6acac8b0f0add805538afc1b0c/AndroidManifest.xml:20:5-44 MERGED from [com.google.android.gms:play-services-ads-base:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-15.0.0.aar/dfd96f823a554f14fee781bac95ef9dc/AndroidManifest.xml:20:5-44
MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/ef1ac4c6ae609a360ee0f28a0f75bb14/AndroidManifest.xml:21:5-23:63 MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/aaa178100ecfc1b9d4211ee422904fab/AndroidManifest.xml:21:5-23:63
MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/ef1ac4c6ae609a360ee0f28a0f75bb14/AndroidManifest.xml:21:5-23:63 MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/aaa178100ecfc1b9d4211ee422904fab/AndroidManifest.xml:21:5-23:63
MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/baed94e7a5fb135aa8b31946815dfbe8/AndroidManifest.xml:21:5-23:60 MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/4e9bfb3e7bd9eb8f0a1315161e1afba7/AndroidManifest.xml:21:5-23:60
MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/baed94e7a5fb135aa8b31946815dfbe8/AndroidManifest.xml:21:5-23:60 MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/4e9bfb3e7bd9eb8f0a1315161e1afba7/AndroidManifest.xml:21:5-23:60
MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/93b3a6f58fbc99ec81855ce1a4f30f85/AndroidManifest.xml:21:5-23:61 MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/962659bc193c74c3d8396b28d91edbd1/AndroidManifest.xml:21:5-23:61
MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/93b3a6f58fbc99ec81855ce1a4f30f85/AndroidManifest.xml:21:5-23:61 MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/962659bc193c74c3d8396b28d91edbd1/AndroidManifest.xml:21:5-23:61
MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/2925200056b0dc0fa3f8acd4d6a71c4e/AndroidManifest.xml:21:5-23:58 MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/07e5211afbefb3917a439f23e4af4190/AndroidManifest.xml:21:5-23:58
MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/2925200056b0dc0fa3f8acd4d6a71c4e/AndroidManifest.xml:21:5-23:58 MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/07e5211afbefb3917a439f23e4af4190/AndroidManifest.xml:21:5-23:58
MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/3755c07159852d0529030aba18d6157c/AndroidManifest.xml:21:5-23:58 MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/b422348bafb09bac1523beee6b873efd/AndroidManifest.xml:21:5-23:58
MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/3755c07159852d0529030aba18d6157c/AndroidManifest.xml:21:5-23:58 MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/b422348bafb09bac1523beee6b873efd/AndroidManifest.xml:21:5-23:58
MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/09648047c90badc0b0127ce878e489ef/AndroidManifest.xml:20:5-22:41 MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/c7fdda8e225d8c787b9e917a4ca7f2fe/AndroidManifest.xml:20:5-22:41
MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/09648047c90badc0b0127ce878e489ef/AndroidManifest.xml:20:5-22:41 MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/c7fdda8e225d8c787b9e917a4ca7f2fe/AndroidManifest.xml:20:5-22:41
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml
tools:overrideLibrary tools:overrideLibrary
ADDED from [com.google.android.gms:play-services-ads:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-15.0.0.aar/1727ceccb3bfaf1e1249c68b1acb9ca2/AndroidManifest.xml:23:9-59 ADDED from [com.google.android.gms:play-services-ads:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-15.0.0.aar/7ac24a6f66d0598e2adcb13e6d71007a/AndroidManifest.xml:23:9-59
android:targetSdkVersion android:targetSdkVersion
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml
ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml
@ -147,50 +147,50 @@ INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRo
ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml ADDED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml
INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml INJECTED from /mnt/FE6CC35E6CC31077/Users/Julian/AndroidStudioProjects/EndlessRoll/app/src/main/AndroidManifest.xml
uses-permission#android.permission.INTERNET uses-permission#android.permission.INTERNET
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:23:5-67 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:23:5-67
android:name android:name
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:23:22-64 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:23:22-64
uses-permission#android.permission.ACCESS_NETWORK_STATE uses-permission#android.permission.ACCESS_NETWORK_STATE
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:24:5-79 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:24:5-79
android:name android:name
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:24:22-76 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:24:22-76
activity#com.google.android.gms.ads.AdActivity activity#com.google.android.gms.ads.AdActivity
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:29:9-33:64 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:29:9-33:64
android:exported android:exported
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:32:13-37 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:32:13-37
android:configChanges android:configChanges
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:31:13-122 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:31:13-122
android:theme android:theme
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:33:13-61 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:33:13-61
android:name android:name
ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/4e1ea8a95d3b5f60ea4d71f6b069fbdb/AndroidManifest.xml:30:13-65 ADDED from [com.google.android.gms:play-services-ads-lite:15.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-15.0.0.aar/94e545642fe38314e8639620e7e1730b/AndroidManifest.xml:30:13-65
meta-data#com.google.android.gms.version meta-data#com.google.android.gms.version
ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/eecbca62aba1ebef742a1b48098a6aa9/AndroidManifest.xml:23:9-25:69 ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/e6be48dd0b6e4917c12c50474730ff78/AndroidManifest.xml:23:9-25:69
android:value android:value
ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/eecbca62aba1ebef742a1b48098a6aa9/AndroidManifest.xml:25:13-66 ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/e6be48dd0b6e4917c12c50474730ff78/AndroidManifest.xml:25:13-66
android:name android:name
ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/eecbca62aba1ebef742a1b48098a6aa9/AndroidManifest.xml:24:13-58 ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/julian/.gradle/caches/transforms-1/files-1.1/play-services-basement-15.0.1.aar/e6be48dd0b6e4917c12c50474730ff78/AndroidManifest.xml:24:13-58
meta-data#android.support.VERSION meta-data#android.support.VERSION
ADDED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/70a507bdce25edd4f0ef8847c2b6cf5a/AndroidManifest.xml:26:9-28:38 ADDED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/403416afa90196cce0fd49a00fa22962/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/7f6904797d97f90b26d5b2e089611917/AndroidManifest.xml:23:9-25:38 MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/0a428101973fd54eb7667c484618df34/AndroidManifest.xml:23:9-25:38
MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/7f6904797d97f90b26d5b2e089611917/AndroidManifest.xml:23:9-25:38 MERGED from [com.android.support:customtabs:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/0a428101973fd54eb7667c484618df34/AndroidManifest.xml:23:9-25:38
MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/ef1ac4c6ae609a360ee0f28a0f75bb14/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/aaa178100ecfc1b9d4211ee422904fab/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/ef1ac4c6ae609a360ee0f28a0f75bb14/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-media-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/aaa178100ecfc1b9d4211ee422904fab/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/baed94e7a5fb135aa8b31946815dfbe8/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/4e9bfb3e7bd9eb8f0a1315161e1afba7/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/baed94e7a5fb135aa8b31946815dfbe8/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-fragment:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/4e9bfb3e7bd9eb8f0a1315161e1afba7/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/93b3a6f58fbc99ec81855ce1a4f30f85/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/962659bc193c74c3d8396b28d91edbd1/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/93b3a6f58fbc99ec81855ce1a4f30f85/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-core-utils:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/962659bc193c74c3d8396b28d91edbd1/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/2925200056b0dc0fa3f8acd4d6a71c4e/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/07e5211afbefb3917a439f23e4af4190/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/2925200056b0dc0fa3f8acd4d6a71c4e/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-core-ui:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/07e5211afbefb3917a439f23e4af4190/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/3755c07159852d0529030aba18d6157c/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/b422348bafb09bac1523beee6b873efd/AndroidManifest.xml:26:9-28:38
MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/3755c07159852d0529030aba18d6157c/AndroidManifest.xml:26:9-28:38 MERGED from [com.android.support:support-compat:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/b422348bafb09bac1523beee6b873efd/AndroidManifest.xml:26:9-28:38
android:value android:value
ADDED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/70a507bdce25edd4f0ef8847c2b6cf5a/AndroidManifest.xml:28:13-35 ADDED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/403416afa90196cce0fd49a00fa22962/AndroidManifest.xml:28:13-35
android:name android:name
ADDED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/70a507bdce25edd4f0ef8847c2b6cf5a/AndroidManifest.xml:27:13-51 ADDED from [com.android.support:support-v4:26.1.0] /home/julian/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/403416afa90196cce0fd49a00fa22962/AndroidManifest.xml:27:13-51
meta-data#android.arch.lifecycle.VERSION meta-data#android.arch.lifecycle.VERSION
ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/09648047c90badc0b0127ce878e489ef/AndroidManifest.xml:25:9-27:47 ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/c7fdda8e225d8c787b9e917a4ca7f2fe/AndroidManifest.xml:25:9-27:47
android:value android:value
ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/09648047c90badc0b0127ce878e489ef/AndroidManifest.xml:27:13-44 ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/c7fdda8e225d8c787b9e917a4ca7f2fe/AndroidManifest.xml:27:13-44
android:name android:name
ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/09648047c90badc0b0127ce878e489ef/AndroidManifest.xml:26:13-58 ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/julian/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/c7fdda8e225d8c787b9e917a4ca7f2fe/AndroidManifest.xml:26:13-58

View File

@ -169,7 +169,7 @@
</obstacles> </obstacles>
<stars class="java.util.ArrayList"> <stars class="java.util.ArrayList">
<positionData x="2.8000035" y="-0.77999914"/> <positionData x="2.8000035" y="-0.77999914"/>
<positionData x="11.243364" y="-0.43999982"/> <positionData x="11.210031" y="-0.47333312"/>
<positionData x="16.21668" y="0.34666675"/> <positionData x="16.21668" y="0.34666675"/>
</stars> </stars>
<energy x="19.086668" y="-0.81333315"/> <energy x="19.086668" y="-0.81333315"/>

View File

@ -9,7 +9,7 @@ import de.frajul.endlessroll.entities.collision.geometry.Triangle;
*/ */
public class CircleTriangleCollisionDetector { public class CircleTriangleCollisionDetector {
public boolean circleTriangleCollision(Circle circle, Triangle triangle) { public boolean isCircleTriangleCollision(Circle circle, Triangle triangle) {
if (circleIntersectingWithTriangleVertices(circle, triangle)) if (circleIntersectingWithTriangleVertices(circle, triangle))
return true; return true;
@ -22,18 +22,18 @@ public class CircleTriangleCollisionDetector {
} }
private boolean circleIntersectingWithTriangleEdges(Circle circle, Triangle triangle) { private boolean circleIntersectingWithTriangleEdges(Circle circle, Triangle triangle) {
Vector edge1 = triangle.getVertex1().vectorTo(triangle.getVertex2()); Vector edge1 = triangle.getBottomRightVertex().vectorTo(triangle.getTopRightVertex());
Vector edge2 = triangle.getVertex2().vectorTo(triangle.getVertex3()); Vector edge2 = triangle.getTopRightVertex().vectorTo(triangle.getBottomLeftVertex());
Vector edge3 = triangle.getVertex3().vectorTo(triangle.getVertex1()); Vector edge3 = triangle.getBottomLeftVertex().vectorTo(triangle.getBottomRightVertex());
boolean intersectingWithEdge1 = circleIntersectingWithTriangleEdge(circle, triangle.getVertex1(), edge1); boolean intersectingWithEdge1 = circleIntersectingWithTriangleEdge(circle, triangle.getBottomRightVertex(), edge1);
boolean intersectingWithEdge2 = circleIntersectingWithTriangleEdge(circle, triangle.getVertex2(), edge2); boolean intersectingWithEdge2 = circleIntersectingWithTriangleEdge(circle, triangle.getTopRightVertex(), edge2);
boolean intersectingWithEdge3 = circleIntersectingWithTriangleEdge(circle, triangle.getVertex3(), edge3); boolean intersectingWithEdge3 = circleIntersectingWithTriangleEdge(circle, triangle.getBottomLeftVertex(), edge3);
return intersectingWithEdge1 || intersectingWithEdge2 || intersectingWithEdge3; return intersectingWithEdge1 || intersectingWithEdge2 || intersectingWithEdge3;
} }
private boolean circleIntersectingWithTriangleEdge(Circle circle, Vector vertex, Vector edge) { private boolean circleIntersectingWithTriangleEdge(Circle circle, Vector vertex, Vector edge) {
Vector vertexToCenter = vertex.vectorTo(circle.getCenter()); Vector vertexToCenter = vertex.vectorTo(circle.getPosition());
Vector kVector = new Vector(vertexToCenter).mul(edge); Vector kVector = new Vector(vertexToCenter).mul(edge);
float k = kVector.x + kVector.y; float k = kVector.x + kVector.y;
@ -49,12 +49,12 @@ public class CircleTriangleCollisionDetector {
} }
private boolean circleCenterInsideTriangle(Circle circle, Triangle triangle) { private boolean circleCenterInsideTriangle(Circle circle, Triangle triangle) {
Vector vertex1To2 = triangle.getVertex1().vectorTo(triangle.getVertex2()); Vector vertex1To2 = triangle.getBottomRightVertex().vectorTo(triangle.getTopRightVertex());
Vector vertex2To3 = triangle.getVertex2().vectorTo(triangle.getVertex3()); Vector vertex2To3 = triangle.getTopRightVertex().vectorTo(triangle.getBottomLeftVertex());
Vector vertex3To1 = triangle.getVertex3().vectorTo(triangle.getVertex1()); Vector vertex3To1 = triangle.getBottomLeftVertex().vectorTo(triangle.getBottomRightVertex());
Vector vertex1ToCenter = triangle.getVertex1().vectorTo(circle.getCenter()); Vector vertex1ToCenter = triangle.getBottomRightVertex().vectorTo(circle.getPosition());
Vector vertex2ToCenter = triangle.getVertex2().vectorTo(circle.getCenter()); Vector vertex2ToCenter = triangle.getTopRightVertex().vectorTo(circle.getPosition());
Vector vertex3ToCenter = triangle.getVertex3().vectorTo(circle.getCenter()); Vector vertex3ToCenter = triangle.getBottomLeftVertex().vectorTo(circle.getPosition());
boolean centerInsideV1V2 = vertex1To2.y * vertex1ToCenter.x - vertex1To2.x * vertex1ToCenter.y < 0; boolean centerInsideV1V2 = vertex1To2.y * vertex1ToCenter.x - vertex1To2.x * vertex1ToCenter.y < 0;
boolean centerInsideV2V3 = vertex2To3.y * vertex2ToCenter.x - vertex2To3.x * vertex2ToCenter.y < 0; boolean centerInsideV2V3 = vertex2To3.y * vertex2ToCenter.x - vertex2To3.x * vertex2ToCenter.y < 0;
@ -64,14 +64,14 @@ public class CircleTriangleCollisionDetector {
} }
private boolean circleIntersectingWithTriangleVertices(Circle circle, Triangle triangle) { private boolean circleIntersectingWithTriangleVertices(Circle circle, Triangle triangle) {
boolean intersectingWithVertex1 = circleIntersectingWithTriangleVertex(circle, triangle.getVertex1()); boolean intersectingWithVertex1 = circleIntersectingWithTriangleVertex(circle, triangle.getBottomRightVertex());
boolean intersectingWithVertex2 = circleIntersectingWithTriangleVertex(circle, triangle.getVertex2()); boolean intersectingWithVertex2 = circleIntersectingWithTriangleVertex(circle, triangle.getTopRightVertex());
boolean intersectingWithVertex3 = circleIntersectingWithTriangleVertex(circle, triangle.getVertex3()); boolean intersectingWithVertex3 = circleIntersectingWithTriangleVertex(circle, triangle.getBottomLeftVertex());
return intersectingWithVertex1 || intersectingWithVertex2 || intersectingWithVertex3; return intersectingWithVertex1 || intersectingWithVertex2 || intersectingWithVertex3;
} }
private boolean circleIntersectingWithTriangleVertex(Circle circle, Vector vertex) { private boolean circleIntersectingWithTriangleVertex(Circle circle, Vector vertex) {
Vector centerToVertex = circle.getCenter().vectorTo(vertex); Vector centerToVertex = circle.getPosition().vectorTo(vertex);
return centerToVertex.length() <= circle.getRadius(); return centerToVertex.length() <= circle.getRadius();
} }

View File

@ -5,8 +5,10 @@ import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.entities.Player; import de.frajul.endlessroll.entities.Player;
import de.frajul.endlessroll.entities.collision.collisionData.EntityCollisionData; import de.frajul.endlessroll.entities.collision.collisionData.EntityCollisionData;
import de.frajul.endlessroll.entities.collision.geometry.Circle; import de.frajul.endlessroll.entities.collision.geometry.Circle;
import de.frajul.endlessroll.entities.collision.geometry.Geometry;
import de.frajul.endlessroll.entities.collision.geometry.Quad; import de.frajul.endlessroll.entities.collision.geometry.Quad;
import de.frajul.endlessroll.entities.collision.geometry.Triangle; import de.frajul.endlessroll.entities.collision.geometry.Triangle;
import de.frajul.endlessroll.entities.tileLists.Tile;
/** /**
* Created by Julian on 01.12.2015. * Created by Julian on 01.12.2015.
@ -19,7 +21,35 @@ public class CollisionDetector {
triangleDetector = new CircleTriangleCollisionDetector(); triangleDetector = new CircleTriangleCollisionDetector();
} }
public boolean isPointQuadCollision(Vector point, Quad quad) { public boolean isCollision(Geometry g1, Geometry g2) {
if (g1 instanceof Triangle) {
if (g2 instanceof Triangle)
return isTriangleTriangleCollision((Triangle) g1, (Triangle) g2);
if (g2 instanceof Quad)
return isQuadTriangleCollision((Quad) g2, (Triangle) g1);
if (g2 instanceof Circle)
return isCircleTriangleCollision((Circle) g2, (Triangle) g1);
}
if (g1 instanceof Quad) {
if (g2 instanceof Triangle)
return isQuadTriangleCollision((Quad) g1, (Triangle) g2);
if (g2 instanceof Quad)
return isQuadQuadCollision((Quad) g1, (Quad) g2);
if (g2 instanceof Circle)
return isCircleQuadCollision((Circle) g2, (Quad) g1);
}
if (g1 instanceof Circle) {
if (g2 instanceof Triangle)
return isCircleTriangleCollision((Circle) g1, (Triangle) g2);
if (g2 instanceof Quad)
return isCircleQuadCollision((Circle) g1, (Quad) g2);
if (g2 instanceof Circle)
return isCircleCircleCollision((Circle) g1, (Circle) g2);
}
return false;
}
public boolean isPointInQuad(Vector point, Quad quad) {
if (point.getX() >= quad.getLeftEdge() && point.getX() <= quad.getRightEdge()) { if (point.getX() >= quad.getLeftEdge() && point.getX() <= quad.getRightEdge()) {
if (point.getY() >= quad.getBottomEdge() && point.getY() <= quad.getTopEdge()) { if (point.getY() >= quad.getBottomEdge() && point.getY() <= quad.getTopEdge()) {
return true; return true;
@ -29,13 +59,13 @@ public class CollisionDetector {
} }
public boolean isCircleCircleCollision(Circle c1, Circle c2) { public boolean isCircleCircleCollision(Circle c1, Circle c2) {
float distance = Math.abs(c1.getCenter().vectorTo(c2.getCenter()).length()); float distance = Math.abs(c1.getPosition().vectorTo(c2.getPosition()).length());
float radiusSum = c1.getRadius() + c2.getRadius(); float radiusSum = c1.getRadius() + c2.getRadius();
return distance < radiusSum; return distance < radiusSum;
} }
public boolean isCircleQuadCollision(Circle circle, Quad quad) { public boolean isCircleQuadCollision(Circle circle, Quad quad) {
Vector distance = circle.getCenter().vectorTo(quad.getPosition()); Vector distance = circle.getPosition().vectorTo(quad.getPosition());
distance.x = Math.abs(distance.x); distance.x = Math.abs(distance.x);
distance.y = Math.abs(distance.y); distance.y = Math.abs(distance.y);
@ -56,7 +86,7 @@ public class CollisionDetector {
} }
public boolean isCircleTriangleCollision(Circle circle, Triangle triangle) { public boolean isCircleTriangleCollision(Circle circle, Triangle triangle) {
return triangleDetector.circleTriangleCollision(circle, triangle); return triangleDetector.isCircleTriangleCollision(circle, triangle);
} }
public boolean isQuadQuadCollision(Quad q1, Quad q2) { public boolean isQuadQuadCollision(Quad q1, Quad q2) {
@ -69,6 +99,28 @@ public class CollisionDetector {
return true; return true;
} }
public boolean isTriangleTriangleCollision(Triangle triangle1, Triangle triangle2) {
boolean triangle1Vertex1InTriangle2 = isVertexInTriangle(triangle1.getBottomRightVertex(), triangle2);
if (triangle1Vertex1InTriangle2)
return true;
boolean triangle1Vertex2InTriangle2 = isVertexInTriangle(triangle1.getTopRightVertex(), triangle2);
if (triangle1Vertex2InTriangle2)
return true;
boolean triangle1Vertex3InTriangle2 = isVertexInTriangle(triangle1.getBottomLeftVertex(), triangle2);
if (triangle1Vertex3InTriangle2)
return true;
boolean triangle2Vertex1InTriangle1 = isVertexInTriangle(triangle2.getBottomRightVertex(), triangle1);
if (triangle2Vertex1InTriangle1)
return true;
boolean triangle2Vertex2InTriangle1 = isVertexInTriangle(triangle2.getTopRightVertex(), triangle1);
if (triangle2Vertex2InTriangle1)
return true;
boolean triangle2Vertex3InTriangle1 = isVertexInTriangle(triangle2.getBottomLeftVertex(), triangle1);
if (triangle2Vertex3InTriangle1)
return true;
return false;
}
public boolean isQuadTriangleCollision(Quad quad, Triangle triangle) { public boolean isQuadTriangleCollision(Quad quad, Triangle triangle) {
boolean quadVertex1InTriangle = isVertexInTriangle( boolean quadVertex1InTriangle = isVertexInTriangle(
new Vector(quad.getLeftEdge(), quad.getTopEdge()), triangle); new Vector(quad.getLeftEdge(), quad.getTopEdge()), triangle);
@ -86,61 +138,57 @@ public class CollisionDetector {
new Vector(quad.getLeftEdge(), quad.getBottomEdge()), triangle); new Vector(quad.getLeftEdge(), quad.getBottomEdge()), triangle);
if (quadVertex4InTriangle) if (quadVertex4InTriangle)
return true; return true;
boolean triangleVertex1InQuad = isVertexInQuad(triangle.getVertex1(), quad); boolean triangleVertex1InQuad = isPointInQuad(triangle.getBottomRightVertex(), quad);
if (triangleVertex1InQuad) if (triangleVertex1InQuad)
return true; return true;
boolean triangleVertex2InQuad = isVertexInQuad(triangle.getVertex2(), quad); boolean triangleVertex2InQuad = isPointInQuad(triangle.getTopRightVertex(), quad);
if (triangleVertex2InQuad) if (triangleVertex2InQuad)
return true; return true;
boolean triangleVertex3InQuad = isVertexInQuad(triangle.getVertex3(), quad); boolean triangleVertex3InQuad = isPointInQuad(triangle.getBottomLeftVertex(), quad);
if (triangleVertex3InQuad) if (triangleVertex3InQuad)
return true; return true;
return false; return false;
} }
public boolean isTriangleTriangleCollision(Triangle triangle1, Triangle triangle2) {
boolean triangle1Vertex1InTriangle2 = isVertexInTriangle(triangle1.getVertex1(), triangle2);
if (triangle1Vertex1InTriangle2)
return true;
boolean triangle1Vertex2InTriangle2 = isVertexInTriangle(triangle1.getVertex2(), triangle2);
if (triangle1Vertex2InTriangle2)
return true;
boolean triangle1Vertex3InTriangle2 = isVertexInTriangle(triangle1.getVertex3(), triangle2);
if (triangle1Vertex3InTriangle2)
return true;
boolean triangle2Vertex1InTriangle1 = isVertexInTriangle(triangle2.getVertex1(), triangle1);
if (triangle2Vertex1InTriangle1)
return true;
boolean triangle2Vertex2InTriangle1 = isVertexInTriangle(triangle2.getVertex2(), triangle1);
if (triangle2Vertex2InTriangle1)
return true;
boolean triangle2Vertex3InTriangle1 = isVertexInTriangle(triangle2.getVertex3(), triangle1);
if (triangle2Vertex3InTriangle1)
return true;
return false;
}
private boolean isVertexInTriangle(Vector vertex, Triangle triangle) { private boolean isVertexInTriangle(Vector vertex, Triangle triangle) {
Vector vertex1To2 = triangle.getVertex1().vectorTo(triangle.getVertex2()); if (!isPointInQuad(vertex, triangle))
Vector vertex2To3 = triangle.getVertex2().vectorTo(triangle.getVertex3()); return false;
Vector vertex3To1 = triangle.getVertex3().vectorTo(triangle.getVertex1()); float gradient = triangle.getGradient();
Vector vertex1ToCenter = triangle.getVertex1().vectorTo(vertex); float maxVertexY = vertex.getX() * gradient + triangle.getBottomEdge();
Vector vertex2ToCenter = triangle.getVertex2().vectorTo(vertex); return vertex.getY() <= maxVertexY;
Vector vertex3ToCenter = triangle.getVertex3().vectorTo(vertex);
boolean centerInsideV1V2 = vertex1To2.y * vertex1ToCenter.x - vertex1To2.x * vertex1ToCenter.y < 0;
boolean centerInsideV2V3 = vertex2To3.y * vertex2ToCenter.x - vertex2To3.x * vertex2ToCenter.y < 0;
boolean centerInsideV3V1 = vertex3To1.y * vertex3ToCenter.x - vertex3To1.x * vertex3ToCenter.y < 0;
return centerInsideV1V2 && centerInsideV2V3 && centerInsideV3V1;
} }
private boolean isVertexInQuad(Vector vertex, Quad quad) { public EntityCollisionData playerTerrainCollision(Player player, Tile terrainTile) {
return vertex.getX() >= quad.getLeftEdge() && vertex.getX() <= quad.getRightEdge() && vertex Circle circle = new Circle(player);
.getY() >= quad.getBottomEdge() && vertex.getY() <= quad.getTopEdge(); if (circle.getTopEdge() < terrainTile.getTopEdge()) {
float xDistance = Math.abs(circle.getPosition().x - terrainTile.getPosition().x);
if (xDistance < circle.getRadius() + terrainTile.getWidth() / 2)
return new EntityCollisionData(terrainTile, Edge.BOTTOM);
}
if (isCircleQuadCollision(circle, terrainTile)) {
Edge edge = circleQuadCollisionEdge(circle, player.getMovement(), terrainTile,
terrainTile.getMovement());
return new EntityCollisionData(terrainTile, edge);
}
return new EntityCollisionData(null, null);
} }
public EntityCollisionData playerCeilingCollision(Player player, Tile ceilingTile) {
Circle circle = new Circle(player);
if (circle.getBottomEdge() > ceilingTile.getBottomEdge()) {
float xDistance = Math.abs(circle.getPosition().x - ceilingTile.getPosition().x);
if (xDistance < circle.getRadius() + ceilingTile.getWidth() / 2)
return new EntityCollisionData(ceilingTile, Edge.TOP);
}
if (isCircleQuadCollision(circle, ceilingTile)) {
Edge edge = circleQuadCollisionEdge(circle, player.getMovement(), ceilingTile,
ceilingTile.getMovement());
return new EntityCollisionData(ceilingTile, edge);
}
return new EntityCollisionData(null, null);
}
public EntityCollisionData playerEntityCollision(Player player, Entity entity) { public EntityCollisionData playerEntityCollision(Player player, Entity entity) {
Circle circle = new Circle(player); Circle circle = new Circle(player);
@ -156,10 +204,10 @@ public class CollisionDetector {
private Edge circleQuadCollisionEdge(Circle circle, Vector circleMovement, Quad quad, Vector quadMovement) { private Edge circleQuadCollisionEdge(Circle circle, Vector circleMovement, Quad quad, Vector quadMovement) {
boolean circleFullyInsideQuad = false; boolean circleFullyInsideQuad = false;
if (circle.getCenter().getX() + circle.getRadius() <= quad.getRightEdge() && circle if (circle.getPosition().getX() + circle.getRadius() <= quad.getRightEdge() && circle
.getCenter().getX() - circle.getRadius() >= quad.getLeftEdge()) { .getPosition().getX() - circle.getRadius() >= quad.getLeftEdge()) {
if (circle.getCenter().getY() + circle.getRadius() <= quad.getTopEdge() && circle if (circle.getPosition().getY() + circle.getRadius() <= quad.getTopEdge() && circle
.getCenter().getY() - circle.getRadius() >= quad.getBottomEdge()) { .getPosition().getY() - circle.getRadius() >= quad.getBottomEdge()) {
circleFullyInsideQuad = true; circleFullyInsideQuad = true;
} }
} }
@ -172,30 +220,30 @@ public class CollisionDetector {
Vector relativeMovement = new Vector(circleMovement).translate(quadMovement.negate()); Vector relativeMovement = new Vector(circleMovement).translate(quadMovement.negate());
Edge edge = Edge.NONE; Edge edge = Edge.NONE;
if (circle.getCenter().getY() + circle.getRadius() >= quad.getTopEdge()) if (circle.getPosition().getY() + circle.getRadius() >= quad.getTopEdge())
edge = Edge.TOP; edge = Edge.TOP;
else if (circle.getCenter().getY() - circle.getRadius() <= quad.getBottomEdge()) else if (circle.getPosition().getY() - circle.getRadius() <= quad.getBottomEdge())
edge = Edge.BOTTOM; edge = Edge.BOTTOM;
if (circle.getCenter().getX() - circle.getRadius() <= quad.getLeftEdge()) { if (circle.getPosition().getX() - circle.getRadius() <= quad.getLeftEdge()) {
if (edge != Edge.NONE) { if (edge != Edge.NONE) {
if (edge == Edge.TOP) { if (edge == Edge.TOP) {
float m = -1; float m = -1;
float t = quad.getTopEdge() - m * quad.getLeftEdge(); float t = quad.getTopEdge() - m * quad.getLeftEdge();
if (circle.getCenter().getY() >= m * circle.getCenter().getX() + t) if (circle.getPosition().getY() >= m * circle.getPosition().getX() + t)
edge = Edge.TOP; edge = Edge.TOP;
else else
edge = Edge.LEFT; edge = Edge.LEFT;
} else if (edge == Edge.BOTTOM) { } else if (edge == Edge.BOTTOM) {
float m = 1; float m = 1;
float t = quad.getBottomEdge() - m * quad.getLeftEdge(); float t = quad.getBottomEdge() - m * quad.getLeftEdge();
if (circle.getCenter().getY() <= m * circle.getCenter().getX() + t) if (circle.getPosition().getY() <= m * circle.getPosition().getX() + t)
edge = Edge.BOTTOM; edge = Edge.BOTTOM;
else else
edge = Edge.LEFT; edge = Edge.LEFT;
} }
} else } else
edge = Edge.LEFT; edge = Edge.LEFT;
} else if (circle.getCenter().getX() + circle.getRadius() >= quad.getRightEdge()) { } else if (circle.getPosition().getX() + circle.getRadius() >= quad.getRightEdge()) {
if (edge != Edge.NONE) { if (edge != Edge.NONE) {
if (edge == Edge.TOP) { if (edge == Edge.TOP) {
//This movement check is because if player falls with too much speed on topLeft Vertex, sometimes RIGHT-Edge is returned //This movement check is because if player falls with too much speed on topLeft Vertex, sometimes RIGHT-Edge is returned
@ -204,7 +252,7 @@ public class CollisionDetector {
} else { } else {
float m = 1; float m = 1;
float t = quad.getTopEdge() - m * quad.getRightEdge(); float t = quad.getTopEdge() - m * quad.getRightEdge();
if (circle.getCenter().getY() >= m * circle.getCenter().getX() + t) if (circle.getPosition().getY() >= m * circle.getPosition().getX() + t)
edge = Edge.TOP; edge = Edge.TOP;
else else
edge = Edge.RIGHT; edge = Edge.RIGHT;
@ -212,7 +260,7 @@ public class CollisionDetector {
} else if (edge == Edge.BOTTOM) { } else if (edge == Edge.BOTTOM) {
float m = -1; float m = -1;
float t = quad.getBottomEdge() - m * quad.getRightEdge(); float t = quad.getBottomEdge() - m * quad.getRightEdge();
if (circle.getCenter().getY() <= m * circle.getCenter().getX() + t) if (circle.getPosition().getY() <= m * circle.getPosition().getX() + t)
edge = Edge.BOTTOM; edge = Edge.BOTTOM;
else else
edge = Edge.RIGHT; edge = Edge.RIGHT;
@ -227,7 +275,7 @@ public class CollisionDetector {
Vector relativeMovement = new Vector(circleMovement).translate(quadMovement.negate()); Vector relativeMovement = new Vector(circleMovement).translate(quadMovement.negate());
float m = relativeMovement.getY() / relativeMovement.getX(); float m = relativeMovement.getY() / relativeMovement.getX();
float t = circle.getCenter().getY() - m * circle.getCenter().getX(); float t = circle.getPosition().getY() - m * circle.getPosition().getX();
float yAtLeftEdge = m * quad.getLeftEdge() + t; float yAtLeftEdge = m * quad.getLeftEdge() + t;
boolean touchingLeftEdge = yAtLeftEdge < quad.getTopEdge() && yAtLeftEdge > quad boolean touchingLeftEdge = yAtLeftEdge < quad.getTopEdge() && yAtLeftEdge > quad
@ -244,8 +292,8 @@ public class CollisionDetector {
.getRightEdge(); .getRightEdge();
if (relativeMovement.getX() == 0) { if (relativeMovement.getX() == 0) {
if (circle.getCenter().getX() - circle.getRadius() <= quad.getRightEdge() && circle if (circle.getPosition().getX() - circle.getRadius() <= quad.getRightEdge() && circle
.getCenter().getX() + circle.getRadius() >= quad.getLeftEdge()) { .getPosition().getX() + circle.getRadius() >= quad.getLeftEdge()) {
touchingTopEdge = true; touchingTopEdge = true;
touchingBottomEdge = true; touchingBottomEdge = true;
} }
@ -254,21 +302,21 @@ public class CollisionDetector {
// CORNERS BELONGING TO TOP / BOTTOM EDGES // CORNERS BELONGING TO TOP / BOTTOM EDGES
if (touchingLeftEdge) { if (touchingLeftEdge) {
if (touchingRightEdge) { if (touchingRightEdge) {
if (circle.getCenter().getX() <= quad.getPosition().getX()) if (circle.getPosition().getX() <= quad.getPosition().getX())
return Edge.LEFT; return Edge.LEFT;
return Edge.RIGHT; return Edge.RIGHT;
} else if (touchingTopEdge) { } else if (touchingTopEdge) {
// Normale through vertex // Normale through vertex
float mn = -1 / m; float mn = -1 / m;
float tn = quad.getTopEdge() - mn * quad.getLeftEdge(); float tn = quad.getTopEdge() - mn * quad.getLeftEdge();
if (circle.getCenter().getY() < mn * circle.getCenter().getX() + tn) if (circle.getPosition().getY() < mn * circle.getPosition().getX() + tn)
return Edge.LEFT; return Edge.LEFT;
return Edge.TOP; return Edge.TOP;
} else if (touchingBottomEdge) { } else if (touchingBottomEdge) {
// Normale through vertex // Normale through vertex
float mn = -1 / m; float mn = -1 / m;
float tn = quad.getBottomEdge() - mn * quad.getLeftEdge(); float tn = quad.getBottomEdge() - mn * quad.getLeftEdge();
if (circle.getCenter().getY() > mn * circle.getCenter().getX() + tn) if (circle.getPosition().getY() > mn * circle.getPosition().getX() + tn)
return Edge.LEFT; return Edge.LEFT;
return Edge.BOTTOM; return Edge.BOTTOM;
} else { } else {
@ -279,14 +327,14 @@ public class CollisionDetector {
// Normale through vertex // Normale through vertex
float mn = -1 / m; float mn = -1 / m;
float tn = quad.getTopEdge() - mn * quad.getRightEdge(); float tn = quad.getTopEdge() - mn * quad.getRightEdge();
if (circle.getCenter().getY() < mn * circle.getCenter().getX() + tn) if (circle.getPosition().getY() < mn * circle.getPosition().getX() + tn)
return Edge.RIGHT; return Edge.RIGHT;
return Edge.TOP; return Edge.TOP;
} else if (touchingBottomEdge) { } else if (touchingBottomEdge) {
// Normale through vertex // Normale through vertex
float mn = -1 / m; float mn = -1 / m;
float tn = quad.getBottomEdge() - mn * quad.getRightEdge(); float tn = quad.getBottomEdge() - mn * quad.getRightEdge();
if (circle.getCenter().getY() > mn * circle.getCenter().getX() + tn) if (circle.getPosition().getY() > mn * circle.getPosition().getX() + tn)
return Edge.RIGHT; return Edge.RIGHT;
return Edge.BOTTOM; return Edge.BOTTOM;
} else { } else {
@ -294,7 +342,7 @@ public class CollisionDetector {
} }
} else if (touchingTopEdge) { } else if (touchingTopEdge) {
if (touchingBottomEdge) { if (touchingBottomEdge) {
if (circle.getCenter().getY() >= quad.getPosition().getY()) if (circle.getPosition().getY() >= quad.getPosition().getY())
return Edge.TOP; return Edge.TOP;
return Edge.BOTTOM; return Edge.BOTTOM;
} else { } else {

View File

@ -57,7 +57,7 @@ public class CollisionManager {
private void checkCeilingCollision(EntityCollisionData data) { private void checkCeilingCollision(EntityCollisionData data) {
checkEntityCollision(data); checkEntityCollision(data);
if (data.getEdge() == Edge.RIGHT || data.getEdge() == Edge.LEFT) if (data.getEdge() != Edge.BOTTOM)
game.onGameOver(true); game.onGameOver(true);
} }

View File

@ -7,7 +7,7 @@ import de.frajul.endlessroll.entities.collision.CollisionDetector;
/** /**
* Created by Julian on 01.12.2015. * Created by Julian on 01.12.2015.
*/ */
public class Circle implements Geometry { public class Circle extends Geometry {
private Vector center; private Vector center;
private float radius; private float radius;
@ -21,7 +21,27 @@ public class Circle implements Geometry {
this.radius = radius; this.radius = radius;
} }
public Vector getCenter() { @Override
public float getRightEdge() {
return center.x + radius;
}
@Override
public float getLeftEdge() {
return center.x - radius;
}
@Override
public float getTopEdge() {
return center.y + radius;
}
@Override
public float getBottomEdge() {
return center.y - radius;
}
public Vector getPosition() {
return center; return center;
} }
@ -33,19 +53,4 @@ public class Circle implements Geometry {
this.radius = radius; this.radius = radius;
} }
@Override
public boolean isCollisionWithCircle(Circle circle, CollisionDetector collisionDetector){
return collisionDetector.isCircleCircleCollision(this, circle);
}
@Override
public boolean isCollisionWithQuad(Quad quad, CollisionDetector collisionDetector){
return collisionDetector.isCircleQuadCollision(this, quad);
}
@Override
public boolean isCollisionWithTriangle(Triangle triangle, CollisionDetector collisionDetector){
return collisionDetector.isCircleTriangleCollision(this, triangle);
}
} }

View File

@ -1,17 +1,16 @@
package de.frajul.endlessroll.entities.collision.geometry; package de.frajul.endlessroll.entities.collision.geometry;
import de.frajul.endlessroll.entities.collision.CollisionDetector;
/** /**
* Created by Julian on 28.02.2016. * Created by Julian on 28.02.2016.
*/ */
public interface Geometry { public abstract class Geometry {
boolean isCollisionWithCircle(Circle circle, CollisionDetector collisionDetector); public abstract float getTopEdge();
boolean isCollisionWithQuad(Quad quad, CollisionDetector collisionDetector); public abstract float getBottomEdge();
boolean isCollisionWithTriangle(Triangle triangle, CollisionDetector collisionDetector); public abstract float getRightEdge();
public abstract float getLeftEdge();
} }

View File

@ -1,12 +1,11 @@
package de.frajul.endlessroll.entities.collision.geometry; package de.frajul.endlessroll.entities.collision.geometry;
import de.frajul.endlessroll.data.Vector; import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.collision.CollisionDetector;
/** /**
* Created by Julian on 01.12.2015. * Created by Julian on 01.12.2015.
*/ */
public class Quad implements Geometry { public class Quad extends Geometry {
protected Vector position; protected Vector position;
protected float width, height; protected float width, height;
@ -17,18 +16,22 @@ public class Quad implements Geometry {
this.height = height; this.height = height;
} }
@Override
public float getRightEdge() { public float getRightEdge() {
return position.x + width / 2; return position.x + width / 2;
} }
@Override
public float getLeftEdge() { public float getLeftEdge() {
return position.x - width / 2; return position.x - width / 2;
} }
@Override
public float getTopEdge() { public float getTopEdge() {
return position.y + height / 2; return position.y + height / 2;
} }
@Override
public float getBottomEdge() { public float getBottomEdge() {
return position.y - height / 2; return position.y - height / 2;
} }
@ -57,19 +60,4 @@ public class Quad implements Geometry {
this.height = height; this.height = height;
} }
@Override
public boolean isCollisionWithCircle(Circle circle, CollisionDetector collisionDetector) {
return collisionDetector.isCircleQuadCollision(circle, this);
}
@Override
public boolean isCollisionWithQuad(Quad quad, CollisionDetector collisionDetector) {
return collisionDetector.isQuadQuadCollision(this, quad);
}
@Override
public boolean isCollisionWithTriangle(Triangle triangle, CollisionDetector collisionDetector) {
return collisionDetector.isQuadTriangleCollision(this, triangle);
}
} }

View File

@ -1,61 +1,31 @@
package de.frajul.endlessroll.entities.collision.geometry; package de.frajul.endlessroll.entities.collision.geometry;
import de.frajul.endlessroll.data.Vector; import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.collision.CollisionDetector;
import de.frajul.endlessroll.entities.tools.Ramp; import de.frajul.endlessroll.entities.tools.Ramp;
/** /**
* Created by Julian on 01.12.2015. * Created by Julian on 01.12.2015.
*/ */
public class Triangle implements Geometry { public class Triangle extends Quad {
//bottom right
private Vector vertex1;
//top right
private Vector vertex2;
//bottom left
private Vector vertex3;
public Triangle(Ramp ramp) { public Triangle(Ramp ramp) {
Vector vertex1 = new Vector(ramp.getRightEdge(), ramp.getBottomEdge()); super(ramp.getPosition(), ramp.getWidth(), ramp.getHeight());
Vector vertex2 = new Vector(ramp.getRightEdge(), ramp.getTopEdge());
Vector vertex3 = new Vector(ramp.getLeftEdge(), ramp.getBottomEdge());
this.vertex1 = vertex1;
this.vertex2 = vertex2;
this.vertex3 = vertex3;
} }
public Triangle(Vector vertex1, Vector vertex2, Vector vertex3) { public float getGradient() {
this.vertex1 = vertex1; return super.getHeight() / super.getWidth();
this.vertex2 = vertex2;
this.vertex3 = vertex3;
} }
public Vector getVertex1() { public Vector getBottomRightVertex() {
return vertex1; return new Vector(getRightEdge(), getBottomEdge());
} }
public Vector getVertex2() { public Vector getBottomLeftVertex() {
return vertex2; return new Vector(getLeftEdge(), getBottomEdge());
} }
public Vector getVertex3() { public Vector getTopRightVertex() {
return vertex3; return new Vector(getRightEdge(), getTopEdge());
}
@Override
public boolean isCollisionWithCircle(Circle circle, CollisionDetector collisionDetector) {
return collisionDetector.isCircleTriangleCollision(circle, this);
}
@Override
public boolean isCollisionWithQuad(Quad quad, CollisionDetector collisionDetector) {
return collisionDetector.isQuadTriangleCollision(quad, this);
}
@Override
public boolean isCollisionWithTriangle(Triangle triangle, CollisionDetector collisionDetector) {
return collisionDetector.isTriangleTriangleCollision(this, triangle);
} }
} }

View File

@ -17,7 +17,7 @@ import de.frajul.endlessroll.entities.textures.TexturePack;
public enum World { public enum World {
GRASSLANDS(R.drawable.world_previews_grasslands, R.drawable.terrain_t_grass, GRASSLANDS(R.drawable.world_previews_grasslands, R.drawable.terrain_t_grass,
R.drawable.terrain_c_grass, R.drawable.juri_obstacles_grass, R.drawable.terrain_c_grass, R.drawable.obstacles_grass,
R.drawable.backgrounds_game_grass), R.drawable.backgrounds_game_grass),
ICY_MOUNTAINS(R.drawable.world_previews_icymountains, R.drawable.terrain_t_ice, ICY_MOUNTAINS(R.drawable.world_previews_icymountains, R.drawable.terrain_t_ice,
R.drawable.terrain_c_ice, R.drawable.obstacles_snow, R.drawable.backgrounds_game_snow), R.drawable.terrain_c_ice, R.drawable.obstacles_snow, R.drawable.backgrounds_game_snow),

View File

@ -3,6 +3,7 @@ package de.frajul.endlessroll.main;
import android.content.Context; import android.content.Context;
import android.opengl.GLSurfaceView; import android.opengl.GLSurfaceView;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View;
import de.frajul.endlessroll.rendering.renderer.GameRenderer; import de.frajul.endlessroll.rendering.renderer.GameRenderer;
@ -26,7 +27,10 @@ public class MyGlSurfaceView extends GLSurfaceView {
@Override @Override
public boolean onTouchEvent(MotionEvent event) { public boolean onTouchEvent(MotionEvent event) {
renderer.onTouch(event.getX(), event.getY()); if(event.getAction() == MotionEvent.ACTION_DOWN) {
GameLog.i("TouchEvent!!!");
renderer.onTouch(event.getX(), event.getY());
}
return true; return true;
} }
@ -41,4 +45,5 @@ public class MyGlSurfaceView extends GLSurfaceView {
GameLog.i("GLSurfaceView: onPause"); GameLog.i("GLSurfaceView: onPause");
super.onPause(); super.onPause();
} }
} }

View File

@ -132,7 +132,6 @@ public class Game extends Rendering<GameScene> {
@Override @Override
public void update() { public void update() {
try { try {
GameLog.i("FrameTimeMilliseconds: " + timer.getFrameTimeMilliseconds());
particleSystem.update(timer); particleSystem.update(timer);
if (scene == null || player == null) if (scene == null || player == null)
return; return;
@ -175,7 +174,7 @@ public class Game extends Rendering<GameScene> {
for (ToolButton toolButton : toolButtonBar.getToolButtons()) { for (ToolButton toolButton : toolButtonBar.getToolButtons()) {
ToolType toolType = toolButton.getToolType(); ToolType toolType = toolButton.getToolType();
if (collisionDetector.isPointQuadCollision(touchPoint, if (collisionDetector.isPointInQuad(touchPoint,
toolButton.getBorder()) && toolType != null) { toolButton.getBorder()) && toolType != null) {
toolButtonBar.setActive(toolType); toolButtonBar.setActive(toolType);
setCurrentTool(toolType, toolButton.hasFinishedLoading()); setCurrentTool(toolType, toolButton.hasFinishedLoading());

View File

@ -95,7 +95,7 @@ public class GameScene extends Scene {
public Obstacle getObstacleAtPoint(Vector point) { public Obstacle getObstacleAtPoint(Vector point) {
synchronized (obstacles) { synchronized (obstacles) {
for (Obstacle obstacle : obstacles) { for (Obstacle obstacle : obstacles) {
if (collisionDetector.isPointQuadCollision(point, obstacle)) if (collisionDetector.isPointInQuad(point, obstacle))
return obstacle; return obstacle;
} }
} }

View File

@ -61,7 +61,7 @@ public class Physics {
} }
public synchronized void checkSingleToolCollision(Tool tool, Scene scene) { public synchronized void checkSingleToolCollision(Tool tool, Scene scene) {
if(tool.isFloating()) if (tool.isFloating())
return; return;
float terrainEdge = getTerrainEdge(tool, scene.getTerrain()); float terrainEdge = getTerrainEdge(tool, scene.getTerrain());
Obstacle toolIsCollidingWith = getHighestObstacleToolIsCollidingWith(tool, scene); Obstacle toolIsCollidingWith = getHighestObstacleToolIsCollidingWith(tool, scene);
@ -93,7 +93,7 @@ public class Physics {
List<Obstacle> collisionObstacles = new ArrayList<>(); List<Obstacle> collisionObstacles = new ArrayList<>();
synchronized (scene.getObstacles()) { synchronized (scene.getObstacles()) {
for (Obstacle obstacle : scene.getObstacles()) { for (Obstacle obstacle : scene.getObstacles()) {
if (tool.getWorldCollisionBounds().isCollisionWithQuad(obstacle, detector)) { if (detector.isCollision(tool.getWorldCollisionBounds(), obstacle)) {
collisionObstacles.add(obstacle); collisionObstacles.add(obstacle);
} }
} }
@ -133,7 +133,7 @@ public class Physics {
Terrain terrain = scene.getTerrain(); Terrain terrain = scene.getTerrain();
for (Tile terrainTile : terrain) { for (Tile terrainTile : terrain) {
EntityCollisionData data = detector EntityCollisionData data = detector
.playerEntityCollision(scene.getPlayer(), terrainTile); .playerTerrainCollision(scene.getPlayer(), terrainTile);
if (data.isCollision()) if (data.isCollision())
return data; return data;
} }
@ -144,7 +144,7 @@ public class Physics {
Ceiling ceiling = scene.getCeiling(); Ceiling ceiling = scene.getCeiling();
for (Tile ceilingTile : ceiling) { for (Tile ceilingTile : ceiling) {
EntityCollisionData data = detector EntityCollisionData data = detector
.playerEntityCollision(scene.getPlayer(), ceilingTile); .playerCeilingCollision(scene.getPlayer(), ceilingTile);
if (data.isCollision()) if (data.isCollision())
return data; return data;
} }
@ -169,7 +169,7 @@ public class Physics {
Circle circle = new Circle(scene.getPlayer()); Circle circle = new Circle(scene.getPlayer());
synchronized (scene.getTools()) { synchronized (scene.getTools()) {
for (Tool tool : scene.getTools()) { for (Tool tool : scene.getTools()) {
if (tool.getPlayerCollisionBounds().isCollisionWithCircle(circle, detector)) if (detector.isCollision(tool.getPlayerCollisionBounds(), circle))
tools.add(tool); tools.add(tool);
} }
} }

View File

@ -6,7 +6,7 @@ buildscript {
google() google()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.1.2' classpath 'com.android.tools.build:gradle:3.1.3'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files