|
@@ -1,3 +1,4 @@ |
|
|
|
|
|
// namespacing |
|
|
use crate::resources::{font::FontResource, spritesheet::SpriteSheetMap}; |
|
|
use crate::resources::{font::FontResource, spritesheet::SpriteSheetMap}; |
|
|
use amethyst::{ |
|
|
use amethyst::{ |
|
|
core::transform::Transform, |
|
|
core::transform::Transform, |
|
@@ -8,6 +9,7 @@ use amethyst::{ |
|
|
}; |
|
|
}; |
|
|
use nalgebra::Vector3; |
|
|
use nalgebra::Vector3; |
|
|
|
|
|
|
|
|
|
|
|
// constants |
|
|
const DEFAULT_SPRITE_WIDTH: f32 = 256.0; |
|
|
const DEFAULT_SPRITE_WIDTH: f32 = 256.0; |
|
|
const DEFAULT_SPRITE_HEIGHT: f32 = 144.0; |
|
|
const DEFAULT_SPRITE_HEIGHT: f32 = 144.0; |
|
|
|
|
|
|
|
@@ -34,6 +36,7 @@ impl TitleScreenState { |
|
|
.build(); |
|
|
.build(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// initialize the ui |
|
|
fn init_ui(&self, world: &mut World) { |
|
|
fn init_ui(&self, world: &mut World) { |
|
|
// get the font handle |
|
|
// get the font handle |
|
|
let font_handle = { |
|
|
let font_handle = { |
|
@@ -44,49 +47,87 @@ impl TitleScreenState { |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
// create the button transforms |
|
|
|
|
|
let exit_btn_transform = UiTransform::new( |
|
|
|
|
|
"exit_button".into(), |
|
|
|
|
|
Anchor::BottomRight, |
|
|
|
|
|
Anchor::Middle, |
|
|
|
|
|
-100.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
100.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
); |
|
|
|
|
|
let settings_btn_transform = UiTransform::new( |
|
|
|
|
|
"settings_button".into(), |
|
|
|
|
|
Anchor::BottomRight, |
|
|
|
|
|
Anchor::Middle, |
|
|
|
|
|
0.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
200.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// create the button ui text |
|
|
|
|
|
let exit_btn_text = |
|
|
|
|
|
UiText::new(font_handle.clone(), "Exit".into(), [1.0, 1.0, 1.0, 1.0], 30.0); |
|
|
|
|
|
let settings_btn_text = |
|
|
|
|
|
UiText::new(font_handle, "Settings".into(), [1.0, 1.0, 1.0, 1.0], 30.0); |
|
|
|
|
|
|
|
|
|
|
|
// create ui image |
|
|
|
|
|
let btn_image = UiImage::SolidColor([0.0, 0.0, 0.0, 1.0]); |
|
|
|
|
|
|
|
|
// make the title |
|
|
|
|
|
world |
|
|
|
|
|
.create_entity() |
|
|
|
|
|
.with(UiTransform::new( |
|
|
|
|
|
"title".into(), |
|
|
|
|
|
Anchor::Middle, |
|
|
|
|
|
Anchor::Middle, |
|
|
|
|
|
-450.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
450.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
)) |
|
|
|
|
|
.with(UiText::new( |
|
|
|
|
|
font_handle.clone(), |
|
|
|
|
|
"Merchant Seas".into(), |
|
|
|
|
|
[1.0, 1.0, 1.0, 1.0], |
|
|
|
|
|
45.0, |
|
|
|
|
|
)) |
|
|
|
|
|
.build(); |
|
|
|
|
|
|
|
|
// create the button |
|
|
|
|
|
|
|
|
// create the buttons |
|
|
|
|
|
world |
|
|
|
|
|
.create_entity() |
|
|
|
|
|
.with(UiTransform::new( |
|
|
|
|
|
"exit_button".into(), |
|
|
|
|
|
Anchor::BottomRight, |
|
|
|
|
|
Anchor::Middle, |
|
|
|
|
|
-100.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
150.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
)) |
|
|
|
|
|
.with(UiText::new(font_handle.clone(), "Exit".into(), [1.0, 1.0, 1.0, 1.0], 30.0)) |
|
|
|
|
|
.with(UiImage::SolidColor([0.0, 0.0, 0.0, 1.0])) |
|
|
|
|
|
.build(); |
|
|
|
|
|
world |
|
|
|
|
|
.create_entity() |
|
|
|
|
|
.with(UiTransform::new( |
|
|
|
|
|
"settings_button".into(), |
|
|
|
|
|
Anchor::BottomRight, |
|
|
|
|
|
Anchor::Middle, |
|
|
|
|
|
-325.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
250.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
)) |
|
|
|
|
|
.with(UiText::new(font_handle.clone(), "Settings".into(), [1.0, 1.0, 1.0, 1.0], 30.0)) |
|
|
|
|
|
.with(UiImage::SolidColor([0.0, 0.0, 0.0, 1.0])) |
|
|
|
|
|
.build(); |
|
|
world |
|
|
world |
|
|
.create_entity() |
|
|
.create_entity() |
|
|
.with(exit_btn_transform) |
|
|
|
|
|
.with(exit_btn_text) |
|
|
|
|
|
.with(btn_image.clone()) |
|
|
|
|
|
|
|
|
.with(UiTransform::new( |
|
|
|
|
|
"load_button".into(), |
|
|
|
|
|
Anchor::BottomRight, |
|
|
|
|
|
Anchor::Middle, |
|
|
|
|
|
-600.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
250.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
)) |
|
|
|
|
|
.with(UiText::new(font_handle.clone(), "Load Game".into(), [1.0, 1.0, 1.0, 1.0], 30.0)) |
|
|
|
|
|
.with(UiImage::SolidColor([0.0, 0.0, 0.0, 1.0])) |
|
|
.build(); |
|
|
.build(); |
|
|
world |
|
|
world |
|
|
.create_entity() |
|
|
.create_entity() |
|
|
.with(settings_btn_transform) |
|
|
|
|
|
.with(settings_btn_text) |
|
|
|
|
|
.with(btn_image) |
|
|
|
|
|
|
|
|
.with(UiTransform::new( |
|
|
|
|
|
"new_button".into(), |
|
|
|
|
|
Anchor::BottomRight, |
|
|
|
|
|
Anchor::Middle, |
|
|
|
|
|
-875.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
0.0, |
|
|
|
|
|
250.0, |
|
|
|
|
|
50.0, |
|
|
|
|
|
)) |
|
|
|
|
|
.with(UiText::new(font_handle, "New Game".into(), [1.0, 1.0, 1.0, 1.0], 30.0)) |
|
|
|
|
|
.with(UiImage::SolidColor([0.0, 0.0, 0.0, 1.0])) |
|
|
.build(); |
|
|
.build(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|