You've already forked AM2R-Community-Updates
mirror of
https://github.com/izzy2lost/AM2R-Community-Updates.git
synced 2026-03-10 11:23:35 -07:00
1263 lines
41 KiB
XML
1263 lines
41 KiB
XML
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
|
<object>
|
|
<spriteName><undefined></spriteName>
|
|
<solid>0</solid>
|
|
<visible>-1</visible>
|
|
<depth>-5000002</depth>
|
|
<persistent>-1</persistent>
|
|
<parentName><undefined></parentName>
|
|
<maskName><undefined></maskName>
|
|
<events>
|
|
<event eventtype="0" enumb="0">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Initialize.
|
|
|
|
scale = oControl.touch_scale;
|
|
|
|
device_mouse_dbclick_enable(false);
|
|
|
|
device_screen_size = sqrt(power(display_get_width() / display_get_dpi_x(), 2) + power(display_get_height() / display_get_dpi_y(), 2));
|
|
draw = 1;
|
|
alpha = 0;
|
|
st_radius = display_get_height() / oControl.touch_scale; // default 4, smaller is bigger
|
|
st_offset = st_radius + 25;
|
|
gui_x[0] = st_offset;
|
|
gui_y[0] = display_get_height() - st_offset;
|
|
gui_x[1] = display_get_width() - st_offset;
|
|
gui_y[1] = display_get_height() - st_offset;
|
|
stick_x[0] = gui_x[0];
|
|
stick_y[0] = gui_y[0];
|
|
stick_x[1] = gui_x[1];
|
|
stick_y[1] = gui_y[1];
|
|
|
|
st_pressed[0] = -1;
|
|
st_pressed[1] = -1;
|
|
|
|
jump_pressed[0] = -1;
|
|
jump_pressed[1] = -1;
|
|
|
|
fire_pressed[0] = -1;
|
|
fire_pressed[1] = -1;
|
|
|
|
aimupleft_pressed[0] = -1;
|
|
aimupleft_pressed[1] = -1;
|
|
|
|
aimdownleft_pressed[0] = -1;
|
|
aimdownleft_pressed[1] = -1;
|
|
|
|
aimupright_pressed[0] = -1;
|
|
aimupright_pressed[1] = -1;
|
|
|
|
aimdownright_pressed[0] = -1;
|
|
aimdownright_pressed[1] = -1;
|
|
|
|
missile_pressed[0] = -1;
|
|
missile_pressed[1] = -1;
|
|
|
|
morph_pressed[0] = -1;
|
|
morph_pressed[1] = -1;
|
|
|
|
pause_pressed[0] = -1;
|
|
pause_pressed[1] = -1;
|
|
|
|
up_pressed[0] = -1;
|
|
up_pressed[1] = -1;
|
|
|
|
down_pressed[0] = -1;
|
|
down_pressed[1] = -1;
|
|
|
|
right_pressed[0] = -1;
|
|
right_pressed[1] = -1;
|
|
|
|
left_pressed[0] = -1;
|
|
left_pressed[1] = -1;
|
|
|
|
vdir = 0;
|
|
vdist = 0;
|
|
rdist = 0;
|
|
mx = 0;
|
|
my = 0;
|
|
joyx = 0;
|
|
joyy = 0;
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Button calulations.
|
|
|
|
gui_x[0] = st_offset;
|
|
gui_y[0] = display_get_gui_height() - st_offset;
|
|
gui_x[1] = display_get_gui_width() - st_offset;
|
|
gui_y[1] = display_get_gui_height() - st_offset;
|
|
btn_width = display_get_height() / oControl.touch_scale; // default 4, smaller is bigger
|
|
btn_height = display_get_height() / oControl.touch_scale;
|
|
btn_y = display_get_gui_height() - btn_height - 25;
|
|
btn_x = display_get_gui_width() - 25;
|
|
btn_jump_x = btn_x - btn_width * 2;
|
|
btn_fire_x = btn_x - btn_width;
|
|
btn_missile_x = btn_jump_x;
|
|
btn_missile_y = btn_y - btn_height;
|
|
btn_morph_x = btn_fire_x;
|
|
btn_morph_y = btn_y - btn_height;
|
|
btn_pause_x = mean(gui_x[0] + st_radius, btn_jump_x);
|
|
btn_pause_y = gui_y[1] + st_radius;
|
|
|
|
buttonScale = ((150*btn_width)/300)/150; // ((150*btn_width)/300)/150
|
|
pauseScale = ((50*btn_height/3)/85)/50;
|
|
|
|
btn_jump[0] = btn_jump_x;
|
|
btn_jump[1] = btn_y+10;
|
|
btn_jump[2] = btn_jump_x + btn_width-10;
|
|
btn_jump[3] = btn_y + btn_height;
|
|
|
|
btn_fire[0] = btn_fire_x+10;
|
|
btn_fire[1] = btn_y + 10;
|
|
btn_fire[2] = btn_fire_x + btn_width;
|
|
btn_fire[3] = btn_y + btn_height;
|
|
|
|
btn_missile[0] = btn_missile_x;
|
|
btn_missile[1] = btn_missile_y;
|
|
btn_missile[2] = btn_missile_x + btn_width - 10;
|
|
btn_missile[3] = btn_missile_y + btn_height - 10;
|
|
|
|
btn_morph[0] = btn_morph_x + 10;
|
|
btn_morph[1] = btn_morph_y;
|
|
btn_morph[2] = btn_morph_x + btn_width;
|
|
btn_morph[3] = btn_morph_y + btn_height - 10;
|
|
|
|
btn_pause[0] = btn_pause_x - btn_width/4;
|
|
btn_pause[1] = btn_pause_y - btn_height/3;
|
|
btn_pause[2] = btn_pause_x + btn_width/4;
|
|
btn_pause[3] = btn_pause_y;
|
|
|
|
btn_pausearrow_y = btn_pause_y - btn_height/3/2;
|
|
|
|
// Up Left
|
|
btn_aimul[0] = gui_x[0] - st_radius;
|
|
btn_aimul[1] = gui_y[0] - st_radius;
|
|
btn_aimul[2] = (gui_x[0] - st_radius) + st_radius/2;
|
|
btn_aimul[3] = (gui_y[0] - st_radius);
|
|
btn_aimul[4] = (gui_x[0] - st_radius);
|
|
btn_aimul[5] = (gui_y[0] - st_radius) + st_radius/2;
|
|
|
|
// Down Left
|
|
btn_aimdl[0] = gui_x[0] - st_radius;
|
|
btn_aimdl[1] = gui_y[0] + st_radius;
|
|
btn_aimdl[2] = (gui_x[0] - st_radius) + st_radius/2;
|
|
btn_aimdl[3] = (gui_y[0] + st_radius);
|
|
btn_aimdl[4] = (gui_x[0] - st_radius);
|
|
btn_aimdl[5] = (gui_y[0] + st_radius) - st_radius/2;
|
|
|
|
// Up Right
|
|
btn_aimur[0] = gui_x[0] + st_radius;
|
|
btn_aimur[1] = gui_y[0] - st_radius;
|
|
btn_aimur[2] = (gui_x[0] + st_radius) - st_radius/2;
|
|
btn_aimur[3] = (gui_y[0] - st_radius);
|
|
btn_aimur[4] = (gui_x[0] + st_radius);
|
|
btn_aimur[5] = (gui_y[0] - st_radius) + st_radius/2;
|
|
|
|
// Down Right
|
|
btn_aimdr[0] = gui_x[0] + st_radius;
|
|
btn_aimdr[1] = gui_y[0] + st_radius;
|
|
btn_aimdr[2] = (gui_x[0] + st_radius) - st_radius/2;
|
|
btn_aimdr[3] = (gui_y[0] + st_radius);
|
|
btn_aimdr[4] = (gui_x[0] + st_radius);
|
|
btn_aimdr[5] = (gui_y[0] + st_radius) - st_radius/2;
|
|
|
|
// Up Button
|
|
btn_aimu[0] = gui_x[0];
|
|
btn_aimu[1] = gui_y[0] - st_radius/4;
|
|
btn_aimu[2] = gui_x[0] - st_radius;
|
|
btn_aimu[3] = gui_y[0] - st_radius;
|
|
btn_aimu[4] = gui_x[0] + st_radius;
|
|
btn_aimu[5] = gui_y[0] - st_radius;
|
|
|
|
// Down Button
|
|
btn_aimd[0] = gui_x[0];
|
|
btn_aimd[1] = gui_y[0] + st_radius/4;
|
|
btn_aimd[2] = gui_x[0] - st_radius;
|
|
btn_aimd[3] = gui_y[0] + st_radius;
|
|
btn_aimd[4] = gui_x[0] + st_radius;
|
|
btn_aimd[5] = gui_y[0] + st_radius;
|
|
|
|
// Right Button
|
|
btn_aimr[0] = gui_x[0] + st_radius/4;
|
|
btn_aimr[1] = gui_y[0];
|
|
btn_aimr[2] = gui_x[0] + st_radius;
|
|
btn_aimr[3] = gui_y[0] + st_radius;
|
|
btn_aimr[4] = gui_x[0] + st_radius;
|
|
btn_aimr[5] = gui_y[0] - st_radius;
|
|
|
|
// Left Button
|
|
btn_aiml[0] = gui_x[0] - st_radius/4;
|
|
btn_aiml[1] = gui_y[0];
|
|
btn_aiml[2] = gui_x[0] - st_radius;
|
|
btn_aiml[3] = gui_y[0] + st_radius;
|
|
btn_aiml[4] = gui_x[0] - st_radius;
|
|
btn_aiml[5] = gui_y[0] - st_radius;
|
|
|
|
// Up Arrow
|
|
btn_uparrow[0] = gui_x[0];
|
|
btn_uparrow[1] = gui_y[0] - st_radius/1.25;
|
|
btn_uparrow[2] = gui_x[0] + st_radius/4;
|
|
btn_uparrow[3] = gui_y[0] - st_radius/2;
|
|
btn_uparrow[4] = gui_x[0] - st_radius/4;
|
|
btn_uparrow[5] = gui_y[0] - st_radius/2;
|
|
|
|
// Down Arrow
|
|
btn_downarrow[0] = gui_x[0];
|
|
btn_downarrow[1] = gui_y[0] + st_radius/1.25;
|
|
btn_downarrow[2] = gui_x[0] + st_radius/4;
|
|
btn_downarrow[3] = gui_y[0] + st_radius/2;
|
|
btn_downarrow[4] = gui_x[0] - st_radius/4;
|
|
btn_downarrow[5] = gui_y[0] + st_radius/2;
|
|
|
|
// Left Arrow
|
|
btn_leftarrow[0] = gui_x[0] - st_radius/1.25;
|
|
btn_leftarrow[1] = gui_y[0];
|
|
btn_leftarrow[2] = gui_x[0] - st_radius/2;
|
|
btn_leftarrow[3] = gui_y[0] - st_radius/4;
|
|
btn_leftarrow[4] = gui_x[0] - st_radius/2;
|
|
btn_leftarrow[5] = gui_y[0] + st_radius/4;
|
|
|
|
// Right Arrow
|
|
btn_rightarrow[0] = gui_x[0] + st_radius/1.25;
|
|
btn_rightarrow[1] = gui_y[0];
|
|
btn_rightarrow[2] = gui_x[0] + st_radius/2;
|
|
btn_rightarrow[3] = gui_y[0] - st_radius/4;
|
|
btn_rightarrow[4] = gui_x[0] + st_radius/2;
|
|
btn_rightarrow[5] = gui_y[0] + st_radius/4;
|
|
|
|
texture_set_interpolation(true);
|
|
|
|
var surf = -1,
|
|
spr;
|
|
|
|
if (!surface_exists(surf)) surf = surface_create(300*buttonScale, 300*buttonScale);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonX, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, buttonScale, buttonScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonX, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonS, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, buttonScale, buttonScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonS, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonC, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, buttonScale, buttonScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonC, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonT, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, buttonScale, buttonScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonT, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_free(surf);
|
|
|
|
if (!surface_exists(surf)) surf = surface_create(85*pauseScale, 85*pauseScale);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonPause, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, pauseScale, pauseScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonPause, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_free(surf);
|
|
|
|
texture_set_interpolation(false);
|
|
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="1" enumb="0">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Reset options.
|
|
|
|
/*global.opmslstyle = mis;
|
|
global.opaimstyle = aim;
|
|
global.opspdstyle = spd;
|
|
|
|
io_clear();
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="2" enumb="0">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Fade on-screen controls.
|
|
if (alpha > 0) alpha -= 0.01;
|
|
alarm[0] = 1;
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="3" enumb="0">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Touch input.
|
|
|
|
if(global.joydetected == 1 && global.ingame) exit;
|
|
|
|
// Touch UI visibility
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
alpha = 0.5;
|
|
alarm[0] = 390;
|
|
}
|
|
}
|
|
|
|
|
|
var tx, ty;
|
|
joyx = 0;
|
|
joyy = 0;
|
|
stick_x[0] = gui_x[0];
|
|
stick_y[0] = gui_y[0];
|
|
|
|
if (os_is_paused()) mouse_clear(mb_any);
|
|
|
|
// Joystick
|
|
if (st_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_distance(tx, ty, gui_x[0], gui_y[0]) < st_radius) {
|
|
if (st_pressed[1] != i) {
|
|
st_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (device_mouse_check_button(st_pressed[0], 1)) {
|
|
mx = scr_mouse_gui_x(device_mouse_raw_x(st_pressed[0]));
|
|
my = scr_mouse_gui_y(device_mouse_raw_y(st_pressed[0]));
|
|
vdist = min(st_radius, point_distance(mx, my, gui_x[0], gui_y[0]));
|
|
rdist = vdist / st_radius;
|
|
vdir = point_direction(gui_x[0], gui_y[0], mx, my);
|
|
stick_x[0] = gui_x[0] + lengthdir_x(vdist, vdir);
|
|
stick_y[0] = gui_y[0] + lengthdir_y(vdist, vdir);
|
|
joyx = lengthdir_x(rdist, vdir);
|
|
joyy = lengthdir_y(rdist, vdir);
|
|
} else st_pressed[0] = -1;
|
|
|
|
|
|
// Jump
|
|
if (jump_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_rectangle(tx, ty, btn_jump[0], btn_jump[1], btn_jump[2], btn_jump[3])) {
|
|
if (jump_pressed[1] != i) {
|
|
jump_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(jump_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(jump_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(jump_pressed[0]));
|
|
if (!point_in_rectangle(tx, ty, btn_jump[0], btn_jump[1], btn_jump[2], btn_jump[3])) {
|
|
jump_pressed[0] = -1;
|
|
}
|
|
} else jump_pressed[0] = -1;
|
|
}
|
|
|
|
|
|
// Fire
|
|
if (fire_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_rectangle(tx, ty, btn_fire[0], btn_fire[1], btn_fire[2], btn_fire[3])) {
|
|
if (fire_pressed[1] != i) {
|
|
fire_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(fire_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(fire_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(fire_pressed[0]));
|
|
if (!point_in_rectangle(tx, ty, btn_fire[0], btn_fire[1], btn_fire[2], btn_fire[3])) {
|
|
fire_pressed[0] = -1;
|
|
}
|
|
} else fire_pressed[0] = -1;
|
|
}
|
|
|
|
|
|
// Missile
|
|
if (missile_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_rectangle(tx, ty, btn_missile[0], btn_missile[1], btn_missile[2], btn_missile[3])) {
|
|
if (missile_pressed[1] != i) {
|
|
missile_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(missile_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(missile_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(missile_pressed[0]));
|
|
if (!point_in_rectangle(tx, ty, btn_missile[0], btn_missile[1], btn_missile[2], btn_missile[3])) {
|
|
missile_pressed[0] = -1;
|
|
}
|
|
} else missile_pressed[0] = -1;
|
|
}
|
|
|
|
|
|
// Morph
|
|
if (morph_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_rectangle(tx, ty, btn_morph[0], btn_morph[1], btn_morph[2], btn_morph[3])) {
|
|
if (morph_pressed[1] != i) {
|
|
morph_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(morph_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(morph_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(morph_pressed[0]));
|
|
if (!point_in_rectangle(tx, ty, btn_morph[0], btn_morph[1], btn_morph[2], btn_morph[3])) {
|
|
morph_pressed[0] = -1;
|
|
}
|
|
} else morph_pressed[0] = -1;
|
|
}
|
|
|
|
|
|
// Pause
|
|
if (pause_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_rectangle(tx, ty, btn_pause[0], btn_pause[1], btn_pause[2], btn_pause[3])) {
|
|
if (pause_pressed[1] != i) {
|
|
pause_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(pause_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(pause_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(pause_pressed[0]));
|
|
if (!point_in_rectangle(tx, ty, btn_pause[0], btn_pause[1], btn_pause[2], btn_pause[3])) {
|
|
pause_pressed[0] = -1;
|
|
}
|
|
} else pause_pressed[0] = -1;
|
|
}
|
|
|
|
|
|
// Aim up left
|
|
if (aimupleft_pressed[0] == -1 && aimdownleft_pressed[0] == -1 && aimupright_pressed[0] == -1 && aimdownright_pressed[0] == -1 && st_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_triangle(tx, ty, btn_aimul[0], btn_aimul[1], btn_aimul[2], btn_aimul[3], btn_aimul[4], btn_aimul[5])) {
|
|
if (aimupleft_pressed[1] != i) {
|
|
aimupleft_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!device_mouse_check_button(aimupleft_pressed[0], 1) || st_pressed[0] != -1) aimupleft_pressed[0] = -1;
|
|
|
|
|
|
// Aim down left
|
|
if (aimupleft_pressed[0] == -1 && aimdownleft_pressed[0] == -1 && aimupright_pressed[0] == -1 && aimdownright_pressed[0] == -1 && st_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_triangle(tx, ty, btn_aimdl[0], btn_aimdl[1], btn_aimdl[2], btn_aimdl[3], btn_aimdl[4], btn_aimdl[5])) {
|
|
if (aimdownleft_pressed[1] != i) {
|
|
aimdownleft_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!device_mouse_check_button(aimdownleft_pressed[0], 1) || st_pressed[0] != -1) aimdownleft_pressed[0] = -1;
|
|
|
|
|
|
// Aim up right
|
|
if (aimupleft_pressed[0] == -1 && aimdownleft_pressed[0] == -1 && aimupright_pressed[0] == -1 && aimdownright_pressed[0] == -1 && st_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_triangle(tx, ty, btn_aimur[0], btn_aimur[1], btn_aimur[2], btn_aimur[3], btn_aimur[4], btn_aimur[5])) {
|
|
if (aimupright_pressed[1] != i) {
|
|
aimupright_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!device_mouse_check_button(aimupright_pressed[0], 1) || st_pressed[0] != -1) aimupright_pressed[0] = -1;
|
|
|
|
|
|
// Aim down right
|
|
if (aimupleft_pressed[0] == -1 && aimdownleft_pressed[0] == -1 && aimupright_pressed[0] == -1 && aimdownright_pressed[0] == -1 && st_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_triangle(tx, ty, btn_aimdr[0], btn_aimdr[1], btn_aimdr[2], btn_aimdr[3], btn_aimdr[4], btn_aimdr[5])) {
|
|
if (aimdownright_pressed[1] != i) {
|
|
aimdownright_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!device_mouse_check_button(aimdownright_pressed[0], 1) || st_pressed[0] != -1) aimdownright_pressed[0] = -1;
|
|
|
|
|
|
// Aim up
|
|
if (up_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_triangle(tx, ty, btn_aimu[0], btn_aimu[1], btn_aimu[2], btn_aimu[3], btn_aimu[4], btn_aimu[5])) {
|
|
if (up_pressed[1] != i) {
|
|
up_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(up_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(up_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(up_pressed[0]));
|
|
if (!point_in_triangle(tx, ty, btn_aimu[0], btn_aimu[1], btn_aimu[2], btn_aimu[3], btn_aimu[4], btn_aimu[5])) {
|
|
up_pressed[0] = -1;
|
|
}
|
|
} else up_pressed[0] = -1;
|
|
}
|
|
|
|
|
|
// Aim down
|
|
if (down_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_triangle(tx, ty, btn_aimd[0], btn_aimd[1], btn_aimd[2], btn_aimd[3], btn_aimd[4], btn_aimd[5])) {
|
|
if (down_pressed[1] != i) {
|
|
down_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(down_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(down_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(down_pressed[0]));
|
|
if (!point_in_triangle(tx, ty, btn_aimd[0], btn_aimd[1], btn_aimd[2], btn_aimd[3], btn_aimd[4], btn_aimd[5])) {
|
|
down_pressed[0] = -1;
|
|
}
|
|
} else down_pressed[0] = -1;
|
|
}
|
|
|
|
if(!global.ingame) {
|
|
// Menu right
|
|
if (right_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_triangle(tx, ty, btn_aimr[0], btn_aimr[1], btn_aimr[2], btn_aimr[3], btn_aimr[4], btn_aimr[5])) {
|
|
if (right_pressed[1] != i) {
|
|
right_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(right_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(right_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(right_pressed[0]));
|
|
if (!point_in_triangle(tx, ty, btn_aimr[0], btn_aimr[1], btn_aimr[2], btn_aimr[3], btn_aimr[4], btn_aimr[5])) {
|
|
right_pressed[0] = -1;
|
|
}
|
|
} else right_pressed[0] = -1;
|
|
}
|
|
|
|
// Menu left
|
|
if (left_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_triangle(tx, ty, btn_aiml[0], btn_aiml[1], btn_aiml[2], btn_aiml[3], btn_aiml[4], btn_aiml[5])) {
|
|
if (left_pressed[1] != i) {
|
|
left_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(left_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(left_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(left_pressed[0]));
|
|
if (!point_in_triangle(tx, ty, btn_aiml[0], btn_aiml[1], btn_aiml[2], btn_aiml[3], btn_aiml[4], btn_aiml[5])) {
|
|
left_pressed[0] = -1;
|
|
}
|
|
} else left_pressed[0] = -1;
|
|
}
|
|
}
|
|
else {
|
|
right_pressed[0] = -1;
|
|
right_pressed[1] = -1;
|
|
|
|
left_pressed[0] = -1;
|
|
left_pressed[1] = -1;
|
|
}
|
|
|
|
if (global.gamestarted == 0 || room == gameintroroom || room == rm_credits) {
|
|
// Touch to Start
|
|
if (pause_pressed[0] == -1) {
|
|
for (i = 0; i < 5; i += 1) {
|
|
if (device_mouse_check_button(i, 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(i));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(i));
|
|
if (point_in_rectangle(tx, ty, 0, 0, display_get_width(), display_get_height())) {
|
|
if (pause_pressed[1] != i) {
|
|
pause_pressed[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (device_mouse_check_button(pause_pressed[0], 1)) {
|
|
tx = scr_mouse_gui_x(device_mouse_raw_x(pause_pressed[0]));
|
|
ty = scr_mouse_gui_y(device_mouse_raw_y(pause_pressed[0]));
|
|
if (!point_in_rectangle(tx, ty, 0, 0, display_get_width(), display_get_width())) {
|
|
pause_pressed[0] = -1;
|
|
}
|
|
} else pause_pressed[0] = -1;
|
|
}
|
|
}
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="7" enumb="10">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Prep
|
|
/*
|
|
if (surface_exists(surf)) {
|
|
surface_free(surf)
|
|
}
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Initialize.
|
|
|
|
scale = oControl.touch_scale;
|
|
|
|
device_mouse_dbclick_enable(false);
|
|
|
|
device_screen_size = sqrt(power(display_get_width() / display_get_dpi_x(), 2) + power(display_get_height() / display_get_dpi_y(), 2));
|
|
draw = 1;
|
|
//alpha = 0;
|
|
st_radius = display_get_height() / oControl.touch_scale; // default 4, smaller is bigger
|
|
st_offset = st_radius + 25;
|
|
gui_x[0] = st_offset;
|
|
gui_y[0] = display_get_height() - st_offset;
|
|
gui_x[1] = display_get_width() - st_offset;
|
|
gui_y[1] = display_get_height() - st_offset;
|
|
stick_x[0] = gui_x[0];
|
|
stick_y[0] = gui_y[0];
|
|
stick_x[1] = gui_x[1];
|
|
stick_y[1] = gui_y[1];
|
|
/*
|
|
st_pressed[0] = -1;
|
|
st_pressed[1] = -1;
|
|
|
|
jump_pressed[0] = -1;
|
|
jump_pressed[1] = -1;
|
|
|
|
fire_pressed[0] = -1;
|
|
fire_pressed[1] = -1;
|
|
|
|
aimupleft_pressed[0] = -1;
|
|
aimupleft_pressed[1] = -1;
|
|
|
|
aimdownleft_pressed[0] = -1;
|
|
aimdownleft_pressed[1] = -1;
|
|
|
|
aimupright_pressed[0] = -1;
|
|
aimupright_pressed[1] = -1;
|
|
|
|
aimdownright_pressed[0] = -1;
|
|
aimdownright_pressed[1] = -1;
|
|
|
|
missile_pressed[0] = -1;
|
|
missile_pressed[1] = -1;
|
|
|
|
morph_pressed[0] = -1;
|
|
morph_pressed[1] = -1;
|
|
|
|
pause_pressed[0] = -1;
|
|
pause_pressed[1] = -1;
|
|
|
|
up_pressed[0] = -1;
|
|
up_pressed[1] = -1;
|
|
|
|
down_pressed[0] = -1;
|
|
down_pressed[1] = -1;
|
|
|
|
right_pressed[0] = -1;
|
|
right_pressed[1] = -1;
|
|
|
|
left_pressed[0] = -1;
|
|
left_pressed[1] = -1;
|
|
|
|
vdir = 0;
|
|
vdist = 0;
|
|
rdist = 0;
|
|
mx = 0;
|
|
my = 0;
|
|
joyx = 0;
|
|
joyy = 0;
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Button calulations.
|
|
|
|
gui_x[0] = st_offset;
|
|
gui_y[0] = display_get_gui_height() - st_offset;
|
|
gui_x[1] = display_get_gui_width() - st_offset;
|
|
gui_y[1] = display_get_gui_height() - st_offset;
|
|
btn_width = display_get_height() / oControl.touch_scale; // default 4, smaller is bigger
|
|
btn_height = display_get_height() / oControl.touch_scale;
|
|
btn_y = display_get_gui_height() - btn_height - 25;
|
|
btn_x = display_get_gui_width() - 25;
|
|
btn_jump_x = btn_x - btn_width * 2;
|
|
btn_fire_x = btn_x - btn_width;
|
|
btn_missile_x = btn_jump_x;
|
|
btn_missile_y = btn_y - btn_height;
|
|
btn_morph_x = btn_fire_x;
|
|
btn_morph_y = btn_y - btn_height;
|
|
btn_pause_x = mean(gui_x[0] + st_radius, btn_jump_x);
|
|
btn_pause_y = gui_y[1] + st_radius;
|
|
|
|
buttonScale = ((150*btn_width)/300)/150; // ((150*btn_width)/300)/150
|
|
pauseScale = ((50*btn_height/3)/85)/50;
|
|
|
|
btn_jump[0] = btn_jump_x;
|
|
btn_jump[1] = btn_y+10;
|
|
btn_jump[2] = btn_jump_x + btn_width-10;
|
|
btn_jump[3] = btn_y + btn_height;
|
|
|
|
btn_fire[0] = btn_fire_x+10;
|
|
btn_fire[1] = btn_y + 10;
|
|
btn_fire[2] = btn_fire_x + btn_width;
|
|
btn_fire[3] = btn_y + btn_height;
|
|
|
|
btn_missile[0] = btn_missile_x;
|
|
btn_missile[1] = btn_missile_y;
|
|
btn_missile[2] = btn_missile_x + btn_width - 10;
|
|
btn_missile[3] = btn_missile_y + btn_height - 10;
|
|
|
|
btn_morph[0] = btn_morph_x + 10;
|
|
btn_morph[1] = btn_morph_y;
|
|
btn_morph[2] = btn_morph_x + btn_width;
|
|
btn_morph[3] = btn_morph_y + btn_height - 10;
|
|
|
|
btn_pause[0] = btn_pause_x - btn_width/4;
|
|
btn_pause[1] = btn_pause_y - btn_height/3;
|
|
btn_pause[2] = btn_pause_x + btn_width/4;
|
|
btn_pause[3] = btn_pause_y;
|
|
|
|
btn_pausearrow_y = btn_pause_y - btn_height/3/2;
|
|
|
|
// Up Left
|
|
btn_aimul[0] = gui_x[0] - st_radius;
|
|
btn_aimul[1] = gui_y[0] - st_radius;
|
|
btn_aimul[2] = (gui_x[0] - st_radius) + st_radius/2;
|
|
btn_aimul[3] = (gui_y[0] - st_radius);
|
|
btn_aimul[4] = (gui_x[0] - st_radius);
|
|
btn_aimul[5] = (gui_y[0] - st_radius) + st_radius/2;
|
|
|
|
// Down Left
|
|
btn_aimdl[0] = gui_x[0] - st_radius;
|
|
btn_aimdl[1] = gui_y[0] + st_radius;
|
|
btn_aimdl[2] = (gui_x[0] - st_radius) + st_radius/2;
|
|
btn_aimdl[3] = (gui_y[0] + st_radius);
|
|
btn_aimdl[4] = (gui_x[0] - st_radius);
|
|
btn_aimdl[5] = (gui_y[0] + st_radius) - st_radius/2;
|
|
|
|
// Up Right
|
|
btn_aimur[0] = gui_x[0] + st_radius;
|
|
btn_aimur[1] = gui_y[0] - st_radius;
|
|
btn_aimur[2] = (gui_x[0] + st_radius) - st_radius/2;
|
|
btn_aimur[3] = (gui_y[0] - st_radius);
|
|
btn_aimur[4] = (gui_x[0] + st_radius);
|
|
btn_aimur[5] = (gui_y[0] - st_radius) + st_radius/2;
|
|
|
|
// Down Right
|
|
btn_aimdr[0] = gui_x[0] + st_radius;
|
|
btn_aimdr[1] = gui_y[0] + st_radius;
|
|
btn_aimdr[2] = (gui_x[0] + st_radius) - st_radius/2;
|
|
btn_aimdr[3] = (gui_y[0] + st_radius);
|
|
btn_aimdr[4] = (gui_x[0] + st_radius);
|
|
btn_aimdr[5] = (gui_y[0] + st_radius) - st_radius/2;
|
|
|
|
// Up Button
|
|
btn_aimu[0] = gui_x[0];
|
|
btn_aimu[1] = gui_y[0] - st_radius/4;
|
|
btn_aimu[2] = gui_x[0] - st_radius;
|
|
btn_aimu[3] = gui_y[0] - st_radius;
|
|
btn_aimu[4] = gui_x[0] + st_radius;
|
|
btn_aimu[5] = gui_y[0] - st_radius;
|
|
|
|
// Down Button
|
|
btn_aimd[0] = gui_x[0];
|
|
btn_aimd[1] = gui_y[0] + st_radius/4;
|
|
btn_aimd[2] = gui_x[0] - st_radius;
|
|
btn_aimd[3] = gui_y[0] + st_radius;
|
|
btn_aimd[4] = gui_x[0] + st_radius;
|
|
btn_aimd[5] = gui_y[0] + st_radius;
|
|
|
|
// Right Button
|
|
btn_aimr[0] = gui_x[0] + st_radius/4;
|
|
btn_aimr[1] = gui_y[0];
|
|
btn_aimr[2] = gui_x[0] + st_radius;
|
|
btn_aimr[3] = gui_y[0] + st_radius;
|
|
btn_aimr[4] = gui_x[0] + st_radius;
|
|
btn_aimr[5] = gui_y[0] - st_radius;
|
|
|
|
// Left Button
|
|
btn_aiml[0] = gui_x[0] - st_radius/4;
|
|
btn_aiml[1] = gui_y[0];
|
|
btn_aiml[2] = gui_x[0] - st_radius;
|
|
btn_aiml[3] = gui_y[0] + st_radius;
|
|
btn_aiml[4] = gui_x[0] - st_radius;
|
|
btn_aiml[5] = gui_y[0] - st_radius;
|
|
|
|
// Up Arrow
|
|
btn_uparrow[0] = gui_x[0];
|
|
btn_uparrow[1] = gui_y[0] - st_radius/1.25;
|
|
btn_uparrow[2] = gui_x[0] + st_radius/4;
|
|
btn_uparrow[3] = gui_y[0] - st_radius/2;
|
|
btn_uparrow[4] = gui_x[0] - st_radius/4;
|
|
btn_uparrow[5] = gui_y[0] - st_radius/2;
|
|
|
|
// Down Arrow
|
|
btn_downarrow[0] = gui_x[0];
|
|
btn_downarrow[1] = gui_y[0] + st_radius/1.25;
|
|
btn_downarrow[2] = gui_x[0] + st_radius/4;
|
|
btn_downarrow[3] = gui_y[0] + st_radius/2;
|
|
btn_downarrow[4] = gui_x[0] - st_radius/4;
|
|
btn_downarrow[5] = gui_y[0] + st_radius/2;
|
|
|
|
// Left Arrow
|
|
btn_leftarrow[0] = gui_x[0] - st_radius/1.25;
|
|
btn_leftarrow[1] = gui_y[0];
|
|
btn_leftarrow[2] = gui_x[0] - st_radius/2;
|
|
btn_leftarrow[3] = gui_y[0] - st_radius/4;
|
|
btn_leftarrow[4] = gui_x[0] - st_radius/2;
|
|
btn_leftarrow[5] = gui_y[0] + st_radius/4;
|
|
|
|
// Right Arrow
|
|
btn_rightarrow[0] = gui_x[0] + st_radius/1.25;
|
|
btn_rightarrow[1] = gui_y[0];
|
|
btn_rightarrow[2] = gui_x[0] + st_radius/2;
|
|
btn_rightarrow[3] = gui_y[0] - st_radius/4;
|
|
btn_rightarrow[4] = gui_x[0] + st_radius/2;
|
|
btn_rightarrow[5] = gui_y[0] + st_radius/4;
|
|
|
|
/*
|
|
texture_set_interpolation(true);
|
|
|
|
var surf = -1,
|
|
spr;
|
|
|
|
if (!surface_exists(surf)) surf = surface_create(300*buttonScale, 300*buttonScale);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonX, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, buttonScale, buttonScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonX, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonS, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, buttonScale, buttonScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonS, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonC, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, buttonScale, buttonScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonC, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonT, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, buttonScale, buttonScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonT, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_free(surf);
|
|
|
|
if (!surface_exists(surf)) surf = surface_create(85*pauseScale, 85*pauseScale);
|
|
|
|
surface_set_target(surf);
|
|
draw_clear_alpha(c_black, 0);
|
|
draw_sprite_ext(sTouchButtonPause, 0, surface_get_width(surf)/2, surface_get_height(surf)/2, pauseScale, pauseScale, 0, c_white, 1);
|
|
surface_reset_target();
|
|
spr = sprite_create_from_surface(surf, 0, 0, surface_get_width(surf), surface_get_height(surf), 0, 0, surface_get_width(surf)/2, surface_get_height(surf)/2);
|
|
sprite_assign(sTouchButtonPause, spr);
|
|
sprite_delete(spr);
|
|
|
|
surface_free(surf);
|
|
|
|
texture_set_interpolation(false);
|
|
*/
|
|
/// Extra
|
|
alpha = 0.5;
|
|
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="8" enumb="77">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/// Draw on-screen controls.
|
|
|
|
if((global.joydetected == 1 && global.ingame) || global.gamestarted == 0 || room == rm_credits || room == rm_score || room == rm_death || room == gameintroroom) exit;
|
|
|
|
if (draw == 1 && alpha!=0) {
|
|
draw_set_color(c_white);
|
|
draw_set_alpha(alpha);
|
|
|
|
draw_set_circle_precision(48);
|
|
|
|
if(global.ingame || room == rm_subscreen || room == rm_secretEnding) {
|
|
draw_sprite_ext(sTouchButtonPause, 0, btn_pause_x, btn_pausearrow_y, 4/scale, 4/scale, 0, c_white, alpha/3);
|
|
draw_roundrect_ext(btn_pause[0], btn_pause[1], btn_pause[2], btn_pause[3], 30, 30, 1);
|
|
}
|
|
|
|
if (room != rm_secretEnding) {
|
|
// Jump
|
|
draw_roundrect(btn_jump[0], btn_jump[1], btn_jump[2], btn_jump[3], true);
|
|
|
|
// Fire
|
|
draw_roundrect(btn_fire[0], btn_fire[1], btn_fire[2], btn_fire[3], true);
|
|
|
|
draw_sprite_ext(sTouchButtonX, 0, mean(btn_fire[0], btn_fire[2]), mean(btn_fire[1], btn_fire[3]), 4/scale, 4/scale, 0, c_white, alpha/3);
|
|
draw_sprite_ext(sTouchButtonS, 0, mean(btn_jump[0], btn_jump[2]), mean(btn_jump[1], btn_jump[3]), 4/scale, 4/scale, 0, c_white, alpha/3);
|
|
|
|
draw_circle(gui_x[0], gui_y[0], st_radius, 1);
|
|
|
|
if (instance_exists(oSS_Fg) && global.ssmode == 0 && oSS_Fg.hidetext == 0 && oSS_Fg.itemcollunlock) {
|
|
draw_roundrect(btn_missile[0], btn_missile[1], btn_missile[2], btn_missile[3], true);
|
|
draw_sprite_ext(sTouchButtonT, 0, mean(btn_missile[0], btn_missile[2]), mean(btn_missile[1], btn_missile[3]), 1, 1, 0, c_white, alpha/3);
|
|
}
|
|
|
|
if ((global.ingame || room == itemroom) && !global.joydetected) {
|
|
// Up Left
|
|
draw_triangle(btn_aimul[0], btn_aimul[1], btn_aimul[2], btn_aimul[3], btn_aimul[4], btn_aimul[5], 1);
|
|
// Down Left
|
|
if (global.opaimstyle) draw_triangle(btn_aimdl[0], btn_aimdl[1], btn_aimdl[2], btn_aimdl[3], btn_aimdl[4], btn_aimdl[5], 1);
|
|
// Up Right
|
|
draw_triangle(btn_aimur[0], btn_aimur[1], btn_aimur[2], btn_aimur[3], btn_aimur[4], btn_aimur[5], 1);
|
|
// Down Right
|
|
if (global.opaimstyle) draw_triangle(btn_aimdr[0], btn_aimdr[1], btn_aimdr[2], btn_aimdr[3], btn_aimdr[4], btn_aimdr[5], 1);
|
|
|
|
// Missile
|
|
draw_roundrect(btn_missile[0], btn_missile[1], btn_missile[2], btn_missile[3], true);
|
|
|
|
//Morph
|
|
draw_roundrect(btn_morph[0], btn_morph[1], btn_morph[2], btn_morph[3], true);
|
|
|
|
draw_sprite_ext(sTouchButtonT, 0, mean(btn_missile[0], btn_missile[2]), mean(btn_missile[1], btn_missile[3]), 4/scale, 4/scale, 0, c_white, alpha/3);
|
|
draw_sprite_ext(sTouchButtonC, 0, mean(btn_morph[0], btn_morph[2]), mean(btn_morph[1], btn_morph[3]), 4/scale, 4/scale, 0, c_white, alpha/3);
|
|
|
|
draw_set_alpha(alpha/3);
|
|
draw_circle(stick_x[0], stick_y[0], 50, 0);
|
|
}
|
|
else {
|
|
draw_set_alpha(alpha/3);
|
|
// Up
|
|
draw_triangle(btn_uparrow[0], btn_uparrow[1], btn_uparrow[2], btn_uparrow[3], btn_uparrow[4], btn_uparrow[5], 0);
|
|
// Down
|
|
draw_triangle(btn_downarrow[0], btn_downarrow[1], btn_downarrow[2], btn_downarrow[3], btn_downarrow[4], btn_downarrow[5], 0);
|
|
// Left
|
|
draw_triangle(btn_leftarrow[0], btn_leftarrow[1], btn_leftarrow[2], btn_leftarrow[3], btn_leftarrow[4], btn_leftarrow[5], 0);
|
|
// Right
|
|
draw_triangle(btn_rightarrow[0], btn_rightarrow[1], btn_rightarrow[2], btn_rightarrow[3], btn_rightarrow[4], btn_rightarrow[5], 0);
|
|
}
|
|
}
|
|
|
|
draw_set_alpha(1);
|
|
}
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="9" enumb="8">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>/*oControl.showfps = !oControl.showfps;
|
|
|
|
show_debug_overlay(oControl.showfps);
|
|
|
|
/*if (global.ingame) {
|
|
global.targetx = 48;
|
|
global.targety = 1392;
|
|
get_loadout(10);
|
|
global.lavastate = 6;
|
|
room_goto(rm_a0h11);
|
|
}
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
</events>
|
|
<PhysicsObject>0</PhysicsObject>
|
|
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
|
<PhysicsObjectShape>0</PhysicsObjectShape>
|
|
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
|
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
|
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
|
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
|
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
|
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
|
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
|
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
|
<PhysicsShapePoints/>
|
|
</object>
|