Persian menu-background, updated structure for background functions.

This was SVN commit r10792.
This commit is contained in:
Matthijs de Rijk 2011-12-22 17:54:33 +00:00
parent 3c1dc9ec32
commit 3bd371ae64
7 changed files with 135 additions and 24 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,7 @@
var userReportEnabledText; // contains the original version with "$status" placeholder
var currentSubmenuType; // contains submenu type
const MARGIN = 4; // menu border size
const background = "persians1"; // Background type. Currently: 'hellenes1', 'persians1'.
function init()
{
@ -16,27 +17,65 @@ function init()
}
var t0 = new Date;
function scrollBackgrounds()
function scrollBackgrounds(background)
{
var layer1 = getGUIObjectByName("backgroundLayer1");
var layer2 = getGUIObjectByName("backgroundLayer2");
var layer3 = getGUIObjectByName("backgroundLayer3");
var screen = layer1.parent.getComputedSize();
var h = screen.bottom - screen.top; // height of screen
var w = h*16/9; // width of background image
// Offset the layers by oscillating amounts
var t = (t0 - new Date) / 1000;
var speed = 1/20;
var off1 = 0.02 * w * (1+Math.cos(t*speed));
var off2 = 0.12 * w * (1+Math.cos(t*speed)) - h*6/9;
var off3 = 0.16 * w * (1+Math.cos(t*speed));
var left = screen.right - w * (1 + Math.ceil(screen.right / w));
layer1.size = new GUISize(left + off1, screen.top, screen.right + off1, screen.bottom);
layer2.size = new GUISize(screen.right/2 - h + off2, screen.top, screen.right/2 + h + off2, screen.bottom);
layer3.size = new GUISize(screen.right - h + off3, screen.top, screen.right + off3, screen.bottom);
if (background == "hellenes1")
{
var layer1 = getGUIObjectByName("backgroundHele1-1");
var layer2 = getGUIObjectByName("backgroundHele1-2");
var layer3 = getGUIObjectByName("backgroundHele1-3");
layer1.hidden = false;
layer2.hidden = false;
layer3.hidden = false;
var screen = layer1.parent.getComputedSize();
var h = screen.bottom - screen.top; // height of screen
var w = h*16/9; // width of background image
// Offset the layers by oscillating amounts
var t = (t0 - new Date) / 1000;
var speed = 1/20;
var off1 = 0.02 * w * (1+Math.cos(t*speed));
var off2 = 0.12 * w * (1+Math.cos(t*speed)) - h*6/9;
var off3 = 0.16 * w * (1+Math.cos(t*speed));
var left = screen.right - w * (1 + Math.ceil(screen.right / w));
layer1.size = new GUISize(left + off1, screen.top, screen.right + off1, screen.bottom);
layer2.size = new GUISize(screen.right/2 - h + off2, screen.top, screen.right/2 + h + off2, screen.bottom);
layer3.size = new GUISize(screen.right - h + off3, screen.top, screen.right + off3, screen.bottom);
}
if (background == "persians1")
{
var layer1 = getGUIObjectByName("backgroundPers1-1");
var layer2 = getGUIObjectByName("backgroundPers1-2");
var layer3 = getGUIObjectByName("backgroundPers1-3");
var layer4 = getGUIObjectByName("backgroundPers1-4");
layer1.hidden = false;
layer2.hidden = false;
layer3.hidden = false;
layer4.hidden = false;
var screen = layer1.parent.getComputedSize();
var h = screen.bottom - screen.top; // height of screen
var screenWidth = screen.right - screen.left;
var w = h*16/9;
var t = (t0 - new Date) / 1000;
var speed = 1/20;
var off1 = 0.01 * w * (Math.cos(t*speed));
var off2 = 0.03 * w * (Math.cos(t*speed));
var off3 = 0.07 * w * (1+Math.cos(t*speed)) + 0.5 * screenWidth - h*1.1;
var off4 = 0.16 * w * (1+Math.cos(t*speed)) - h*6/9;
var left = screen.right - w * (1 + Math.ceil(screen.right / w)) - 0.5 * screenWidth + h;
layer1.size = new GUISize(left + off1, screen.top, screen.right + off1 + h, screen.bottom);
layer2.size = new GUISize(left + off2, screen.top, screen.right + off2 + h, screen.bottom);
layer3.size = new GUISize(screen.left + off3, screen.top, screen.left + 2 * h + off3, screen.bottom);
layer4.size = new GUISize(screen.left + off4, screen.top, screen.left + 2 * h + off4, screen.bottom);
}
}
function submitUserReportMessage()
@ -91,7 +130,7 @@ function onTick()
lastTickTime = now;
// Animate backgrounds
scrollBackgrounds();
scrollBackgrounds(background);
// Animate submenu
updateMenuPosition(tickLength);

View File

@ -17,19 +17,47 @@
onTick();
</action>
<object name="backgroundLayer1"
<object name="backgroundHele1-1"
type="image"
sprite="background-hellenes1-1"
hidden="true"
ghost="true"
/>
<object name="backgroundLayer2"
<object name="backgroundHele1-2"
type="image"
sprite="background-hellenes1-2"
hidden="true"
ghost="true"
/>
<object name="backgroundLayer3"
<object name="backgroundHele1-3"
type="image"
sprite="background-hellenes1-3"
hidden="true"
ghost="true"
/>
<object name="backgroundPers1-1"
type="image"
sprite="background-persians1-1"
hidden="true"
ghost="true"
/>
<object name="backgroundPers1-2"
type="image"
sprite="background-persians1-2"
hidden="true"
ghost="true"
/>
<object name="backgroundPers1-3"
type="image"
sprite="background-persians1-3"
hidden="true"
ghost="true"
/>
<object name="backgroundPers1-4"
type="image"
sprite="background-persians1-4"
hidden="true"
ghost="true"
/>

View File

@ -30,6 +30,38 @@
wrap_mode="clamp_to_edge"
/>
</sprite>
<sprite name="background-persians1-1">
<image
texture="pregame/backgrounds/persians1-1.png"
fixed_h_aspect_ratio="1.777777"
round_coordinates="false"
/>
</sprite>
<sprite name="background-persians1-2">
<image
texture="pregame/backgrounds/persians1-2.png"
fixed_h_aspect_ratio="1.777777"
round_coordinates="false"
/>
</sprite>
<sprite name="background-persians1-3">
<image
texture="pregame/backgrounds/persians1-3.png"
round_coordinates="false"
wrap_mode="clamp_to_edge"
/>
</sprite>
<sprite name="background-persians1-4">
<image
texture="pregame/backgrounds/persians1-4.png"
round_coordinates="false"
wrap_mode="clamp_to_edge"
/>
</sprite>
<!--
==========================================