Made toolbuttons opengl rendered

Not clickable yet
Progressbar-filled-animation missing
This commit is contained in:
= 2018-05-10 17:31:26 +02:00
parent 0ec17dfe39
commit 7f7b53b8a0
38 changed files with 1066 additions and 457 deletions

View File

@ -494,64 +494,64 @@ public final class R {
public static final int end_padder = 0x7f08002d; public static final int end_padder = 0x7f08002d;
public static final int expand_activities_button = 0x7f08002e; public static final int expand_activities_button = 0x7f08002e;
public static final int expanded_menu = 0x7f08002f; public static final int expanded_menu = 0x7f08002f;
public static final int home = 0x7f080046; public static final int home = 0x7f080045;
public static final int homeAsUp = 0x7f080047; public static final int homeAsUp = 0x7f080046;
public static final int icon = 0x7f080048; public static final int icon = 0x7f080047;
public static final int ifRoom = 0x7f080049; public static final int ifRoom = 0x7f080048;
public static final int image = 0x7f08004a; public static final int image = 0x7f080049;
public static final int info = 0x7f08004b; public static final int info = 0x7f08004a;
public static final int line1 = 0x7f080058; public static final int line1 = 0x7f080057;
public static final int line3 = 0x7f080059; public static final int line3 = 0x7f080058;
public static final int listMode = 0x7f08005b; public static final int listMode = 0x7f08005a;
public static final int list_item = 0x7f08005c; public static final int list_item = 0x7f08005b;
public static final int media_actions = 0x7f08005d; public static final int media_actions = 0x7f08005c;
public static final int middle = 0x7f08005e; public static final int middle = 0x7f08005d;
public static final int multiply = 0x7f08005f; public static final int multiply = 0x7f08005e;
public static final int never = 0x7f080060; public static final int never = 0x7f08005f;
public static final int none = 0x7f080061; public static final int none = 0x7f080060;
public static final int normal = 0x7f080062; public static final int normal = 0x7f080061;
public static final int parentPanel = 0x7f080063; public static final int parentPanel = 0x7f080062;
public static final int progress_circular = 0x7f080068; public static final int progress_circular = 0x7f080067;
public static final int progress_horizontal = 0x7f080069; public static final int progress_horizontal = 0x7f080068;
public static final int radio = 0x7f08006a; public static final int radio = 0x7f080069;
public static final int screen = 0x7f08006b; public static final int screen = 0x7f08006a;
public static final int scrollIndicatorDown = 0x7f08006c; public static final int scrollIndicatorDown = 0x7f08006b;
public static final int scrollIndicatorUp = 0x7f08006d; public static final int scrollIndicatorUp = 0x7f08006c;
public static final int scrollView = 0x7f08006e; public static final int scrollView = 0x7f08006d;
public static final int search_badge = 0x7f08006f; public static final int search_badge = 0x7f08006e;
public static final int search_bar = 0x7f080070; public static final int search_bar = 0x7f08006f;
public static final int search_button = 0x7f080071; public static final int search_button = 0x7f080070;
public static final int search_close_btn = 0x7f080072; public static final int search_close_btn = 0x7f080071;
public static final int search_edit_frame = 0x7f080073; public static final int search_edit_frame = 0x7f080072;
public static final int search_go_btn = 0x7f080074; public static final int search_go_btn = 0x7f080073;
public static final int search_mag_icon = 0x7f080075; public static final int search_mag_icon = 0x7f080074;
public static final int search_plate = 0x7f080076; public static final int search_plate = 0x7f080075;
public static final int search_src_text = 0x7f080077; public static final int search_src_text = 0x7f080076;
public static final int search_voice_btn = 0x7f080078; public static final int search_voice_btn = 0x7f080077;
public static final int select_dialog_listview = 0x7f080079; public static final int select_dialog_listview = 0x7f080078;
public static final int shortcut = 0x7f08008f; public static final int shortcut = 0x7f08008d;
public static final int showCustom = 0x7f080094; public static final int showCustom = 0x7f080092;
public static final int showHome = 0x7f080095; public static final int showHome = 0x7f080093;
public static final int showTitle = 0x7f080096; public static final int showTitle = 0x7f080094;
public static final int spacer = 0x7f080097; public static final int spacer = 0x7f080095;
public static final int split_action_bar = 0x7f080098; public static final int split_action_bar = 0x7f080096;
public static final int src_atop = 0x7f080099; public static final int src_atop = 0x7f080097;
public static final int src_in = 0x7f08009a; public static final int src_in = 0x7f080098;
public static final int src_over = 0x7f08009b; public static final int src_over = 0x7f080099;
public static final int status_bar_latest_event_content = 0x7f0800a1; public static final int status_bar_latest_event_content = 0x7f08009f;
public static final int submit_area = 0x7f0800a2; public static final int submit_area = 0x7f0800a0;
public static final int tabMode = 0x7f0800a3; public static final int tabMode = 0x7f0800a1;
public static final int text = 0x7f0800a5; public static final int text = 0x7f0800a3;
public static final int text2 = 0x7f0800a6; public static final int text2 = 0x7f0800a4;
public static final int textSpacerNoButtons = 0x7f0800a7; public static final int textSpacerNoButtons = 0x7f0800a5;
public static final int time = 0x7f0800a8; public static final int time = 0x7f0800a6;
public static final int title = 0x7f0800a9; public static final int title = 0x7f0800a7;
public static final int title_template = 0x7f0800aa; public static final int title_template = 0x7f0800a8;
public static final int topPanel = 0x7f0800c2; public static final int topPanel = 0x7f0800c0;
public static final int up = 0x7f0800d4; public static final int up = 0x7f0800d2;
public static final int useLogo = 0x7f0800d5; public static final int useLogo = 0x7f0800d3;
public static final int withText = 0x7f0800d6; public static final int withText = 0x7f0800d4;
public static final int wrap_content = 0x7f0800df; public static final int wrap_content = 0x7f0800dd;
} }
public static final class integer { public static final class integer {
public static final int abc_config_activityDefaultDur = 0x7f090000; public static final int abc_config_activityDefaultDur = 0x7f090000;
@ -619,7 +619,7 @@ public final class R {
public static final int abc_shareactionprovider_share_with = 0x7f0d0010; public static final int abc_shareactionprovider_share_with = 0x7f0d0010;
public static final int abc_shareactionprovider_share_with_application = 0x7f0d0011; public static final int abc_shareactionprovider_share_with_application = 0x7f0d0011;
public static final int abc_toolbar_collapse_description = 0x7f0d0012; public static final int abc_toolbar_collapse_description = 0x7f0d0012;
public static final int status_bar_notification_info_overflow = 0x7f0d005d; public static final int status_bar_notification_info_overflow = 0x7f0d005c;
} }
public static final class style { public static final class style {
public static final int AlertDialog_AppCompat = 0x7f0e0000; public static final int AlertDialog_AppCompat = 0x7f0e0000;

View File

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main"><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets"><file name="fontBaron.ttf" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\fontBaron.ttf"/><file name="levelpacks/Grasslands.xml" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\levelpacks\Grasslands.xml"/><file name="levelpacks/Icy Mountains.xml" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\levelpacks\Icy Mountains.xml"/><file name="particleEffects/collectEnergy.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\collectEnergy.pe"/><file name="particleEffects/collectStar.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\collectStar.pe"/><file name="particleEffects/colorChange.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\colorChange.pe"/><file name="particleEffects/explosion.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\explosion.pe"/><file name="particleEffects/firework.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\firework.pe"/><file name="particleEffects/magnet.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\magnet.pe"/><file name="particleEffects/particle.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\particle.png"/><file name="particleEffects/snow.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\snow.pe"/><file name="particleEffects/snow.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\snow.png"/><file name="particleEffects/star.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\star.png"/><file name="particleEffects/stasis.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\stasis.pe"/><file name="particleEffects/superPower.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\superPower.pe"/><file name="particleEffects/test_fire.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\test_fire.pe"/><file name="shader/entityFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\entityFragmentShader.glsl"/><file name="shader/entityVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\entityVertexShader.glsl"/><file name="shader/obstacleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\obstacleFragmentShader.glsl"/><file name="shader/particleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\particleFragmentShader.glsl"/><file name="shader/simpleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\simpleFragmentShader.glsl"/><file name="shader/simpleVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\simpleVertexShader.glsl"/><file name="shader/terrainFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\terrainFragmentShader.glsl"/><file name="shader/guiVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\guiVertexShader.glsl"/></source><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\build\generated\assets\shaders\debug"/></dataSet><dataSet config="debug"><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\debug\assets"/></dataSet></merger> <merger version="3"><dataSet config="main"><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets"><file name="fontBaron.ttf" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\fontBaron.ttf"/><file name="levelpacks/Grasslands.xml" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\levelpacks\Grasslands.xml"/><file name="levelpacks/Icy Mountains.xml" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\levelpacks\Icy Mountains.xml"/><file name="particleEffects/collectEnergy.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\collectEnergy.pe"/><file name="particleEffects/collectStar.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\collectStar.pe"/><file name="particleEffects/colorChange.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\colorChange.pe"/><file name="particleEffects/explosion.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\explosion.pe"/><file name="particleEffects/firework.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\firework.pe"/><file name="particleEffects/magnet.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\magnet.pe"/><file name="particleEffects/particle.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\particle.png"/><file name="particleEffects/snow.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\snow.pe"/><file name="particleEffects/snow.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\snow.png"/><file name="particleEffects/star.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\star.png"/><file name="particleEffects/stasis.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\stasis.pe"/><file name="particleEffects/superPower.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\superPower.pe"/><file name="particleEffects/test_fire.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\test_fire.pe"/><file name="shader/entityFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\entityFragmentShader.glsl"/><file name="shader/entityVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\entityVertexShader.glsl"/><file name="shader/obstacleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\obstacleFragmentShader.glsl"/><file name="shader/particleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\particleFragmentShader.glsl"/><file name="shader/simpleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\simpleFragmentShader.glsl"/><file name="shader/simpleVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\simpleVertexShader.glsl"/><file name="shader/terrainFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\terrainFragmentShader.glsl"/><file name="shader/guiVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\guiVertexShader.glsl"/><file name="shader/guiFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\guiFragmentShader.glsl"/></source><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\build\generated\assets\shaders\debug"/></dataSet><dataSet config="debug"><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\debug\assets"/></dataSet></merger>

File diff suppressed because one or more lines are too long

View File

@ -479,18 +479,18 @@ int drawable abc_textfield_search_material 0x7f070044
int drawable backgrounds_game_grass 0x7f070045 int drawable backgrounds_game_grass 0x7f070045
int drawable backgrounds_game_snow 0x7f070046 int drawable backgrounds_game_snow 0x7f070046
int drawable backgrounds_menu_grasslands 0x7f070047 int drawable backgrounds_menu_grasslands 0x7f070047
int drawable countdown_1 0x7f070048 int drawable currency_energy 0x7f070048
int drawable countdown_2 0x7f070049 int drawable currency_energy_atlas 0x7f070049
int drawable countdown_3 0x7f07004a int drawable currency_energy_empty 0x7f07004a
int drawable currency_energy 0x7f07004b int drawable currency_star 0x7f07004b
int drawable currency_energy_atlas 0x7f07004c int drawable currency_star_empty 0x7f07004c
int drawable currency_energy_empty 0x7f07004d int drawable guis_arrow_back_disabled 0x7f07004d
int drawable currency_star 0x7f07004e int drawable guis_arrow_back_enabled 0x7f07004e
int drawable currency_star_empty 0x7f07004f int drawable guis_checkbox_checked 0x7f07004f
int drawable guis_arrow_back_disabled 0x7f070050 int drawable guis_checkbox_unchecked 0x7f070050
int drawable guis_arrow_back_enabled 0x7f070051 int drawable guis_countdown_1 0x7f070051
int drawable guis_checkbox_checked 0x7f070052 int drawable guis_countdown_2 0x7f070052
int drawable guis_checkbox_unchecked 0x7f070053 int drawable guis_countdown_3 0x7f070053
int drawable guis_goal 0x7f070054 int drawable guis_goal 0x7f070054
int drawable guis_lock_locked 0x7f070055 int drawable guis_lock_locked 0x7f070055
int drawable guis_music_off 0x7f070056 int drawable guis_music_off 0x7f070056
@ -550,29 +550,30 @@ int drawable tutorial_place_ramp_obstacle 0x7f07008b
int drawable tutorial_place_tools 0x7f07008c int drawable tutorial_place_tools 0x7f07008c
int drawable tutorial_switch_tools 0x7f07008d int drawable tutorial_switch_tools 0x7f07008d
int drawable tutorial_to_toolshop 0x7f07008e int drawable tutorial_to_toolshop 0x7f07008e
int drawable world_previews_grasslands 0x7f07008f int drawable white 0x7f07008f
int drawable world_previews_icymountains 0x7f070090 int drawable world_previews_grasslands 0x7f070090
int drawable xml_background_bountymessage 0x7f070091 int drawable world_previews_icymountains 0x7f070091
int drawable xml_background_dialog_button 0x7f070092 int drawable xml_background_bountymessage 0x7f070092
int drawable xml_background_exit_confirm_dialog 0x7f070093 int drawable xml_background_dialog_button 0x7f070093
int drawable xml_background_game_over_message_button 0x7f070094 int drawable xml_background_exit_confirm_dialog 0x7f070094
int drawable xml_background_levelbutton 0x7f070095 int drawable xml_background_game_over_message_button 0x7f070095
int drawable xml_background_toolslot 0x7f070096 int drawable xml_background_levelbutton 0x7f070096
int drawable xml_background_topbar 0x7f070097 int drawable xml_background_toolslot 0x7f070097
int drawable xml_background_tutorialimageview 0x7f070098 int drawable xml_background_topbar 0x7f070098
int drawable xml_background_tutorialtextview 0x7f070099 int drawable xml_background_tutorialimageview 0x7f070099
int drawable xml_background_worldbutton 0x7f07009a int drawable xml_background_tutorialtextview 0x7f07009a
int drawable xml_layers_levelprogressbar 0x7f07009b int drawable xml_background_worldbutton 0x7f07009b
int drawable xml_layers_toolprogressbar 0x7f07009c int drawable xml_layers_levelprogressbar 0x7f07009c
int drawable xml_selector_backbutton 0x7f07009d int drawable xml_layers_toolprogressbar 0x7f07009d
int drawable xml_selector_gamebutton 0x7f07009e int drawable xml_selector_backbutton 0x7f07009e
int drawable xml_selector_music 0x7f07009f int drawable xml_selector_gamebutton 0x7f07009f
int drawable xml_selector_pricebutton 0x7f0700a0 int drawable xml_selector_music 0x7f0700a0
int drawable xml_selector_settings_button 0x7f0700a1 int drawable xml_selector_pricebutton 0x7f0700a1
int drawable xml_selector_settingsbutton 0x7f0700a2 int drawable xml_selector_settings_button 0x7f0700a2
int drawable xml_selector_shapeshopbutton 0x7f0700a3 int drawable xml_selector_settingsbutton 0x7f0700a3
int drawable xml_selector_sound 0x7f0700a4 int drawable xml_selector_shapeshopbutton 0x7f0700a4
int drawable xml_selector_toolshopbutton 0x7f0700a5 int drawable xml_selector_sound 0x7f0700a5
int drawable xml_selector_toolshopbutton 0x7f0700a6
int id action0 0x7f080000 int id action0 0x7f080000
int id action_bar 0x7f080001 int id action_bar 0x7f080001
int id action_bar_activity_content 0x7f080002 int id action_bar_activity_content 0x7f080002
@ -631,172 +632,170 @@ int id game_over_message_try_again 0x7f080036
int id game_pausebutton 0x7f080037 int id game_pausebutton 0x7f080037
int id game_playerprogress 0x7f080038 int id game_playerprogress 0x7f080038
int id game_shortmenu 0x7f080039 int id game_shortmenu 0x7f080039
int id game_toolbuttonbar 0x7f08003a int id goal_message_bottom_layout 0x7f08003a
int id goal_message_bottom_layout 0x7f08003b int id goal_message_levelbutton_energy 0x7f08003b
int id goal_message_levelbutton_energy 0x7f08003c int id goal_message_levelbutton_star1 0x7f08003c
int id goal_message_levelbutton_star1 0x7f08003d int id goal_message_levelbutton_star2 0x7f08003d
int id goal_message_levelbutton_star2 0x7f08003e int id goal_message_levelbutton_star3 0x7f08003e
int id goal_message_levelbutton_star3 0x7f08003f int id goal_message_levelbutton_textview 0x7f08003f
int id goal_message_levelbutton_textview 0x7f080040 int id goal_message_next_level 0x7f080040
int id goal_message_next_level 0x7f080041 int id goal_message_restart 0x7f080041
int id goal_message_restart 0x7f080042 int id goal_message_title 0x7f080042
int id goal_message_title 0x7f080043 int id goal_message_to_menu 0x7f080043
int id goal_message_to_menu 0x7f080044 int id goal_message_topbar 0x7f080044
int id goal_message_topbar 0x7f080045 int id home 0x7f080045
int id home 0x7f080046 int id homeAsUp 0x7f080046
int id homeAsUp 0x7f080047 int id icon 0x7f080047
int id icon 0x7f080048 int id ifRoom 0x7f080048
int id ifRoom 0x7f080049 int id image 0x7f080049
int id image 0x7f08004a int id info 0x7f08004a
int id info 0x7f08004b int id levelbutton_energy 0x7f08004b
int id levelbutton_energy 0x7f08004c int id levelbutton_lock 0x7f08004c
int id levelbutton_lock 0x7f08004d int id levelbutton_star1 0x7f08004d
int id levelbutton_star1 0x7f08004e int id levelbutton_star2 0x7f08004e
int id levelbutton_star2 0x7f08004f int id levelbutton_star3 0x7f08004f
int id levelbutton_star3 0x7f080050 int id levelbutton_textview 0x7f080050
int id levelbutton_textview 0x7f080051 int id levels_bottom_row 0x7f080051
int id levels_bottom_row 0x7f080052 int id levels_top_row 0x7f080052
int id levels_top_row 0x7f080053 int id levels_topbar 0x7f080053
int id levels_topbar 0x7f080054 int id levelup_level 0x7f080054
int id levelup_level 0x7f080055 int id levelup_text 0x7f080055
int id levelup_text 0x7f080056 int id levelup_unlocklist 0x7f080056
int id levelup_unlocklist 0x7f080057 int id line1 0x7f080057
int id line1 0x7f080058 int id line3 0x7f080058
int id line3 0x7f080059 int id linearLayout4 0x7f080059
int id linearLayout4 0x7f08005a int id listMode 0x7f08005a
int id listMode 0x7f08005b int id list_item 0x7f08005b
int id list_item 0x7f08005c int id media_actions 0x7f08005c
int id media_actions 0x7f08005d int id middle 0x7f08005d
int id middle 0x7f08005e int id multiply 0x7f08005e
int id multiply 0x7f08005f int id never 0x7f08005f
int id never 0x7f080060 int id none 0x7f080060
int id none 0x7f080061 int id normal 0x7f080061
int id normal 0x7f080062 int id parentPanel 0x7f080062
int id parentPanel 0x7f080063 int id pre_start_screen_text 0x7f080063
int id pre_start_screen_text 0x7f080064 int id price_button_currency 0x7f080064
int id price_button_currency 0x7f080065 int id price_button_price 0x7f080065
int id price_button_price 0x7f080066 int id price_button_title 0x7f080066
int id price_button_title 0x7f080067 int id progress_circular 0x7f080067
int id progress_circular 0x7f080068 int id progress_horizontal 0x7f080068
int id progress_horizontal 0x7f080069 int id radio 0x7f080069
int id radio 0x7f08006a int id screen 0x7f08006a
int id screen 0x7f08006b int id scrollIndicatorDown 0x7f08006b
int id scrollIndicatorDown 0x7f08006c int id scrollIndicatorUp 0x7f08006c
int id scrollIndicatorUp 0x7f08006d int id scrollView 0x7f08006d
int id scrollView 0x7f08006e int id search_badge 0x7f08006e
int id search_badge 0x7f08006f int id search_bar 0x7f08006f
int id search_bar 0x7f080070 int id search_button 0x7f080070
int id search_button 0x7f080071 int id search_close_btn 0x7f080071
int id search_close_btn 0x7f080072 int id search_edit_frame 0x7f080072
int id search_edit_frame 0x7f080073 int id search_go_btn 0x7f080073
int id search_go_btn 0x7f080074 int id search_mag_icon 0x7f080074
int id search_mag_icon 0x7f080075 int id search_plate 0x7f080075
int id search_plate 0x7f080076 int id search_src_text 0x7f080076
int id search_src_text 0x7f080077 int id search_voice_btn 0x7f080077
int id search_voice_btn 0x7f080078 int id select_dialog_listview 0x7f080078
int id select_dialog_listview 0x7f080079 int id settings_credits 0x7f080079
int id settings_credits 0x7f08007a int id settings_fps_checkbox 0x7f08007a
int id settings_fps_checkbox 0x7f08007b int id settings_music_label 0x7f08007b
int id settings_music_label 0x7f08007c int id settings_musictoggle 0x7f08007c
int id settings_musictoggle 0x7f08007d int id settings_reset 0x7f08007d
int id settings_performance_checkbox 0x7f08007e int id settings_sounds_label 0x7f08007e
int id settings_reset 0x7f08007f int id settings_soundtoggle 0x7f08007f
int id settings_sounds_label 0x7f080080 int id settings_topbar 0x7f080080
int id settings_soundtoggle 0x7f080081 int id shape_button_button 0x7f080081
int id settings_topbar 0x7f080082 int id shape_button_textview 0x7f080082
int id shape_button_button 0x7f080083 int id shape_inspector_check_box 0x7f080083
int id shape_button_textview 0x7f080084 int id shape_inspector_check_box_image 0x7f080084
int id shape_inspector_check_box 0x7f080085 int id shape_inspector_check_box_text 0x7f080085
int id shape_inspector_check_box_image 0x7f080086 int id shape_inspector_description 0x7f080086
int id shape_inspector_check_box_text 0x7f080087 int id shape_inspector_imageview 0x7f080087
int id shape_inspector_description 0x7f080088 int id shape_inspector_title 0x7f080088
int id shape_inspector_imageview 0x7f080089 int id shape_shop_bottomRow 0x7f080089
int id shape_inspector_title 0x7f08008a int id shape_shop_shape_inspector 0x7f08008a
int id shape_shop_bottomRow 0x7f08008b int id shape_shop_topRow 0x7f08008b
int id shape_shop_shape_inspector 0x7f08008c int id shape_shop_topbar 0x7f08008c
int id shape_shop_topRow 0x7f08008d int id shortcut 0x7f08008d
int id shape_shop_topbar 0x7f08008e int id shortmenu_continue 0x7f08008e
int id shortcut 0x7f08008f int id shortmenu_exit 0x7f08008f
int id shortmenu_continue 0x7f080090 int id shortmenu_restart 0x7f080090
int id shortmenu_exit 0x7f080091 int id shortmenu_topbar 0x7f080091
int id shortmenu_restart 0x7f080092 int id showCustom 0x7f080092
int id shortmenu_topbar 0x7f080093 int id showHome 0x7f080093
int id showCustom 0x7f080094 int id showTitle 0x7f080094
int id showHome 0x7f080095 int id spacer 0x7f080095
int id showTitle 0x7f080096 int id split_action_bar 0x7f080096
int id spacer 0x7f080097 int id src_atop 0x7f080097
int id split_action_bar 0x7f080098 int id src_in 0x7f080098
int id src_atop 0x7f080099 int id src_over 0x7f080099
int id src_in 0x7f08009a int id startscreen_finish_world_1 0x7f08009a
int id src_over 0x7f08009b int id startscreen_gain_90_ep 0x7f08009b
int id startscreen_finish_world_1 0x7f08009c int id startscreen_play 0x7f08009c
int id startscreen_gain_90_ep 0x7f08009d int id startscreen_to_gl_test_screen 0x7f08009d
int id startscreen_play 0x7f08009e int id startscreen_unlock_levels 0x7f08009e
int id startscreen_to_gl_test_screen 0x7f08009f int id status_bar_latest_event_content 0x7f08009f
int id startscreen_unlock_levels 0x7f0800a0 int id submit_area 0x7f0800a0
int id status_bar_latest_event_content 0x7f0800a1 int id tabMode 0x7f0800a1
int id submit_area 0x7f0800a2 int id task_completed_unlock_list 0x7f0800a2
int id tabMode 0x7f0800a3 int id text 0x7f0800a3
int id task_completed_unlock_list 0x7f0800a4 int id text2 0x7f0800a4
int id text 0x7f0800a5 int id textSpacerNoButtons 0x7f0800a5
int id text2 0x7f0800a6 int id time 0x7f0800a6
int id textSpacerNoButtons 0x7f0800a7 int id title 0x7f0800a7
int id time 0x7f0800a8 int id title_template 0x7f0800a8
int id title 0x7f0800a9 int id tool_button_animation_layer 0x7f0800a9
int id title_template 0x7f0800aa int id tool_button_background_layer 0x7f0800aa
int id tool_button_animation_layer 0x7f0800ab int id tool_button_progress_bar 0x7f0800ab
int id tool_button_background_layer 0x7f0800ac int id tool_inspector_description 0x7f0800ac
int id tool_button_progress_bar 0x7f0800ad int id tool_inspector_imageview 0x7f0800ad
int id tool_inspector_description 0x7f0800ae int id tool_inspector_level_view 0x7f0800ae
int id tool_inspector_imageview 0x7f0800af int id tool_inspector_pricebutton 0x7f0800af
int id tool_inspector_level_view 0x7f0800b0 int id tool_inspector_title 0x7f0800b0
int id tool_inspector_pricebutton 0x7f0800b1 int id toolbutton_1 0x7f0800b1
int id tool_inspector_title 0x7f0800b2 int id toolbutton_2 0x7f0800b2
int id toolbutton_1 0x7f0800b3 int id toolbutton_3 0x7f0800b3
int id toolbutton_2 0x7f0800b4 int id toolbutton_4 0x7f0800b4
int id toolbutton_3 0x7f0800b5 int id toolofferslot_slot 0x7f0800b5
int id toolbutton_4 0x7f0800b6 int id toolofferslot_title 0x7f0800b6
int id toolofferslot_slot 0x7f0800b7 int id toolshop_slot1 0x7f0800b7
int id toolofferslot_title 0x7f0800b8 int id toolshop_slot2 0x7f0800b8
int id toolshop_slot1 0x7f0800b9 int id toolshop_slot3 0x7f0800b9
int id toolshop_slot2 0x7f0800ba int id toolshop_slot4 0x7f0800ba
int id toolshop_slot3 0x7f0800bb int id toolshop_tool_offer_bottom_row 0x7f0800bb
int id toolshop_slot4 0x7f0800bc int id toolshop_tool_offer_top_row 0x7f0800bc
int id toolshop_tool_offer_bottom_row 0x7f0800bd int id toolshop_toolinspector 0x7f0800bd
int id toolshop_tool_offer_top_row 0x7f0800be int id toolshop_topbar 0x7f0800be
int id toolshop_toolinspector 0x7f0800bf int id toolslot_image 0x7f0800bf
int id toolshop_topbar 0x7f0800c0 int id topPanel 0x7f0800c0
int id toolslot_image 0x7f0800c1 int id topbar_back_button 0x7f0800c1
int id topPanel 0x7f0800c2 int id topbar_energycount 0x7f0800c2
int id topbar_back_button 0x7f0800c3 int id topbar_energycount_decrease 0x7f0800c3
int id topbar_energycount 0x7f0800c4 int id topbar_energyview 0x7f0800c4
int id topbar_energycount_decrease 0x7f0800c5 int id topbar_leveldisplay 0x7f0800c5
int id topbar_energyview 0x7f0800c6 int id topbar_levellayout 0x7f0800c6
int id topbar_leveldisplay 0x7f0800c7 int id topbar_levelprogress 0x7f0800c7
int id topbar_levellayout 0x7f0800c8 int id topbar_settings 0x7f0800c8
int id topbar_levelprogress 0x7f0800c9 int id topbar_shapeshop 0x7f0800c9
int id topbar_settings 0x7f0800ca int id topbar_starcount 0x7f0800ca
int id topbar_shapeshop 0x7f0800cb int id topbar_starcount_decrease 0x7f0800cb
int id topbar_starcount 0x7f0800cc int id topbar_starview 0x7f0800cc
int id topbar_starcount_decrease 0x7f0800cd int id topbar_toolshop 0x7f0800cd
int id topbar_starview 0x7f0800ce int id tutorial_image_view 0x7f0800ce
int id topbar_toolshop 0x7f0800cf int id tutorial_text_view 0x7f0800cf
int id tutorial_image_view 0x7f0800d0 int id unlockmessage_message 0x7f0800d0
int id tutorial_text_view 0x7f0800d1 int id unlockmessage_toolimage 0x7f0800d1
int id unlockmessage_message 0x7f0800d2 int id up 0x7f0800d2
int id unlockmessage_toolimage 0x7f0800d3 int id useLogo 0x7f0800d3
int id up 0x7f0800d4 int id withText 0x7f0800d4
int id useLogo 0x7f0800d5 int id worldbutton_energycount 0x7f0800d5
int id withText 0x7f0800d6 int id worldbutton_levelcount 0x7f0800d6
int id worldbutton_energycount 0x7f0800d7 int id worldbutton_lock 0x7f0800d7
int id worldbutton_levelcount 0x7f0800d8 int id worldbutton_preview 0x7f0800d8
int id worldbutton_lock 0x7f0800d9 int id worldbutton_starcount 0x7f0800d9
int id worldbutton_preview 0x7f0800da int id worldbutton_title 0x7f0800da
int id worldbutton_starcount 0x7f0800db int id worlds_layout 0x7f0800db
int id worldbutton_title 0x7f0800dc int id worlds_topbar 0x7f0800dc
int id worlds_layout 0x7f0800dd int id wrap_content 0x7f0800dd
int id worlds_topbar 0x7f0800de
int id wrap_content 0x7f0800df
int integer abc_config_activityDefaultDur 0x7f090000 int integer abc_config_activityDefaultDur 0x7f090000
int integer abc_config_activityShortDur 0x7f090001 int integer abc_config_activityShortDur 0x7f090001
int integer abc_max_action_buttons 0x7f090002 int integer abc_max_action_buttons 0x7f090002
@ -969,58 +968,57 @@ int string playershape_name_wheel 0x7f0d004c
int string pre_start_screen_loading 0x7f0d004d int string pre_start_screen_loading 0x7f0d004d
int string price_button_buy 0x7f0d004e int string price_button_buy 0x7f0d004e
int string price_button_upgrade 0x7f0d004f int string price_button_upgrade 0x7f0d004f
int string settings_boost_performance 0x7f0d0050 int string settings_credits 0x7f0d0050
int string settings_credits 0x7f0d0051 int string settings_music 0x7f0d0051
int string settings_music 0x7f0d0052 int string settings_reset 0x7f0d0052
int string settings_reset 0x7f0d0053 int string settings_show_fps 0x7f0d0053
int string settings_show_fps 0x7f0d0054 int string settings_sounds 0x7f0d0054
int string settings_sounds 0x7f0d0055 int string short_menu_continue 0x7f0d0055
int string short_menu_continue 0x7f0d0056 int string short_menu_exit 0x7f0d0056
int string short_menu_exit 0x7f0d0057 int string start_screen_finish_world_1 0x7f0d0057
int string start_screen_finish_world_1 0x7f0d0058 int string start_screen_gain_90_ep 0x7f0d0058
int string start_screen_gain_90_ep 0x7f0d0059 int string start_screen_play 0x7f0d0059
int string start_screen_play 0x7f0d005a int string start_screen_to_gl_test_screen 0x7f0d005a
int string start_screen_to_gl_test_screen 0x7f0d005b int string start_screen_unlock_all_levels 0x7f0d005b
int string start_screen_unlock_all_levels 0x7f0d005c int string status_bar_notification_info_overflow 0x7f0d005c
int string status_bar_notification_info_overflow 0x7f0d005d int string task_collect_energy_format_d 0x7f0d005d
int string task_collect_energy_format_d 0x7f0d005e int string task_collect_energy_progress_format_ddd 0x7f0d005e
int string task_collect_energy_progress_format_ddd 0x7f0d005f int string task_collect_stars_format_d 0x7f0d005f
int string task_collect_stars_format_d 0x7f0d0060 int string task_collect_stars_progress_format_ddd 0x7f0d0060
int string task_collect_stars_progress_format_ddd 0x7f0d0061 int string task_complete_world_format_d 0x7f0d0061
int string task_complete_world_format_d 0x7f0d0062 int string task_empty 0x7f0d0062
int string task_empty 0x7f0d0063 int string tool_description_bomb 0x7f0d0063
int string tool_description_bomb 0x7f0d0064 int string tool_description_locked_format_d 0x7f0d0064
int string tool_description_locked_format_d 0x7f0d0065 int string tool_description_magnet 0x7f0d0065
int string tool_description_magnet 0x7f0d0066 int string tool_description_power_mushroom 0x7f0d0066
int string tool_description_power_mushroom 0x7f0d0067 int string tool_description_ramp 0x7f0d0067
int string tool_description_ramp 0x7f0d0068 int string tool_description_spring 0x7f0d0068
int string tool_description_spring 0x7f0d0069 int string tool_description_stasis 0x7f0d0069
int string tool_description_stasis 0x7f0d006a int string tool_level_format_d 0x7f0d006a
int string tool_level_format_d 0x7f0d006b int string tool_name_bomb 0x7f0d006b
int string tool_name_bomb 0x7f0d006c int string tool_name_locked 0x7f0d006c
int string tool_name_locked 0x7f0d006d int string tool_name_magnet 0x7f0d006d
int string tool_name_magnet 0x7f0d006e int string tool_name_power_mushroom 0x7f0d006e
int string tool_name_power_mushroom 0x7f0d006f int string tool_name_ramp 0x7f0d006f
int string tool_name_ramp 0x7f0d0070 int string tool_name_spring 0x7f0d0070
int string tool_name_spring 0x7f0d0071 int string tool_name_stasis 0x7f0d0071
int string tool_name_stasis 0x7f0d0072 int string topbar_level_format_d 0x7f0d0072
int string topbar_level_format_d 0x7f0d0073 int string topbar_level_placeholder 0x7f0d0073
int string topbar_level_placeholder 0x7f0d0074 int string tutorial_leveled_up_to_toolshop 0x7f0d0074
int string tutorial_leveled_up_to_toolshop 0x7f0d0075 int string tutorial_place_ramp_air 0x7f0d0075
int string tutorial_place_ramp_air 0x7f0d0076 int string tutorial_place_ramp_air_2 0x7f0d0076
int string tutorial_place_ramp_air_2 0x7f0d0077 int string tutorial_place_ramp_gap 0x7f0d0077
int string tutorial_place_ramp_gap 0x7f0d0078 int string tutorial_place_ramp_obstacle 0x7f0d0078
int string tutorial_place_ramp_obstacle 0x7f0d0079 int string tutorial_place_tools 0x7f0d0079
int string tutorial_place_tools 0x7f0d007a int string tutorial_placeholder 0x7f0d007a
int string tutorial_placeholder 0x7f0d007b int string tutorial_spring_equipped 0x7f0d007b
int string tutorial_spring_equipped 0x7f0d007c int string tutorial_switch_tools_switch 0x7f0d007c
int string tutorial_switch_tools_switch 0x7f0d007d int string tutorial_switch_tools_two_neccessary 0x7f0d007d
int string tutorial_switch_tools_two_neccessary 0x7f0d007e int string tutorial_welcome 0x7f0d007e
int string tutorial_welcome 0x7f0d007f int string unlock_message_placeholder 0x7f0d007f
int string unlock_message_placeholder 0x7f0d0080 int string world_button_count_format_dd 0x7f0d0080
int string world_button_count_format_dd 0x7f0d0081 int string world_button_progress_placeholder 0x7f0d0081
int string world_button_progress_placeholder 0x7f0d0082 int string world_button_title_placeholder 0x7f0d0082
int string world_button_title_placeholder 0x7f0d0083
int style AlertDialog_AppCompat 0x7f0e0000 int style AlertDialog_AppCompat 0x7f0e0000
int style AlertDialog_AppCompat_Light 0x7f0e0001 int style AlertDialog_AppCompat_Light 0x7f0e0001
int style Animation_AppCompat_Dialog 0x7f0e0002 int style Animation_AppCompat_Dialog 0x7f0e0002

View File

@ -1085,9 +1085,9 @@
<terrainTiles class="java.util.ArrayList"> <terrainTiles class="java.util.ArrayList">
<tileData x="0.58950114" width="7.1790023"/> <tileData x="0.58950114" width="7.1790023"/>
<tileData x="4.7252517" width="0.24849892"/> <tileData x="4.7252517" width="0.24849892"/>
<tileData x="6.315257" width="2.1295123"/> <tileData x="6.315257" width="2.1295128"/>
<tileData x="8.258523" width="0.5570221"/> <tileData x="8.2385235" width="0.51702213"/>
<tileData x="19.015753" width="3.0254707"/> <tileData x="18.99575" width="3.0654736"/>
<tileData x="27.318325" width="8.093674"/> <tileData x="27.318325" width="8.093674"/>
</terrainTiles> </terrainTiles>
<ceilingTiles class="java.util.ArrayList"> <ceilingTiles class="java.util.ArrayList">
@ -1109,7 +1109,7 @@
<obstacleData floating="false" moving="false" deadly="false" leftEdge="3.6546671" rightEdge="3.8586671" height="0.815" y="-0.19250003"> <obstacleData floating="false" moving="false" deadly="false" leftEdge="3.6546671" rightEdge="3.8586671" height="0.815" y="-0.19250003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="3.9480016" rightEdge="4.1520014" height="0.713" y="-0.24350002"> <obstacleData floating="false" moving="false" deadly="false" leftEdge="3.9480019" rightEdge="4.1520014" height="0.713" y="-0.24350002">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="4.6280017" rightEdge="4.832001" height="0.484" y="-0.35800004"> <obstacleData floating="false" moving="false" deadly="false" leftEdge="4.6280017" rightEdge="4.832001" height="0.484" y="-0.35800004">
@ -1142,25 +1142,25 @@
<obstacleData floating="true" moving="false" deadly="false" leftEdge="9.336376" rightEdge="11.170376" height="0.331" y="0.060000002"> <obstacleData floating="true" moving="false" deadly="false" leftEdge="9.336376" rightEdge="11.170376" height="0.331" y="0.060000002">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="12.695721" rightEdge="14.657721" height="0.331" y="0.053333335"> <obstacleData floating="true" moving="false" deadly="false" leftEdge="12.62905" rightEdge="14.59105" height="0.331" y="-0.0066666715">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="10.206878" rightEdge="10.919877" height="0.446" y="0.8999999"> <obstacleData floating="true" moving="false" deadly="true" leftEdge="10.066872" rightEdge="10.779871" height="0.446" y="0.9066666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="11.363712" rightEdge="12.509712" height="0.675" y="0.8533331"> <obstacleData floating="true" moving="false" deadly="true" leftEdge="11.170372" rightEdge="12.316372" height="0.675" y="0.8933331">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="11.321548" rightEdge="11.958548" height="0.318" y="-0.5866666"> <obstacleData floating="true" moving="false" deadly="true" leftEdge="11.321548" rightEdge="11.958548" height="0.318" y="-0.5866666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="12.303888" rightEdge="12.762888" height="0.586" y="-0.5266666"> <obstacleData floating="true" moving="false" deadly="false" leftEdge="12.0505495" rightEdge="12.509549" height="0.586" y="-0.44666666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="14.873224" rightEdge="16.300224" height="0.344" y="-0.14666666"> <obstacleData floating="true" moving="false" deadly="false" leftEdge="14.873224" rightEdge="16.300224" height="0.344" y="-0.14666666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="13.329891" rightEdge="14.756891" height="0.433" y="0.8866666"> <obstacleData floating="true" moving="false" deadly="true" leftEdge="13.489897" rightEdge="14.916897" height="0.433" y="0.8733333">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="15.221733" rightEdge="16.011734" height="0.382" y="0.55333334"> <obstacleData floating="true" moving="false" deadly="true" leftEdge="15.221733" rightEdge="16.011734" height="0.382" y="0.55333334">
@ -1184,10 +1184,10 @@
<obstacleData floating="false" moving="false" deadly="false" leftEdge="29.351357" rightEdge="29.988358" height="0.624" y="-0.28800002"> <obstacleData floating="false" moving="false" deadly="false" leftEdge="29.351357" rightEdge="29.988358" height="0.624" y="-0.28800002">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="30.039848" rightEdge="30.539848" height="0.535" y="-0.3325"> <obstacleData floating="false" moving="false" deadly="true" leftEdge="30.039848" rightEdge="30.539848" height="0.535" y="-0.3325">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
<obstacleData floating="false" moving="false" deadly="true" leftEdge="30.590002" rightEdge="31.303003" height="0.42" y="-0.39000005"> <obstacleData floating="false" moving="false" deadly="false" leftEdge="30.590002" rightEdge="31.303003" height="0.42" y="-0.39000005">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/> <moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData> </obstacleData>
</obstacles> </obstacles>
@ -1198,5 +1198,209 @@
</stars> </stars>
<energy x="1.4666665" y="-0.45333335"/> <energy x="1.4666665" y="-0.45333335"/>
</level> </level>
<level packId="2" id="15" goalX="31.180042" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="1.2458358" width="8.491672"/>
<tileData x="10.988761" width="0.61418533"/>
<tileData x="11.857771" width="0.53383255"/>
<tileData x="12.841696" width="0.5060158"/>
<tileData x="15.228531" width="3.3396492"/>
<tileData x="18.616825" width="2.296938"/>
<tileData x="21.514963" width="0.5873375"/>
<tileData x="23.918957" width="2.0686493"/>
<tileData x="26.417068" width="0.60757446"/>
<tileData x="29.509449" width="3.3411865"/>
<tileData x="32.558277" width="2.7564697"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="14.090023" width="34.180046"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData floating="true" moving="false" deadly="false" leftEdge="1.4779994" rightEdge="3.541999" height="0.217" y="-0.020000001">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="4.120665" rightEdge="5.0126653" height="0.395" y="-0.40250003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="3.6119986" rightEdge="4.987999" height="0.408" y="0.35333326">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="5.0681705" rightEdge="5.425171" height="0.446" y="-0.026666678">
<moveComponent length="1.314" rotation="0.0" startOffset="0.283" direction="1.0" speed="0.841" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="5.518672" rightEdge="6.6146717" height="0.331" y="0.38666654">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="5.533342" rightEdge="6.033342" height="0.318" y="-0.81333345">
<moveComponent length="4.562" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.245"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="7.6026764" rightEdge="8.010677" height="0.306" y="0.3866666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="8.954851" rightEdge="9.3118515" height="0.28" y="0.55999994">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="10.68369" rightEdge="11.2696905" height="0.306" y="-0.44700003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="11.6133585" rightEdge="12.1133585" height="0.65" y="-0.27500004">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="12.586696" rightEdge="13.086696" height="1.019" y="-0.0905">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="15.621209" rightEdge="15.9522085" height="0.42" y="-0.39000005">
<moveComponent length="1.211" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.51" hasPlayerXSpeed="false" triggerDistance="0.51"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="14.948218" rightEdge="15.305219" height="0.446" y="-0.37700003">
<moveComponent length="1.263" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.404" hasPlayerXSpeed="false" triggerDistance="0.531"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="16.260378" rightEdge="16.566378" height="0.51" y="-0.34500003">
<moveComponent length="1.186" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.606" hasPlayerXSpeed="false" triggerDistance="0.51"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="16.99785" rightEdge="17.328852" height="0.382" y="-0.40900004">
<moveComponent length="1.263" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.697" hasPlayerXSpeed="false" triggerDistance="1.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="17.802853" rightEdge="18.363853" height="0.446" y="-0.37700003">
<moveComponent length="1.289" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.803" hasPlayerXSpeed="false" triggerDistance="0.51"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="18.771168" rightEdge="19.382168" height="0.229" y="-0.48550004">
<moveComponent length="1.366" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.904" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="20.043308" rightEdge="20.323307" height="0.229" y="-0.48550004">
<moveComponent length="1.392" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.717" hasPlayerXSpeed="false" triggerDistance="0.449"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="21.284607" rightEdge="21.768608" height="0.357" y="-0.42150003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="26.176563" rightEdge="26.676563" height="0.344" y="-0.42800003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.991377" rightEdge="25.628378" height="0.166" y="-0.7266666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="21.905434" rightEdge="22.134434" height="0.268" y="-0.63333327">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="22.346937" rightEdge="22.652937" height="0.28" y="-0.7399999">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="25.769089" rightEdge="26.02409" height="0.395" y="-0.67333317">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="true" deadly="true" leftEdge="30.709" rightEdge="30.964" height="0.28" y="-0.46000004">
<moveComponent length="2.139" rotation="90.0" startOffset="0.525" direction="-1.0" speed="1.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
</obstacles>
<stars class="java.util.ArrayList">
<positionData x="4.8200045" y="-0.013333322"/>
<positionData x="13.950037" y="0.7666665"/>
<positionData x="19.586649" y="-0.4599999"/>
</stars>
<energy x="9.126682" y="0.8666665"/>
</level>
<level packId="2" id="16" goalX="34.76001" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="7.7578497" width="3.4223652"/>
<tileData x="14.044533" width="1.3870001"/>
<tileData x="23.205986" width="2.9279003"/>
<tileData x="28.029964" width="5.5200615"/>
<tileData x="32.099724" width="0.5934582"/>
<tileData x="33.163116" width="0.33332825"/>
<tileData x="34.07495" width="0.29034424"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="15.880005" width="37.76001"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData floating="true" moving="true" deadly="false" leftEdge="-1.2431667" rightEdge="-0.53016675" height="0.5" y="-1.1066666">
<moveComponent length="6.442" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.408"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="-0.57733333" rightEdge="0.11066669" height="0.369" y="-0.25999996">
<moveComponent length="10.0" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.907" hasPlayerXSpeed="false" triggerDistance="-0.306"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="0.20916629" rightEdge="0.7441663" height="0.344" y="0.58666664">
<moveComponent length="10.0" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.402" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="2.3454988" rightEdge="2.574499" height="0.242" y="-0.63999987">
<moveComponent length="2.036" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.21" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="6.661017" rightEdge="6.8390174" height="0.255" y="0.20000003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="9.123349" rightEdge="9.40335" height="0.395" y="0.17333336">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="4.5433307" rightEdge="4.8233304" height="0.242" y="0.9266667">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="6.977016" rightEdge="7.2830157" height="0.268" y="0.8866666">
<moveComponent length="2.242" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.609" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="9.615187" rightEdge="10.5581875" height="0.255" y="-1.0400001">
<moveComponent length="2.732" rotation="53.717" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.469"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="12.462691" rightEdge="13.150691" height="0.306" y="0.35333335">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="13.270035" rightEdge="14.850035" height="0.369" y="0.0933333">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="13.810037" rightEdge="14.310037" height="0.178" y="0.42000008">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="16.429995" rightEdge="16.929995" height="0.311" y="-0.7466664">
<moveComponent length="1.34" rotation="46.178" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.245"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="17.138186" rightEdge="18.335184" height="0.803" y="0.9599997">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="18.430843" rightEdge="20.035843" height="0.981" y="0.6933331">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="20.231983" rightEdge="21.607983" height="1.338" y="0.7999998">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="17.744852" rightEdge="18.94185" height="0.293" y="-0.5999998">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="19.526655" rightEdge="19.806654" height="0.28" y="-0.27333325">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="19.91481" rightEdge="20.83181" height="0.344" y="-1.0533333">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="24.024763" rightEdge="24.661764" height="0.497" y="-0.35150003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.722425" rightEdge="24.977427" height="0.28" y="0.25333324">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="25.023262" rightEdge="25.30326" height="0.357" y="-0.06666666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.750261" rightEdge="25.056261" height="0.178" y="-0.3866666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.876595" rightEdge="25.156593" height="0.318" y="-0.7333333">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="true" deadly="false" leftEdge="25.333199" rightEdge="25.833199" height="0.242" y="-0.47900003">
<moveComponent length="5.619" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.224"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="26.534367" rightEdge="27.145367" height="0.293" y="-0.12000001">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="28.905712" rightEdge="29.160713" height="0.344" y="-0.08666667">
<moveComponent length="1.418" rotation="90.0" startOffset="0.318" direction="1.0" speed="0.293" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
</obstacles>
<stars class="java.util.ArrayList">
<positionData x="10.060024" y="0.1933333"/>
<positionData x="16.063366" y="-0.09333336"/>
<positionData x="25.593235" y="-0.17333335"/>
</stars>
<energy x="2.4833322" y="0.9333333"/>
</level>
</levels> </levels>
</levelPack> </levelPack>

View File

@ -0,0 +1,51 @@
precision mediump float;
uniform sampler2D texture;
uniform float useCustomColor;
uniform vec4 color;
uniform float roundValue;
uniform float visibleAmount;
varying vec2 pass_TexCoords;
float isInRoundedRange();
float isInVisiblePart();
void main() {
if(isInRoundedRange() == 1.0 && isInVisiblePart() == 1.0){
if(useCustomColor == 1.0){
gl_FragColor = color;
} else {
gl_FragColor = texture2D(texture, pass_TexCoords);
}
gl_FragColor.rgb = gl_FragColor.rgb / gl_FragColor.a;
} else {
gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
}
}
float isInRoundedRange(){
if(roundValue == 0.0)
return 1.0;
float relativeX = abs((pass_TexCoords.x- 0.5));
float relativeY = abs(pass_TexCoords.y - 0.5);
float circleX = abs(roundValue * 0.5 - 0.5);
float circleY = abs(roundValue * 0.5 - 0.5);
if(relativeX < circleX || relativeY < circleY)
return 1.0;
float radius = roundValue * 0.5;
float distX = relativeX - circleX;
float distY = relativeY - circleY;
if(distX * distX + distY * distY > radius * radius)
return 0.0;
return 1.0;
}
float isInVisiblePart(){
if(pass_TexCoords.x >= visibleAmount)
return 1.0;
return 0.0;
}

View File

@ -3,30 +3,30 @@ package de.frajul.endlessroll.data;
/** /**
* Created by Julian on 02.08.2016. * Created by Julian on 02.08.2016.
*/ */
public class Color { public class Color3f {
private float r, g, b; private float r, g, b;
public Color() { public Color3f() {
} }
public Color(float r, float g, float b) { public Color3f(float r, float g, float b) {
this.r = r; this.r = r;
this.g = g; this.g = g;
this.b = b; this.b = b;
} }
public Color(Color other) { public Color3f(Color3f other) {
this.r = other.getR(); this.r = other.getR();
this.g = other.getG(); this.g = other.getG();
this.b = other.getB(); this.b = other.getB();
} }
public Color interpolate(float leftValue, float rightValue, Color color2) { public Color3f interpolate(float leftValue, float rightValue, Color3f color2) {
float r = this.r + (color2.r - this.r) * leftValue; float r = this.r + (color2.r - this.r) * leftValue;
float g = this.g + (color2.g - this.g) * leftValue; float g = this.g + (color2.g - this.g) * leftValue;
float b = this.b + (color2.b - this.b) * leftValue; float b = this.b + (color2.b - this.b) * leftValue;
return new Color(r, g, b); return new Color3f(r, g, b);
} }
private void mul(float a) { private void mul(float a) {
@ -35,7 +35,7 @@ public class Color {
b *= a; b *= a;
} }
private void add(Color other) { private void add(Color3f other) {
r += other.getR(); r += other.getR();
g += other.getG(); g += other.getG();
b += other.getB(); b += other.getB();

View File

@ -0,0 +1,58 @@
package de.frajul.endlessroll.data;
/**
* Created by Julian on 02.08.2016.
*/
public class Color4f {
private float r, g, b, a;
public Color4f() {
}
public Color4f(float r, float g, float b, float a) {
this.r = r;
this.g = g;
this.b = b;
this.a = a;
}
public Color4f(Color4f other) {
this.r = other.getR();
this.g = other.getG();
this.b = other.getB();
this.a = other.getA();
}
public float getR() {
return r;
}
public void setR(float r) {
this.r = r;
}
public float getG() {
return g;
}
public void setG(float g) {
this.g = g;
}
public float getB() {
return b;
}
public void setB(float b) {
this.b = b;
}
public float getA() {
return a;
}
public void setA(float a) {
this.a = a;
}
}

View File

@ -1,4 +1,4 @@
package de.frajul.endlessroll.entities; package de.frajul.endlessroll.entities.guis;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
@ -13,7 +13,7 @@ import de.frajul.endlessroll.sounds.SoundStream;
/** /**
* Created by Julian on 31.07.2016. * Created by Julian on 31.07.2016.
*/ */
public class Countdown extends Entity { public class Countdown extends Gui {
private Game game; private Game game;
private SoundManager soundManager; private SoundManager soundManager;

View File

@ -0,0 +1,33 @@
package de.frajul.endlessroll.entities.guis;
import de.frajul.endlessroll.data.Color4f;
import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.entities.textures.Texture;
public class Gui extends Entity {
protected float roundValue = 0;
protected Color4f color = null;
public Gui(Texture texture, Vector position, float width, float height) {
super(texture, position, width, height);
}
public float getRoundValue() {
return roundValue;
}
public void setRoundValue(float roundValue) {
this.roundValue = roundValue;
}
public Color4f getColor() {
return color;
}
public void setColor(Color4f color) {
this.color = color;
}
}

View File

@ -0,0 +1,42 @@
package de.frajul.endlessroll.entities.guis;
import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.textures.Texture;
import de.frajul.endlessroll.main.GameLog;
public class Progressbar extends Gui {
private float maxTime;
private float progress;
public Progressbar(Texture texture, Vector position, float width, float height, float maxTime) {
super(texture, position, width, height);
this.maxTime = maxTime;
}
public void update(float frameTime){
progress += frameTime / maxTime;
if (progress >= 1f)
progress = 1f;
}
public boolean hasFinished(){
return progress == 1;
}
public float getProgress() {
return progress;
}
public void setProgress(float progress) {
this.progress = progress;
}
public float getMaxTime() {
return maxTime;
}
public void setMaxTime(float maxTime) {
this.maxTime = maxTime;
}
}

View File

@ -0,0 +1,127 @@
package de.frajul.endlessroll.entities.guis;
import java.util.concurrent.atomic.AtomicBoolean;
import de.frajul.endlessroll.data.Color4f;
import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.textures.Texture;
import de.frajul.endlessroll.entities.textures.TexturePack;
import de.frajul.endlessroll.entities.tools.ToolSlot;
import de.frajul.endlessroll.entities.tools.ToolType;
import de.frajul.endlessroll.entities.tools.ToolUpgradeType;
import de.frajul.endlessroll.main.game.Game;
public class ToolButton {
private final Color4f LOCKED = new Color4f(0.29f, 0.29f, 0.29f, 0.9f);
private final Color4f ACTIVE_READY = new Color4f(0.25f, 0.89f, 0.17f, 0.9f);
private final Color4f ACTIVE_NOT_READY = new Color4f(0.86f, 0.08f, 0.13f, 0.9f);
private final Color4f INACTIVE_READY = new Color4f(1.0f, 0.95f, 0.0f, 0.9f);
private final Color4f INACTIVE_NOT_READY = new Color4f(0.57f, 0.11f, 0.06f, 0.9f);
private Gui border;
private Gui background;
private Progressbar progressbar;
private Game game;
private ToolType toolType;
private boolean locked;
private AtomicBoolean active;
private Texture toolButtonLockedTexture;
private Texture toolButtonEmptyTexture;
public ToolButton(Vector position, float width, float height, TexturePack texturePack, Game game) {
this.game = game;
active = new AtomicBoolean(false);
toolButtonLockedTexture = texturePack.toolButtonLocked;
toolButtonEmptyTexture = texturePack.toolButtonEmpty;
border = new Gui(texturePack.white, position, width, height);
border.setRoundValue(0.3f);
background = new Gui(null, position, height, height);
progressbar = new Progressbar(texturePack.white, position, height, height, 0);
progressbar.setColor(new Color4f(0.55f, 0.55f, 0.55f, 0.62f));
progressbar.setRoundValue(1);
progressbar.setProgress(0.6f);
}
public void setToolSlot(ToolSlot toolSlot) {
this.toolType = toolSlot.getToolType();
this.locked = toolSlot.isLocked();
if (locked)
background.setTexture(toolButtonLockedTexture);
else if (toolType == null)
background.setTexture(toolButtonEmptyTexture);
else
background.setTexture(toolType.getToolButtonTexture());
if (toolType != null)
progressbar.setMaxTime(toolType.getCurrentUpgradeValue(ToolUpgradeType.COOLDOWN));
if (locked || toolType == null)
border.setColor(LOCKED);
else
border.setColor(INACTIVE_NOT_READY);
}
public void setProgress(float progress) {
progressbar.setProgress(progress);
updateBorderColor();
}
public boolean hasFinishedLoading() {
return progressbar.hasFinished();
}
public void update(float frameTime) {
if (progressbar.hasFinished())
return;
progressbar.update(frameTime);
if (progressbar.hasFinished()) {
if (active.get())
game.onToolButtonFinishedLoading(toolType);
}
updateBorderColor();
}
public synchronized void updateBorderColor() {
if (!locked && toolType != null) {
if (active.get()) {
if (progressbar.hasFinished())
border.setColor(ACTIVE_READY);
else
border.setColor(ACTIVE_NOT_READY);
} else {
if (progressbar.hasFinished())
border.setColor(INACTIVE_READY);
else
border.setColor(INACTIVE_NOT_READY);
}
}
}
public void setActive(boolean active) {
this.active.set(active);
}
public AtomicBoolean getActive() {
return active;
}
public Gui getBorder() {
return border;
}
public Gui getBackground() {
return background;
}
public Progressbar getProgressbar() {
return progressbar;
}
public ToolType getToolType() {
return toolType;
}
}

View File

@ -0,0 +1,75 @@
package de.frajul.endlessroll.entities.guis;
import java.util.ArrayList;
import java.util.List;
import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.textures.TexturePack;
import de.frajul.endlessroll.main.game.Game;
import de.frajul.endlessroll.user.ToolSlotSettings;
import de.frajul.endlessroll.views.ToolButtonView;
public class ToolButtonBar {
private final int BUTTON_COUNT = 4;
private final float BUTTON_HEIGHT = 0.34f;
private final float BUTTON_WIDTH = BUTTON_HEIGHT * 1.17f;
private final float BUTTON_MARGIN = 0.012f;
private List<ToolButton> toolButtons = new ArrayList<>();
public ToolButtonBar(TexturePack texturePack, Game game, ToolSlotSettings toolSlotSettings) {
float buttonWidth = BUTTON_WIDTH + 2 * BUTTON_MARGIN;
float totalWidth = BUTTON_COUNT * buttonWidth;
for (int i = 0; i < BUTTON_COUNT; i++) {
Vector position = new Vector(-totalWidth / 2 + (i + 0.5f) * buttonWidth,
1 - (0.5f * BUTTON_HEIGHT + BUTTON_MARGIN * 2));
ToolButton toolButton = new ToolButton(position, BUTTON_WIDTH, BUTTON_HEIGHT,
texturePack, game);
toolButton.setToolSlot(toolSlotSettings.get(i));
toolButtons.add(toolButton);
}
}
public void update(float frameTime) {
for (ToolButton button : toolButtons)
button.update(frameTime);
}
public void changeToolButtonTypes(ToolSlotSettings toolSlotSettings) {
for (int i = 0; i < 4; i++) {
toolButtons.get(i).setToolSlot(toolSlotSettings.get(i));
}
}
public void reset(ToolSlotSettings toolSlotSettings) {
changeToolButtonTypes(toolSlotSettings);
for (int i = 0; i < 4; i++) {
if (toolSlotSettings.get(i).getToolType() != null) {
toolButtons.get(i).setActive(true);
toolButtons.get(i).updateBorderColor();
break;
}
}
for (ToolButton button : toolButtons)
button.setProgress(1);
}
public ToolButton getActiveButton(){
for(ToolButton button : toolButtons)
if(button.getActive().get())
return button;
return null;
}
public List<Gui> toGuiList() {
List<Gui> list = new ArrayList<>();
for (ToolButton button : toolButtons) {
list.add(button.getBorder());
list.add(button.getBackground());
list.add(button.getProgressbar());
}
return list;
}
}

View File

@ -2,7 +2,7 @@ package de.frajul.endlessroll.entities.particles;
import java.util.Random; import java.util.Random;
import de.frajul.endlessroll.data.Color; import de.frajul.endlessroll.data.Color3f;
import de.frajul.endlessroll.data.Vector; import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.Entity; import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.entities.particles.attributes.attributeValues.Range; import de.frajul.endlessroll.entities.particles.attributes.attributeValues.Range;
@ -15,7 +15,7 @@ import de.frajul.endlessroll.main.game.Timer;
*/ */
public class Particle extends Entity { public class Particle extends Entity {
private Color color; private Color3f color;
private Random random; private Random random;
private boolean active; private boolean active;
private float maxLife; private float maxLife;
@ -101,11 +101,11 @@ public class Particle extends Entity {
return active; return active;
} }
public void setColor(Color color) { public void setColor(Color3f color) {
this.color = color; this.color = color;
} }
public Color getColor() { public Color3f getColor() {
return color; return color;
} }
} }

View File

@ -3,7 +3,7 @@ package de.frajul.endlessroll.entities.particles.attributes.attributeValues;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import de.frajul.endlessroll.data.Color; import de.frajul.endlessroll.data.Color3f;
/** /**
* Created by Julian on 02.08.2016. * Created by Julian on 02.08.2016.
@ -30,7 +30,7 @@ public class TintTimeline extends ParticleAttributeValue {
points.get(index).setTime(time); points.get(index).setTime(time);
} }
public Color getValueAtTime(float time) { public Color3f getValueAtTime(float time) {
TintTimelinePoint left = null, right = null; TintTimelinePoint left = null, right = null;
for (TintTimelinePoint point : points) { for (TintTimelinePoint point : points) {
if (point.getTime() <= time) { if (point.getTime() <= time) {
@ -51,7 +51,7 @@ public class TintTimeline extends ParticleAttributeValue {
} }
return left.getColor(); return left.getColor();
} }
return new Color(); return new Color3f();
} }
} }

View File

@ -1,11 +1,11 @@
package de.frajul.endlessroll.entities.particles.attributes.attributeValues; package de.frajul.endlessroll.entities.particles.attributes.attributeValues;
import de.frajul.endlessroll.data.Color; import de.frajul.endlessroll.data.Color3f;
public class TintTimelinePoint { public class TintTimelinePoint {
private float time; private float time;
private Color color; private Color3f color;
public float getTime() { public float getTime() {
return time; return time;
@ -15,13 +15,13 @@ public class TintTimelinePoint {
this.time = time; this.time = time;
} }
public Color getColor() { public Color3f getColor() {
return color; return color;
} }
public void setValue(int colorIndex, float value) { public void setValue(int colorIndex, float value) {
if (color == null) if (color == null)
color = new Color(); color = new Color3f();
if (colorIndex == 0) if (colorIndex == 0)
color.setR(value); color.setR(value);
else if (colorIndex == 1) else if (colorIndex == 1)

View File

@ -14,19 +14,19 @@ import de.frajul.endlessroll.entities.textures.TexturePack;
public enum PlayerShape { public enum PlayerShape {
BALL(R.string.playershape_name_ball, R.string.playershape_description_ball, BALL(R.string.playershape_name_ball, R.string.playershape_description_ball,
R.drawable.playershapes_ball, new EmptyTask()), R.drawable.playershapes_ball, new EmptyTask()),
CLOCK(R.string.playershape_name_clock, R.string.playershape_description_clock,
R.drawable.playershapes_clock, new CollectStarTask(15)),
HYPNO_SPIRAL(R.string.playershape_name_hypno_spiral, HYPNO_SPIRAL(R.string.playershape_name_hypno_spiral,
R.string.playershape_description_hypno_spiral, R.drawable.playershapes_hypno_spiral, R.string.playershape_description_hypno_spiral, R.drawable.playershapes_hypno_spiral,
new CollectEnergyTask(3)), new CollectEnergyTask(3)),
PACMAN(R.string.playershape_name_pacman, R.string.playershape_description_pacman, CLOCK(R.string.playershape_name_clock, R.string.playershape_description_clock,
R.drawable.playershapes_pacman, new CompleteWorldTask(1)), R.drawable.playershapes_clock, new CollectStarTask(15)),
SMILEY(R.string.playershape_name_smiley, R.string.playershape_description_smiley,
R.drawable.playershapes_smiley, new CollectStarTask(30)),
WHEEL(R.string.playershape_name_wheel, R.string.playershape_description_wheel,
R.drawable.playershapes_wheel, new CollectStarTask(45)),
SUN(R.string.playershape_name_sun, R.string.playershape_description_sun, SUN(R.string.playershape_name_sun, R.string.playershape_description_sun,
R.drawable.playershapes_sun, new CollectEnergyTask(10)), R.drawable.playershapes_sun, new CollectEnergyTask(10)),
SMILEY(R.string.playershape_name_smiley, R.string.playershape_description_smiley,
R.drawable.playershapes_smiley, new CollectStarTask(30)),
PACMAN(R.string.playershape_name_pacman, R.string.playershape_description_pacman,
R.drawable.playershapes_pacman, new CompleteWorldTask(1)),
WHEEL(R.string.playershape_name_wheel, R.string.playershape_description_wheel,
R.drawable.playershapes_wheel, new CollectStarTask(45)),
BLUE(R.string.playershape_name_blue, R.string.playershape_description_blue, BLUE(R.string.playershape_name_blue, R.string.playershape_description_blue,
R.drawable.jury_playershapes_ball_omg_im_blue, new CompleteWorldTask(2)); R.drawable.jury_playershapes_ball_omg_im_blue, new CompleteWorldTask(2));

View File

@ -15,23 +15,29 @@ public class TexturePack {
private TextureLoader loader; private TextureLoader loader;
public final Texture white;
public final Texture goal; public final Texture goal;
public final Texture playerArrow; public final Texture playerArrow;
public final Texture star; public final Texture star;
public final Texture energy; public final Texture energy;
public final Texture countdown3, countdown2, countdown1; public final Texture countdown3, countdown2, countdown1;
public final Texture toolButtonLocked;
public final Texture toolButtonEmpty;
public TexturePack(Context context) { public TexturePack(Context context) {
loader = new TextureLoader(context); loader = new TextureLoader(context);
white = loadTexture(R.drawable.white);
goal = loadTexture(R.drawable.guis_goal); goal = loadTexture(R.drawable.guis_goal);
playerArrow = loadTexture(R.drawable.guis_playerarrow); playerArrow = loadTexture(R.drawable.guis_playerarrow);
star = loadTexture(R.drawable.currency_star); star = loadTexture(R.drawable.currency_star);
energy = loadAtlas(R.drawable.currency_energy_atlas, 2, 2); energy = loadAtlas(R.drawable.currency_energy_atlas, 2, 2);
countdown3 = loadTexture(R.drawable.countdown_3); countdown3 = loadTexture(R.drawable.guis_countdown_3);
countdown2 = loadTexture(R.drawable.countdown_2); countdown2 = loadTexture(R.drawable.guis_countdown_2);
countdown1 = loadTexture(R.drawable.countdown_1); countdown1 = loadTexture(R.drawable.guis_countdown_1);
toolButtonLocked = loadTexture(R.drawable.tools_button_locked);
toolButtonEmpty = loadTexture(R.drawable.tools_button_empty);
PlayerShape.loadAllTextures(this); PlayerShape.loadAllTextures(this);
ToolType.loadAllToolTextures(this); ToolType.loadAllToolTextures(this);

View File

@ -52,6 +52,7 @@ public enum ToolType {
private final List<ToolUpgrade> upgrades; private final List<ToolUpgrade> upgrades;
private Texture toolTexture = null; private Texture toolTexture = null;
private Texture toolButtonTexture = null;
private boolean bought; private boolean bought;
private int currentUpgradeLevel = 1; private int currentUpgradeLevel = 1;
@ -95,8 +96,9 @@ public enum ToolType {
} }
public static void loadAllToolTextures(TexturePack texturePack) { public static void loadAllToolTextures(TexturePack texturePack) {
for (ToolType type : values()) for (ToolType type : values()){
type.loadToolTexture(texturePack); type.loadToolTexture(texturePack);
type.loadToolButtonTexture(texturePack);}
} }
private void loadToolTexture(TexturePack texturePack) { private void loadToolTexture(TexturePack texturePack) {
@ -108,10 +110,20 @@ public enum ToolType {
toolTexture = texturePack.loadTexture(toolTextureId); toolTexture = texturePack.loadTexture(toolTextureId);
} }
private void loadToolButtonTexture(TexturePack texturePack){
if (buttonDrawable == -1)
return;
toolButtonTexture = texturePack.loadTexture(buttonDrawable);
}
public Texture getToolTexture() { public Texture getToolTexture() {
return toolTexture; return toolTexture;
} }
public Texture getToolButtonTexture() {
return toolButtonTexture;
}
public int getButtonDrawable() { public int getButtonDrawable() {
return buttonDrawable; return buttonDrawable;
} }

View File

@ -30,7 +30,6 @@ public class DataStorageHandler {
private final String USER_PLAYER_SHAPE = "PlayerShape"; private final String USER_PLAYER_SHAPE = "PlayerShape";
private final String TOOL_SHOP_TUTORIAL_FINISHED = "ToolShopTutorialFinished"; private final String TOOL_SHOP_TUTORIAL_FINISHED = "ToolShopTutorialFinished";
private final String SHOW_FPS = "ShowFps"; private final String SHOW_FPS = "ShowFps";
private final String PERFORMANCE_BOOST = "PerformanceBoost";
private SharedPreferences preferences; private SharedPreferences preferences;
private MyDatabase database; private MyDatabase database;
@ -50,16 +49,6 @@ public class DataStorageHandler {
editor.apply(); editor.apply();
} }
public boolean readIsPerformanceBoost() {
return preferences.getBoolean(PERFORMANCE_BOOST, false);
}
public void writePerformanceBoost(boolean performanceBoost) {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(PERFORMANCE_BOOST, performanceBoost);
editor.apply();
}
public boolean readIsSoundsMuted() { public boolean readIsSoundsMuted() {
return preferences.getBoolean(SOUNDS_MUTED, false); return preferences.getBoolean(SOUNDS_MUTED, false);
} }

View File

@ -13,6 +13,8 @@ import de.frajul.endlessroll.entities.Player;
import de.frajul.endlessroll.entities.collectables.Energy; import de.frajul.endlessroll.entities.collectables.Energy;
import de.frajul.endlessroll.entities.collectables.Star; import de.frajul.endlessroll.entities.collectables.Star;
import de.frajul.endlessroll.entities.collision.CollisionManager; import de.frajul.endlessroll.entities.collision.CollisionManager;
import de.frajul.endlessroll.entities.guis.ToolButton;
import de.frajul.endlessroll.entities.guis.ToolButtonBar;
import de.frajul.endlessroll.entities.particles.Firework; import de.frajul.endlessroll.entities.particles.Firework;
import de.frajul.endlessroll.entities.particles.ParticleSystem; import de.frajul.endlessroll.entities.particles.ParticleSystem;
import de.frajul.endlessroll.entities.textures.TexturePack; import de.frajul.endlessroll.entities.textures.TexturePack;
@ -29,9 +31,9 @@ import de.frajul.endlessroll.main.screens.GameScreen;
import de.frajul.endlessroll.main.screens.Screen; import de.frajul.endlessroll.main.screens.Screen;
import de.frajul.endlessroll.rendering.Rendering; import de.frajul.endlessroll.rendering.Rendering;
import de.frajul.endlessroll.sqlDatabase.MyDatabase; import de.frajul.endlessroll.sqlDatabase.MyDatabase;
import de.frajul.endlessroll.entities.Countdown; import de.frajul.endlessroll.entities.guis.Countdown;
import de.frajul.endlessroll.views.ToolButton; import de.frajul.endlessroll.views.ToolButtonView;
import de.frajul.endlessroll.views.ToolButtonBar; import de.frajul.endlessroll.views.ToolButtonBarView;
import de.frajul.endlessroll.views.ViewManager; import de.frajul.endlessroll.views.ViewManager;
/** /**
@ -46,6 +48,7 @@ public class Game extends Rendering<GameScene> {
private ParticleSystem particleSystem; private ParticleSystem particleSystem;
private Firework firework; private Firework firework;
private Countdown countdown; private Countdown countdown;
private ToolButtonBar toolButtonBar;
private ToolType currentTool; private ToolType currentTool;
private Player player; private Player player;
@ -77,6 +80,8 @@ public class Game extends Rendering<GameScene> {
scene = new GameScene(gameActivity, texturePack, particleSystem); scene = new GameScene(gameActivity, texturePack, particleSystem);
firework = new Firework(particleSystem.firework, scene.getCamera()); firework = new Firework(particleSystem.firework, scene.getCamera());
countdown = new Countdown(this, gameActivity.getSoundManager(), texturePack); countdown = new Countdown(this, gameActivity.getSoundManager(), texturePack);
toolButtonBar = new ToolButtonBar(texturePack, this, gameActivity.getUser().getToolSlotSettings());
scene.getGuis().addAll(toolButtonBar.toGuiList());
scene.getGuis().add(countdown); scene.getGuis().add(countdown);
if (level != null) if (level != null)
startGame(levelPack, level); startGame(levelPack, level);
@ -107,11 +112,10 @@ public class Game extends Rendering<GameScene> {
scene.loadLevel(level, levelPack.getWorld(), scene.loadLevel(level, levelPack.getWorld(),
gameActivity.getUser().getCurrentPlayerShape()); gameActivity.getUser().getCurrentPlayerShape());
player = scene.getPlayer(); player = scene.getPlayer();
viewManager.resetViews(gameActivity.getUser()); viewManager.resetViews();
setCurrentTool(viewManager.toolButtonBar.getActiveButton().getToolType(), true); toolButtonBar.reset(gameActivity.getUser().getToolSlotSettings());
setCurrentTool(toolButtonBar.getActiveButton().getToolType(), true);
viewManager.setShowFps(gameActivity.getDataStorageHandler().readIsShowFps()); viewManager.setShowFps(gameActivity.getDataStorageHandler().readIsShowFps());
viewManager
.setBoostPerformance(gameActivity.getDataStorageHandler().readIsPerformanceBoost());
countdown.start(); countdown.start();
} }
} catch (Exception e) { } catch (Exception e) {
@ -142,6 +146,8 @@ public class Game extends Rendering<GameScene> {
viewManager.update(gameState == GameState.RUNNING, timer, playerProgress); viewManager.update(gameState == GameState.RUNNING, timer, playerProgress);
switch (gameState) { switch (gameState) {
case RUNNING: case RUNNING:
toolButtonBar.update(timer.getFrameTimeSeconds());
if (player.getPosition().y < -2f) { if (player.getPosition().y < -2f) {
onGameOver(false); onGameOver(false);
return; return;
@ -170,9 +176,8 @@ public class Game extends Rendering<GameScene> {
@Override @Override
public boolean onTouch(View v, MotionEvent event) { public boolean onTouch(View v, MotionEvent event) {
if (gameState == GameState.RUNNING) { if (gameState == GameState.RUNNING) {
ToolButtonBar bar = viewManager.toolButtonBar; ToolButton currentToolButton = toolButtonBar.getActiveButton();
ToolButton button = bar.getByToolType(currentTool); if (currentToolButton != null && currentToolButton.hasFinishedLoading() && currentToolButton.getToolType() != null) {
if (button != null && button.finishedLoading() && button.getToolType() != null) {
if (event.getAction() == MotionEvent.ACTION_DOWN) { if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (currentTool == ToolType.BOMB) { if (currentTool == ToolType.BOMB) {
try { try {
@ -183,7 +188,7 @@ public class Game extends Rendering<GameScene> {
viewManager.showBombErrorMessage(event.getX(), event.getY()); viewManager.showBombErrorMessage(event.getX(), event.getY());
return true; return true;
} else { } else {
button.setProgress(0); currentToolButton.setProgress(0);
scene.getBombSelected().set(false); scene.getBombSelected().set(false);
Tool tool = addTool(event.getX(), event.getY()); Tool tool = addTool(event.getX(), event.getY());
if (tool != null && tool instanceof Bomb) if (tool != null && tool instanceof Bomb)
@ -195,7 +200,7 @@ public class Game extends Rendering<GameScene> {
return true; return true;
} }
} }
button.setProgress(0); currentToolButton.setProgress(0);
addTool(event.getX(), event.getY()); addTool(event.getX(), event.getY());
} }
} }
@ -205,15 +210,14 @@ public class Game extends Rendering<GameScene> {
} }
public void resetViews() { public void resetViews() {
viewManager.resetViews(gameActivity.getUser()); viewManager.resetViews();
toolButtonBar.reset(gameActivity.getUser().getToolSlotSettings());
} }
public void continueGame() { public void continueGame() {
viewManager.hideShortMenu(); viewManager.hideShortMenu();
gameState = GameState.COUNTDOWN; gameState = GameState.COUNTDOWN;
viewManager.setShowFps(gameActivity.getDataStorageHandler().readIsShowFps()); viewManager.setShowFps(gameActivity.getDataStorageHandler().readIsShowFps());
viewManager
.setBoostPerformance(gameActivity.getDataStorageHandler().readIsPerformanceBoost());
countdown.start(); countdown.start();
} }

View File

@ -14,6 +14,7 @@ import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.entities.Obstacle; import de.frajul.endlessroll.entities.Obstacle;
import de.frajul.endlessroll.entities.Player; import de.frajul.endlessroll.entities.Player;
import de.frajul.endlessroll.entities.collectables.Collectables; import de.frajul.endlessroll.entities.collectables.Collectables;
import de.frajul.endlessroll.entities.guis.Gui;
import de.frajul.endlessroll.entities.particles.ParticleSource; import de.frajul.endlessroll.entities.particles.ParticleSource;
import de.frajul.endlessroll.entities.particles.ParticleSystem; import de.frajul.endlessroll.entities.particles.ParticleSystem;
import de.frajul.endlessroll.entities.textures.TexturePack; import de.frajul.endlessroll.entities.textures.TexturePack;
@ -51,7 +52,7 @@ public abstract class Scene {
protected final List<Obstacle> obstacles = Collections.synchronizedList(new ArrayList<Obstacle>()); protected final List<Obstacle> obstacles = Collections.synchronizedList(new ArrayList<Obstacle>());
protected final List<Tool> tools = Collections.synchronizedList(new ArrayList<Tool>()); protected final List<Tool> tools = Collections.synchronizedList(new ArrayList<Tool>());
protected Collectables collectables = new Collectables(); protected Collectables collectables = new Collectables();
protected final List<Entity> guis = Collections.synchronizedList(new ArrayList<Entity>()); protected final List<Gui> guis = Collections.synchronizedList(new ArrayList<Gui>());
public Scene(GameActivity gameActivity, TexturePack texturePack, ParticleSystem particleSystem) { public Scene(GameActivity gameActivity, TexturePack texturePack, ParticleSystem particleSystem) {
this.gameActivity = gameActivity; this.gameActivity = gameActivity;
@ -193,7 +194,7 @@ public abstract class Scene {
return collectables; return collectables;
} }
public synchronized List<Entity> getGuis() { public synchronized List<Gui> getGuis() {
return guis; return guis;
} }

View File

@ -2,21 +2,29 @@ package de.frajul.endlessroll.main.game;
import de.frajul.endlessroll.data.Vector; import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.Entity; import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.entities.guis.ToolButtonBar;
import de.frajul.endlessroll.entities.particles.ParticleSystem; import de.frajul.endlessroll.entities.particles.ParticleSystem;
import de.frajul.endlessroll.entities.shapes.PlayerShape;
import de.frajul.endlessroll.entities.textures.TexturePack; import de.frajul.endlessroll.entities.textures.TexturePack;
import de.frajul.endlessroll.levels.worlds.World; import de.frajul.endlessroll.levels.worlds.World;
import de.frajul.endlessroll.main.GameActivity; import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.user.ToolSlotSettings;
public class TestScreenScene extends Scene { public class TestScreenScene extends Scene {
public TestScreenScene(GameActivity gameActivity, TexturePack texturePack, ParticleSystem particleSystem) { public TestScreenScene(GameActivity gameActivity, TexturePack texturePack, ParticleSystem particleSystem) {
super(gameActivity, texturePack, particleSystem); super(gameActivity, texturePack, particleSystem);
// terrain.createEndless(World.GRASSLANDS, 0.6f); // terrain.createEndless(World.GRASSLANDS, 0.6f);
// background.changeTextures(World.ICY_MOUNTAINS.getBackgroundTexture()); // background.changeTextures(World.ICY_MOUNTAINS.getBackgroundTexture());
// //
// player.init(PlayerShape.BALL, 0.6f, 0.5f, 0.5f, particleSystem); // player.init(PlayerShape.BALL, 0.6f, 0.5f, 0.5f, particleSystem);
// uncategorizedEntities.add(player); // uncategorizedEntities.add(player);
uncategorizedEntities.add(new Entity(World.GRASSLANDS.getBackgroundTextures().get(0), new Vector(), 1, 1)); uncategorizedEntities
.add(new Entity(World.GRASSLANDS.getBackgroundTextures().get(0), new Vector(), 1,
1));
try {
guis.addAll(new ToolButtonBar(texturePack, null,
new ToolSlotSettings("RAMP", "STASIS", "BOMB", "MAGNET", 1)).toGuiList());
} catch (Exception ignore) {
}
} }
} }

View File

@ -27,7 +27,6 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
private ToggleButton musicToggle; private ToggleButton musicToggle;
private ToggleButton soundToggle; private ToggleButton soundToggle;
private CheckBox fpsCheckbox; private CheckBox fpsCheckbox;
private CheckBox performanceCheckbox;
private Button creditsButton; private Button creditsButton;
private Button resetButton; private Button resetButton;
@ -45,8 +44,6 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
soundToggle.setOnClickListener(this); soundToggle.setOnClickListener(this);
fpsCheckbox = (CheckBox) layout.findViewById(R.id.settings_fps_checkbox); fpsCheckbox = (CheckBox) layout.findViewById(R.id.settings_fps_checkbox);
fpsCheckbox.setTypeface(gameActivity.getTypeface()); fpsCheckbox.setTypeface(gameActivity.getTypeface());
performanceCheckbox = (CheckBox) layout.findViewById(R.id.settings_performance_checkbox);
performanceCheckbox.setTypeface(gameActivity.getTypeface());
creditsButton = (Button) layout.findViewById(R.id.settings_credits); creditsButton = (Button) layout.findViewById(R.id.settings_credits);
creditsButton.setOnClickListener(this); creditsButton.setOnClickListener(this);
resetButton = (Button) layout.findViewById(R.id.settings_reset); resetButton = (Button) layout.findViewById(R.id.settings_reset);
@ -72,8 +69,6 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
musicToggle.setChecked(!gameActivity.getSoundManager().isMusicMuted()); musicToggle.setChecked(!gameActivity.getSoundManager().isMusicMuted());
soundToggle.setChecked(!gameActivity.getSoundManager().isSoundsMuted()); soundToggle.setChecked(!gameActivity.getSoundManager().isSoundsMuted());
fpsCheckbox.setChecked(gameActivity.getDataStorageHandler().readIsShowFps()); fpsCheckbox.setChecked(gameActivity.getDataStorageHandler().readIsShowFps());
performanceCheckbox
.setChecked(gameActivity.getDataStorageHandler().readIsPerformanceBoost());
resetButton.setEnabled(super.caller != ScreenType.GAME); resetButton.setEnabled(super.caller != ScreenType.GAME);
} }
@ -84,7 +79,6 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
gameActivity.getDataStorageHandler() gameActivity.getDataStorageHandler()
.writeMusicMuted(gameActivity.getSoundManager().isMusicMuted()); .writeMusicMuted(gameActivity.getSoundManager().isMusicMuted());
gameActivity.getDataStorageHandler().writeShowFps(fpsCheckbox.isChecked()); gameActivity.getDataStorageHandler().writeShowFps(fpsCheckbox.isChecked());
gameActivity.getDataStorageHandler().writePerformanceBoost(performanceCheckbox.isChecked());
flipToCaller(); flipToCaller();
} }

View File

@ -12,6 +12,8 @@ import javax.microedition.khronos.opengles.GL10;
import de.frajul.endlessroll.entities.BackgroundLayer; import de.frajul.endlessroll.entities.BackgroundLayer;
import de.frajul.endlessroll.entities.Entity; import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.entities.Obstacle; import de.frajul.endlessroll.entities.Obstacle;
import de.frajul.endlessroll.entities.guis.Gui;
import de.frajul.endlessroll.entities.guis.Progressbar;
import de.frajul.endlessroll.entities.textures.TexturePack; import de.frajul.endlessroll.entities.textures.TexturePack;
import de.frajul.endlessroll.entities.tileLists.Tile; import de.frajul.endlessroll.entities.tileLists.Tile;
import de.frajul.endlessroll.entities.tileLists.TileList; import de.frajul.endlessroll.entities.tileLists.TileList;
@ -130,23 +132,29 @@ public class GameRenderer implements GLSurfaceView.Renderer {
} }
} }
private void renderGuis(GL10 gl, List<Entity> guis) { private void renderGuis(GL10 gl, List<Gui> guis) {
guiShader.start(); guiShader.start();
guiShader.loadMVPMatrix(matrixCreator); guiShader.loadMVPMatrix(matrixCreator);
synchronized (guis) { synchronized (guis) {
for (Entity gui : guis) for (Gui gui : guis)
renderGui(gl, gui); renderGui(gl, gui);
} }
guiShader.stop(); guiShader.stop();
} }
private void renderGui(GL10 gl, Entity gui) { private void renderGui(GL10 gl, Gui gui) {
if (!gui.isVisible()) if (!gui.isVisible())
return; return;
gl.glActiveTexture(GL10.GL_TEXTURE0); gl.glActiveTexture(GL10.GL_TEXTURE0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, gui.getTexture().getId()); gl.glBindTexture(GL10.GL_TEXTURE_2D, gui.getTexture().getId());
guiShader.loadTransformationMatrix(matrixCreator, gui); guiShader.loadTransformationMatrix(matrixCreator, gui);
guiShader.loadCustomColor(gui.getColor());
guiShader.loadRoundValue(gui.getRoundValue());
if (gui instanceof Progressbar)
guiShader.loadVisibleAmount(((Progressbar) gui).getProgress());
else
guiShader.loadVisibleAmount(0);
quad.draw(); quad.draw();
} }

View File

@ -3,9 +3,8 @@ package de.frajul.endlessroll.rendering.shader;
import android.content.Context; import android.content.Context;
import android.opengl.GLES20; import android.opengl.GLES20;
import de.frajul.endlessroll.data.Color4f;
import de.frajul.endlessroll.entities.Entity; import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.entities.textures.Texture;
import de.frajul.endlessroll.main.game.Camera;
import de.frajul.endlessroll.rendering.MatrixCreator; import de.frajul.endlessroll.rendering.MatrixCreator;
/** /**
@ -15,15 +14,23 @@ public class GuiShader extends ShaderProgram {
private int location_mvpMatrix; private int location_mvpMatrix;
private int location_transformationMatrix; private int location_transformationMatrix;
private int location_useCustomColor;
private int location_color;
private int location_roundValue;
private int location_visibleAmount;
public GuiShader(Context context) throws Exception { public GuiShader(Context context) throws Exception {
super(context, "shader/guiVertexShader.glsl", "shader/simpleFragmentShader.glsl"); super(context, "shader/guiVertexShader.glsl", "shader/guiFragmentShader.glsl");
} }
@Override @Override
protected void loadUniformLocations() { protected void loadUniformLocations() {
location_mvpMatrix = super.getUniformLocation("mvpMatrix"); location_mvpMatrix = super.getUniformLocation("mvpMatrix");
location_transformationMatrix = super.getUniformLocation("transformationMatrix"); location_transformationMatrix = super.getUniformLocation("transformationMatrix");
location_useCustomColor = super.getUniformLocation("useCustomColor");
location_color = super.getUniformLocation("color");
location_roundValue = super.getUniformLocation("roundValue");
location_visibleAmount = super.getUniformLocation("visibleAmount");
} }
public void loadMVPMatrix(MatrixCreator matrixCreator) { public void loadMVPMatrix(MatrixCreator matrixCreator) {
@ -36,4 +43,19 @@ public class GuiShader extends ShaderProgram {
GLES20.glUniformMatrix4fv(location_transformationMatrix, 1, false, transformationMatrix, 0); GLES20.glUniformMatrix4fv(location_transformationMatrix, 1, false, transformationMatrix, 0);
} }
public void loadCustomColor(Color4f color) {
GLES20.glUniform1f(location_useCustomColor, color == null ? 0 : 1);
if (color != null)
GLES20.glUniform4f(location_color, color.getR(), color.getG(), color.getB(),
color.getA());
}
public void loadRoundValue(float roundValue) {
GLES20.glUniform1f(location_roundValue, roundValue);
}
public void loadVisibleAmount(float visibleAmount) {
GLES20.glUniform1f(location_visibleAmount, visibleAmount);
}
} }

View File

@ -3,7 +3,7 @@ package de.frajul.endlessroll.rendering.shader;
import android.content.Context; import android.content.Context;
import android.opengl.GLES20; import android.opengl.GLES20;
import de.frajul.endlessroll.data.Color; import de.frajul.endlessroll.data.Color3f;
import de.frajul.endlessroll.entities.Entity; import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.main.game.Camera; import de.frajul.endlessroll.main.game.Camera;
import de.frajul.endlessroll.rendering.MatrixCreator; import de.frajul.endlessroll.rendering.MatrixCreator;
@ -44,7 +44,7 @@ public class ParticleShader extends ShaderProgram {
GLES20.glUniform1f(location_alpha, alpha); GLES20.glUniform1f(location_alpha, alpha);
} }
public void loadColor(Color color) { public void loadColor(Color3f color) {
GLES20.glUniform3f(location_color, color.getR(), color.getG(), color.getB()); GLES20.glUniform3f(location_color, color.getR(), color.getG(), color.getB());
} }

View File

@ -2,8 +2,6 @@ package de.frajul.endlessroll.views;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
@ -12,7 +10,6 @@ import java.util.List;
import de.frajul.endlessroll.R; import de.frajul.endlessroll.R;
import de.frajul.endlessroll.entities.tools.ToolType; import de.frajul.endlessroll.entities.tools.ToolType;
import de.frajul.endlessroll.main.GameLog;
import de.frajul.endlessroll.main.game.Game; import de.frajul.endlessroll.main.game.Game;
import de.frajul.endlessroll.main.game.GameState; import de.frajul.endlessroll.main.game.GameState;
import de.frajul.endlessroll.user.ToolSlotSettings; import de.frajul.endlessroll.user.ToolSlotSettings;
@ -20,17 +17,17 @@ import de.frajul.endlessroll.user.ToolSlotSettings;
/** /**
* Created by Julian on 16.01.2016. * Created by Julian on 16.01.2016.
*/ */
public class ToolButtonBar implements View.OnClickListener{ public class ToolButtonBarView implements View.OnClickListener{
private Game game; private Game game;
private List<ToolButton> buttons = new ArrayList<>(4); private List<ToolButtonView> buttons = new ArrayList<>(4);
private RelativeLayout button1; private RelativeLayout button1;
private RelativeLayout button2; private RelativeLayout button2;
private RelativeLayout button3; private RelativeLayout button3;
private RelativeLayout button4; private RelativeLayout button4;
public ToolButtonBar(Game game, ToolSlotSettings toolSlotSettings, LinearLayout layout1) { public ToolButtonBarView(Game game, ToolSlotSettings toolSlotSettings, LinearLayout layout1) {
this.game = game; this.game = game;
Context context = game.getContext(); Context context = game.getContext();
@ -42,10 +39,10 @@ public class ToolButtonBar implements View.OnClickListener{
button3.setOnClickListener(this); button3.setOnClickListener(this);
button4 = (RelativeLayout) layout1.findViewById(R.id.toolbutton_4); button4 = (RelativeLayout) layout1.findViewById(R.id.toolbutton_4);
button4.setOnClickListener(this); button4.setOnClickListener(this);
buttons.add(new ToolButton(toolSlotSettings.get(0), game, context, button1)); buttons.add(new ToolButtonView(toolSlotSettings.get(0), game, context, button1));
buttons.add(new ToolButton(toolSlotSettings.get(1), game, context, button2)); buttons.add(new ToolButtonView(toolSlotSettings.get(1), game, context, button2));
buttons.add(new ToolButton(toolSlotSettings.get(2), game, context, button3)); buttons.add(new ToolButtonView(toolSlotSettings.get(2), game, context, button3));
buttons.add(new ToolButton(toolSlotSettings.get(3), game, context, button4)); buttons.add(new ToolButtonView(toolSlotSettings.get(3), game, context, button4));
} }
public void changeToolButtonTypes(ToolSlotSettings toolSlotSettings) { public void changeToolButtonTypes(ToolSlotSettings toolSlotSettings) {
@ -62,34 +59,34 @@ public class ToolButtonBar implements View.OnClickListener{
break; break;
} }
} }
for (ToolButton button : buttons) for (ToolButtonView button : buttons)
button.setProgress(100); button.setProgress(100);
} }
public void update(float frameTime, boolean showAnimation) { public void update(float frameTime, boolean showAnimation) {
for (ToolButton button : buttons) for (ToolButtonView button : buttons)
button.update(frameTime, showAnimation); button.update(frameTime, showAnimation);
} }
public void setActive(ToolType activeType) { public void setActive(ToolType activeType) {
for (ToolButton button : buttons) for (ToolButtonView button : buttons)
button.setActive(button.getToolType() == activeType); button.setActive(button.getToolType() == activeType);
} }
private void setActive(int index) { private void setActive(int index) {
for (ToolButton button : buttons) for (ToolButtonView button : buttons)
button.setActive(buttons.indexOf(button) == index); button.setActive(buttons.indexOf(button) == index);
} }
public ToolButton getByToolType(ToolType type) { public ToolButtonView getByToolType(ToolType type) {
for (ToolButton button : buttons) for (ToolButtonView button : buttons)
if (button.getToolType() == type) if (button.getToolType() == type)
return button; return button;
return null; return null;
} }
public ToolButton getActiveButton() { public ToolButtonView getActiveButton() {
for (ToolButton button : buttons) for (ToolButtonView button : buttons)
if (button.isActive()) if (button.isActive())
return button; return button;
return null; return null;
@ -98,7 +95,7 @@ public class ToolButtonBar implements View.OnClickListener{
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (game.getGameState() == GameState.RUNNING) { if (game.getGameState() == GameState.RUNNING) {
ToolButton clickedButton = null; ToolButtonView clickedButton = null;
if (v.equals(button1) && !buttons.get(0).isLocked()) { if (v.equals(button1) && !buttons.get(0).isLocked()) {
clickedButton = buttons.get(0); clickedButton = buttons.get(0);
} else if (v.equals(button2) && !buttons.get(1).isLocked()) { } else if (v.equals(button2) && !buttons.get(1).isLocked()) {

View File

@ -18,7 +18,7 @@ import de.frajul.endlessroll.main.game.Game;
/** /**
* Created by Julian on 15.01.2016. * Created by Julian on 15.01.2016.
*/ */
public class ToolButton { public class ToolButtonView {
private Game game; private Game game;
private boolean locked; private boolean locked;
@ -33,7 +33,7 @@ public class ToolButton {
private ImageView animationView; private ImageView animationView;
private Animation scaleAnimation; private Animation scaleAnimation;
public ToolButton(ToolSlot slot, Game game, Context context, RelativeLayout layout) { public ToolButtonView(ToolSlot slot, Game game, Context context, RelativeLayout layout) {
this.context = context; this.context = context;
this.game = game; this.game = game;
this.layout = layout; this.layout = layout;

View File

@ -33,11 +33,9 @@ public class ViewManager implements View.OnClickListener {
private ImageView pauseButton; private ImageView pauseButton;
private GameOverMessage gameOverMessage; private GameOverMessage gameOverMessage;
private GoalMessage goalMessage; private GoalMessage goalMessage;
public ToolButtonBar toolButtonBar;
public ShortMenu shortMenu; public ShortMenu shortMenu;
private boolean showFps = false; private boolean showFps = false;
private boolean boostPerformance = false;
private List<BombErrorMessage> bombErrorMessages = new ArrayList<>(); private List<BombErrorMessage> bombErrorMessages = new ArrayList<>();
@ -52,9 +50,6 @@ public class ViewManager implements View.OnClickListener {
gameViewHandler.startInUiThread(new Runnable() { gameViewHandler.startInUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {
toolButtonBar = new ToolButtonBar(game,
gameActivity.getUser().getToolSlotSettings(),
(LinearLayout) layout.findViewById(R.id.game_toolbuttonbar));
shortMenu = new ShortMenu(game, gameScreen, gameActivity, shortMenu = new ShortMenu(game, gameScreen, gameActivity,
layout.findViewById(R.id.game_shortmenu)); layout.findViewById(R.id.game_shortmenu));
gameOverMessage = new GameOverMessage(game, gameScreen, gameActivity, gameOverMessage = new GameOverMessage(game, gameScreen, gameActivity,
@ -101,12 +96,10 @@ public class ViewManager implements View.OnClickListener {
game.tryToPause(); game.tryToPause();
} }
public void resetViews(final User user) { public void resetViews() {
gameViewHandler.startInUiThread(new Runnable() { gameViewHandler.startInUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {
toolButtonBar.reset(user.getToolSlotSettings());
toolButtonBar.update(0, false);
playerProgress.setText(R.string.game_playerprogress_placeholder); playerProgress.setText(R.string.game_playerprogress_placeholder);
} }
}); });
@ -151,7 +144,6 @@ public class ViewManager implements View.OnClickListener {
fpsView.setText(String.format(fpsFormat, timer.getFps())); fpsView.setText(String.format(fpsFormat, timer.getFps()));
if (gameRunning) { if (gameRunning) {
playerProgress.setText(String.format(playerProgressFormat, toMeters(playerX))); playerProgress.setText(String.format(playerProgressFormat, toMeters(playerX)));
toolButtonBar.update(timer.getFrameTimeSeconds(), !boostPerformance);
} }
} }
}); });
@ -170,7 +162,4 @@ public class ViewManager implements View.OnClickListener {
this.showFps = showFps; this.showFps = showFps;
} }
public void setBoostPerformance(boolean boostPerformance) {
this.boostPerformance = boostPerformance;
}
} }

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

View File

@ -14,14 +14,14 @@
android:layout_margin="10dp" android:layout_margin="10dp"
android:src="@drawable/guis_pausebutton"/> android:src="@drawable/guis_pausebutton"/>
<include <!--<include-->
android:id="@+id/game_toolbuttonbar" <!--android:id="@+id/game_toolbuttonbar"-->
layout="@layout/toolbuttonbar" <!--layout="@layout/toolbuttonbar"-->
android:layout_width="wrap_content" <!--android:layout_width="wrap_content"-->
android:layout_height="wrap_content" <!--android:layout_height="wrap_content"-->
android:layout_alignParentTop="true" <!--android:layout_alignParentTop="true"-->
android:layout_centerHorizontal="true" <!--android:layout_centerHorizontal="true"-->
android:layout_marginTop="3dp"/> <!--android:layout_marginTop="3dp"/>-->
<TextView <TextView
android:id="@+id/game_playerprogress" android:id="@+id/game_playerprogress"

View File

@ -110,13 +110,6 @@
android:text="@string/settings_show_fps" android:text="@string/settings_show_fps"
android:textSize="20sp"/> android:textSize="20sp"/>
<CheckBox
android:id="@+id/settings_performance_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_boost_performance"
android:textSize="20sp"/>
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>

View File

@ -76,7 +76,6 @@
<string name="credits_music_title">MUSIK</string> <string name="credits_music_title">MUSIK</string>
<string name="settings_music">Musik</string> <string name="settings_music">Musik</string>
<string name="settings_show_fps">Fps anzeigen</string> <string name="settings_show_fps">Fps anzeigen</string>
<string name="settings_boost_performance">Leistung erhöhen</string>
<string name="playershape_name_blue">Ich bin blau</string> <string name="playershape_name_blue">Ich bin blau</string>
<string name="playershape_description_blue">Warum bin ich blau?</string> <string name="playershape_description_blue">Warum bin ich blau?</string>
</resources> </resources>

View File

@ -5,7 +5,6 @@
<string name="placeholder_number" translatable="false">997.5</string> <string name="placeholder_number" translatable="false">997.5</string>
<string name="settings_show_fps">Show Fps</string> <string name="settings_show_fps">Show Fps</string>
<string name="settings_boost_performance">Boost performance</string>
<string name="game_bomb_error_message">Set the bomb on an obstacle</string> <string name="game_bomb_error_message">Set the bomb on an obstacle</string>
<string name="game_playerprogress_placeholder" translatable="false">0.0m</string> <string name="game_playerprogress_placeholder" translatable="false">0.0m</string>
<string name="game_playerprogress_format_f" translatable="false">%.1fm</string> <string name="game_playerprogress_format_f" translatable="false">%.1fm</string>