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

View File

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

View File

@ -1085,9 +1085,9 @@
<terrainTiles class="java.util.ArrayList">
<tileData x="0.58950114" width="7.1790023"/>
<tileData x="4.7252517" width="0.24849892"/>
<tileData x="6.315257" width="2.1295123"/>
<tileData x="8.258523" width="0.5570221"/>
<tileData x="19.015753" width="3.0254707"/>
<tileData x="6.315257" width="2.1295128"/>
<tileData x="8.2385235" width="0.51702213"/>
<tileData x="18.99575" width="3.0654736"/>
<tileData x="27.318325" width="8.093674"/>
</terrainTiles>
<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">
<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="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"/>
</obstacleData>
<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">
<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="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"/>
</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"/>
</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"/>
</obstacleData>
<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"/>
</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"/>
</obstacleData>
<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"/>
</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"/>
</obstacleData>
<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">
<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="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"/>
</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"/>
</obstacleData>
</obstacles>
@ -1198,5 +1198,209 @@
</stars>
<energy x="1.4666665" y="-0.45333335"/>
</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>
</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.
*/
public class Color {
public class Color3f {
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.g = g;
this.b = b;
}
public Color(Color other) {
public Color3f(Color3f other) {
this.r = other.getR();
this.g = other.getG();
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 g = this.g + (color2.g - this.g) * 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) {
@ -35,7 +35,7 @@ public class Color {
b *= a;
}
private void add(Color other) {
private void add(Color3f other) {
r += other.getR();
g += other.getG();
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;
@ -13,7 +13,7 @@ import de.frajul.endlessroll.sounds.SoundStream;
/**
* Created by Julian on 31.07.2016.
*/
public class Countdown extends Entity {
public class Countdown extends Gui {
private Game game;
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 de.frajul.endlessroll.data.Color;
import de.frajul.endlessroll.data.Color3f;
import de.frajul.endlessroll.data.Vector;
import de.frajul.endlessroll.entities.Entity;
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 {
private Color color;
private Color3f color;
private Random random;
private boolean active;
private float maxLife;
@ -101,11 +101,11 @@ public class Particle extends Entity {
return active;
}
public void setColor(Color color) {
public void setColor(Color3f color) {
this.color = color;
}
public Color getColor() {
public Color3f getColor() {
return color;
}
}

View File

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

View File

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

View File

@ -14,19 +14,19 @@ import de.frajul.endlessroll.entities.textures.TexturePack;
public enum PlayerShape {
BALL(R.string.playershape_name_ball, R.string.playershape_description_ball,
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,
R.string.playershape_description_hypno_spiral, R.drawable.playershapes_hypno_spiral,
new CollectEnergyTask(3)),
PACMAN(R.string.playershape_name_pacman, R.string.playershape_description_pacman,
R.drawable.playershapes_pacman, new CompleteWorldTask(1)),
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)),
CLOCK(R.string.playershape_name_clock, R.string.playershape_description_clock,
R.drawable.playershapes_clock, new CollectStarTask(15)),
SUN(R.string.playershape_name_sun, R.string.playershape_description_sun,
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,
R.drawable.jury_playershapes_ball_omg_im_blue, new CompleteWorldTask(2));

View File

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

View File

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

View File

@ -30,7 +30,6 @@ public class DataStorageHandler {
private final String USER_PLAYER_SHAPE = "PlayerShape";
private final String TOOL_SHOP_TUTORIAL_FINISHED = "ToolShopTutorialFinished";
private final String SHOW_FPS = "ShowFps";
private final String PERFORMANCE_BOOST = "PerformanceBoost";
private SharedPreferences preferences;
private MyDatabase database;
@ -50,16 +49,6 @@ public class DataStorageHandler {
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() {
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.Star;
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.ParticleSystem;
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.rendering.Rendering;
import de.frajul.endlessroll.sqlDatabase.MyDatabase;
import de.frajul.endlessroll.entities.Countdown;
import de.frajul.endlessroll.views.ToolButton;
import de.frajul.endlessroll.views.ToolButtonBar;
import de.frajul.endlessroll.entities.guis.Countdown;
import de.frajul.endlessroll.views.ToolButtonView;
import de.frajul.endlessroll.views.ToolButtonBarView;
import de.frajul.endlessroll.views.ViewManager;
/**
@ -46,6 +48,7 @@ public class Game extends Rendering<GameScene> {
private ParticleSystem particleSystem;
private Firework firework;
private Countdown countdown;
private ToolButtonBar toolButtonBar;
private ToolType currentTool;
private Player player;
@ -77,6 +80,8 @@ public class Game extends Rendering<GameScene> {
scene = new GameScene(gameActivity, texturePack, particleSystem);
firework = new Firework(particleSystem.firework, scene.getCamera());
countdown = new Countdown(this, gameActivity.getSoundManager(), texturePack);
toolButtonBar = new ToolButtonBar(texturePack, this, gameActivity.getUser().getToolSlotSettings());
scene.getGuis().addAll(toolButtonBar.toGuiList());
scene.getGuis().add(countdown);
if (level != null)
startGame(levelPack, level);
@ -107,11 +112,10 @@ public class Game extends Rendering<GameScene> {
scene.loadLevel(level, levelPack.getWorld(),
gameActivity.getUser().getCurrentPlayerShape());
player = scene.getPlayer();
viewManager.resetViews(gameActivity.getUser());
setCurrentTool(viewManager.toolButtonBar.getActiveButton().getToolType(), true);
viewManager.resetViews();
toolButtonBar.reset(gameActivity.getUser().getToolSlotSettings());
setCurrentTool(toolButtonBar.getActiveButton().getToolType(), true);
viewManager.setShowFps(gameActivity.getDataStorageHandler().readIsShowFps());
viewManager
.setBoostPerformance(gameActivity.getDataStorageHandler().readIsPerformanceBoost());
countdown.start();
}
} catch (Exception e) {
@ -142,6 +146,8 @@ public class Game extends Rendering<GameScene> {
viewManager.update(gameState == GameState.RUNNING, timer, playerProgress);
switch (gameState) {
case RUNNING:
toolButtonBar.update(timer.getFrameTimeSeconds());
if (player.getPosition().y < -2f) {
onGameOver(false);
return;
@ -170,9 +176,8 @@ public class Game extends Rendering<GameScene> {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (gameState == GameState.RUNNING) {
ToolButtonBar bar = viewManager.toolButtonBar;
ToolButton button = bar.getByToolType(currentTool);
if (button != null && button.finishedLoading() && button.getToolType() != null) {
ToolButton currentToolButton = toolButtonBar.getActiveButton();
if (currentToolButton != null && currentToolButton.hasFinishedLoading() && currentToolButton.getToolType() != null) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (currentTool == ToolType.BOMB) {
try {
@ -183,7 +188,7 @@ public class Game extends Rendering<GameScene> {
viewManager.showBombErrorMessage(event.getX(), event.getY());
return true;
} else {
button.setProgress(0);
currentToolButton.setProgress(0);
scene.getBombSelected().set(false);
Tool tool = addTool(event.getX(), event.getY());
if (tool != null && tool instanceof Bomb)
@ -195,7 +200,7 @@ public class Game extends Rendering<GameScene> {
return true;
}
}
button.setProgress(0);
currentToolButton.setProgress(0);
addTool(event.getX(), event.getY());
}
}
@ -205,15 +210,14 @@ public class Game extends Rendering<GameScene> {
}
public void resetViews() {
viewManager.resetViews(gameActivity.getUser());
viewManager.resetViews();
toolButtonBar.reset(gameActivity.getUser().getToolSlotSettings());
}
public void continueGame() {
viewManager.hideShortMenu();
gameState = GameState.COUNTDOWN;
viewManager.setShowFps(gameActivity.getDataStorageHandler().readIsShowFps());
viewManager
.setBoostPerformance(gameActivity.getDataStorageHandler().readIsPerformanceBoost());
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.Player;
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.ParticleSystem;
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<Tool> tools = Collections.synchronizedList(new ArrayList<Tool>());
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) {
this.gameActivity = gameActivity;
@ -193,7 +194,7 @@ public abstract class Scene {
return collectables;
}
public synchronized List<Entity> getGuis() {
public synchronized List<Gui> getGuis() {
return guis;
}

View File

@ -2,21 +2,29 @@ package de.frajul.endlessroll.main.game;
import de.frajul.endlessroll.data.Vector;
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.shapes.PlayerShape;
import de.frajul.endlessroll.entities.textures.TexturePack;
import de.frajul.endlessroll.levels.worlds.World;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.user.ToolSlotSettings;
public class TestScreenScene extends Scene {
public TestScreenScene(GameActivity gameActivity, TexturePack texturePack, ParticleSystem particleSystem) {
super(gameActivity, texturePack, particleSystem);
// terrain.createEndless(World.GRASSLANDS, 0.6f);
// background.changeTextures(World.ICY_MOUNTAINS.getBackgroundTexture());
//
// player.init(PlayerShape.BALL, 0.6f, 0.5f, 0.5f, particleSystem);
// uncategorizedEntities.add(player);
uncategorizedEntities.add(new Entity(World.GRASSLANDS.getBackgroundTextures().get(0), new Vector(), 1, 1));
// terrain.createEndless(World.GRASSLANDS, 0.6f);
// background.changeTextures(World.ICY_MOUNTAINS.getBackgroundTexture());
//
// player.init(PlayerShape.BALL, 0.6f, 0.5f, 0.5f, particleSystem);
// uncategorizedEntities.add(player);
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 soundToggle;
private CheckBox fpsCheckbox;
private CheckBox performanceCheckbox;
private Button creditsButton;
private Button resetButton;
@ -45,8 +44,6 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
soundToggle.setOnClickListener(this);
fpsCheckbox = (CheckBox) layout.findViewById(R.id.settings_fps_checkbox);
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.setOnClickListener(this);
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());
soundToggle.setChecked(!gameActivity.getSoundManager().isSoundsMuted());
fpsCheckbox.setChecked(gameActivity.getDataStorageHandler().readIsShowFps());
performanceCheckbox
.setChecked(gameActivity.getDataStorageHandler().readIsPerformanceBoost());
resetButton.setEnabled(super.caller != ScreenType.GAME);
}
@ -84,7 +79,6 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
gameActivity.getDataStorageHandler()
.writeMusicMuted(gameActivity.getSoundManager().isMusicMuted());
gameActivity.getDataStorageHandler().writeShowFps(fpsCheckbox.isChecked());
gameActivity.getDataStorageHandler().writePerformanceBoost(performanceCheckbox.isChecked());
flipToCaller();
}

View File

@ -12,6 +12,8 @@ import javax.microedition.khronos.opengles.GL10;
import de.frajul.endlessroll.entities.BackgroundLayer;
import de.frajul.endlessroll.entities.Entity;
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.tileLists.Tile;
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.loadMVPMatrix(matrixCreator);
synchronized (guis) {
for (Entity gui : guis)
for (Gui gui : guis)
renderGui(gl, gui);
}
guiShader.stop();
}
private void renderGui(GL10 gl, Entity gui) {
private void renderGui(GL10 gl, Gui gui) {
if (!gui.isVisible())
return;
gl.glActiveTexture(GL10.GL_TEXTURE0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, gui.getTexture().getId());
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();
}

View File

@ -3,9 +3,8 @@ package de.frajul.endlessroll.rendering.shader;
import android.content.Context;
import android.opengl.GLES20;
import de.frajul.endlessroll.data.Color4f;
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;
/**
@ -15,15 +14,23 @@ public class GuiShader extends ShaderProgram {
private int location_mvpMatrix;
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 {
super(context, "shader/guiVertexShader.glsl", "shader/simpleFragmentShader.glsl");
super(context, "shader/guiVertexShader.glsl", "shader/guiFragmentShader.glsl");
}
@Override
protected void loadUniformLocations() {
location_mvpMatrix = super.getUniformLocation("mvpMatrix");
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) {
@ -36,4 +43,19 @@ public class GuiShader extends ShaderProgram {
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.opengl.GLES20;
import de.frajul.endlessroll.data.Color;
import de.frajul.endlessroll.data.Color3f;
import de.frajul.endlessroll.entities.Entity;
import de.frajul.endlessroll.main.game.Camera;
import de.frajul.endlessroll.rendering.MatrixCreator;
@ -44,7 +44,7 @@ public class ParticleShader extends ShaderProgram {
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());
}

View File

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

View File

@ -33,11 +33,9 @@ public class ViewManager implements View.OnClickListener {
private ImageView pauseButton;
private GameOverMessage gameOverMessage;
private GoalMessage goalMessage;
public ToolButtonBar toolButtonBar;
public ShortMenu shortMenu;
private boolean showFps = false;
private boolean boostPerformance = false;
private List<BombErrorMessage> bombErrorMessages = new ArrayList<>();
@ -52,9 +50,6 @@ public class ViewManager implements View.OnClickListener {
gameViewHandler.startInUiThread(new Runnable() {
@Override
public void run() {
toolButtonBar = new ToolButtonBar(game,
gameActivity.getUser().getToolSlotSettings(),
(LinearLayout) layout.findViewById(R.id.game_toolbuttonbar));
shortMenu = new ShortMenu(game, gameScreen, gameActivity,
layout.findViewById(R.id.game_shortmenu));
gameOverMessage = new GameOverMessage(game, gameScreen, gameActivity,
@ -101,12 +96,10 @@ public class ViewManager implements View.OnClickListener {
game.tryToPause();
}
public void resetViews(final User user) {
public void resetViews() {
gameViewHandler.startInUiThread(new Runnable() {
@Override
public void run() {
toolButtonBar.reset(user.getToolSlotSettings());
toolButtonBar.update(0, false);
playerProgress.setText(R.string.game_playerprogress_placeholder);
}
});
@ -151,7 +144,6 @@ public class ViewManager implements View.OnClickListener {
fpsView.setText(String.format(fpsFormat, timer.getFps()));
if (gameRunning) {
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;
}
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:src="@drawable/guis_pausebutton"/>
<include
android:id="@+id/game_toolbuttonbar"
layout="@layout/toolbuttonbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="3dp"/>
<!--<include-->
<!--android:id="@+id/game_toolbuttonbar"-->
<!--layout="@layout/toolbuttonbar"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_alignParentTop="true"-->
<!--android:layout_centerHorizontal="true"-->
<!--android:layout_marginTop="3dp"/>-->
<TextView
android:id="@+id/game_playerprogress"

View File

@ -110,13 +110,6 @@
android:text="@string/settings_show_fps"
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>
</RelativeLayout>

View File

@ -76,7 +76,6 @@
<string name="credits_music_title">MUSIK</string>
<string name="settings_music">Musik</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_description_blue">Warum bin ich blau?</string>
</resources>

View File

@ -5,7 +5,6 @@
<string name="placeholder_number" translatable="false">997.5</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_playerprogress_placeholder" translatable="false">0.0m</string>
<string name="game_playerprogress_format_f" translatable="false">%.1fm</string>