new version + metric

This commit is contained in:
artem 2024-04-02 19:34:50 +03:00
parent f6b7e465d1
commit 4e2c157358
8 changed files with 1134 additions and 1041 deletions

Binary file not shown.

View File

@ -1,51 +1,88 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="user-scalable=no, height=device-height, width=device-width, initial-scale=1.0">
<title>Platformer</title>
<link rel="stylesheet" href="styles.css" />
<script type="module" defer src="main.js"></script>
</head>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="user-scalable=no, height=device-height, width=device-width, initial-scale=1.0">
<title>Platformer</title>
<body>
<noscript>This page contains WebAssembly and JavaScript content, please enable JavaScript in your browser.</noscript>
<div class="lds-default" style="display: none;"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div>
<main id="main">
<button class="button-3d" id="button-start" type="button" role="button" onclick="preloaderEnable()">
Start
</button>
</main>
</body>
<script>
function preloaderEnable() {
document.querySelector('.lds-default').style = null;
}
<link rel="stylesheet" href="styles.css" />
<script type="module" defer src="main.js"></script>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (m, e, t, r, i, k, a) {
m[i] = m[i] || function () { (m[i].a = m[i].a || []).push(arguments) };
m[i].l = 1 * new Date();
for (var j = 0; j < document.scripts.length; j++) { if (document.scripts[j].src === r) { return; } }
k = e.createElement(t), a = e.getElementsByTagName(t)[0], k.async = 1, k.src = r, a.parentNode.insertBefore(k, a)
})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
const intervalId = setInterval(function() {
if (document.querySelector('canvas') !== null) {
document.querySelector('canvas');
clearInterval(intervalId);
resize(document.querySelector('canvas'));
}
}, 1000);
new ResizeObserver(() => {
const canvasObj = document.querySelector('canvas')
if (canvasObj == null) {
return;
}
resize(canvasObj);
}).observe(document.body);
function resize(canvasObj) {
document.querySelector('.lds-default').style.display = "none";
canvasObj.style = null;
canvasObj.width = window.screen.width * window.devicePixelRatio;
canvasObj.height = window.screen.height * window.devicePixelRatio;
canvasObj.style.width = window.screen.width + "px";
canvasObj.style.height = window.screen.widheightth + "px";
}
ym(96918237, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true
});
</script>
</html>
<noscript>
<div><img src="https://mc.yandex.ru/watch/96918237" style="position:absolute; left:-9999px;" alt="" /></div>
</noscript>
<!-- /Yandex.Metrika counter -->
</head>
<body>
<noscript>This page contains WebAssembly and JavaScript content, please enable JavaScript in your browser.</noscript>
<div class="lds-default" style="display: none;">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<main id="main">
<button class="button-3d" id="button-start" type="button" role="button" onclick="preloaderEnable()">
Start
</button>
</main>
</body>
<script>
function preloaderEnable() {
document.querySelector('.lds-default').style = null;
}
const intervalId = setInterval(function () {
if (document.querySelector('canvas') !== null) {
document.querySelector('canvas');
clearInterval(intervalId);
resize(document.querySelector('canvas'));
}
}, 1000);
new ResizeObserver(() => {
const canvasObj = document.querySelector('canvas')
if (canvasObj == null) {
return;
}
resize(canvasObj);
}).observe(document.body);
function resize(canvasObj) {
document.querySelector('.lds-default').style.display = "none";
canvasObj.style = null;
canvasObj.width = window.screen.width * window.devicePixelRatio;
canvasObj.height = window.screen.height * window.devicePixelRatio;
canvasObj.style.width = window.screen.width + "px";
canvasObj.style.height = window.screen.widheightth + "px";
}
</script>
</html>

View File

@ -12,13 +12,13 @@ export interface InitOutput {
readonly __wbindgen_malloc: (a: number, b: number) => number;
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
readonly __wbindgen_export_2: WebAssembly.Table;
readonly wasm_bindgen__convert__closures__invoke1_mut__h1174b3f5d0f364f0: (a: number, b: number, c: number) => void;
readonly wasm_bindgen__convert__closures__invoke0_mut__he7eec17026fa9bbe: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures__invoke2_mut__h87cce4bf568ddd8d: (a: number, b: number, c: number, d: number) => void;
readonly wasm_bindgen__convert__closures__invoke0_mut__h0ec95cd6d7bcd320: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures__invoke1_mut__h0f1d8e7262983e79: (a: number, b: number, c: number) => void;
readonly wasm_bindgen__convert__closures__invoke0_mut__h79d5b69c906304b3: (a: number, b: number) => void;
readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h4d122b4606e1c898: (a: number, b: number, c: number) => void;
readonly wasm_bindgen__convert__closures__invoke1_mut__h0cf0487b290ee515: (a: number, b: number, c: number) => void;
readonly wasm_bindgen__convert__closures__invoke2_mut__h1e72dedd4c45cc2a: (a: number, b: number, c: number, d: number) => void;
readonly wasm_bindgen__convert__closures__invoke0_mut__ha79470fcd860256d: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures__invoke0_mut__h1766ce1cfdba25b3: (a: number, b: number) => void;
readonly wasm_bindgen__convert__closures__invoke1_mut__h05c77783bcb49ea5: (a: number, b: number, c: number) => void;
readonly wasm_bindgen__convert__closures__invoke0_mut__h2bdf352ddaf30b28: (a: number, b: number) => void;
readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22a129863ce3f604: (a: number, b: number, c: number) => void;
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
readonly __wbindgen_exn_store: (a: number) => void;
}

View File

@ -222,31 +222,31 @@ function makeMutClosure(arg0, arg1, dtor, f) {
return real;
}
function __wbg_adapter_32(arg0, arg1, arg2) {
wasm.wasm_bindgen__convert__closures__invoke1_mut__h1174b3f5d0f364f0(arg0, arg1, addHeapObject(arg2));
wasm.wasm_bindgen__convert__closures__invoke1_mut__h0cf0487b290ee515(arg0, arg1, addHeapObject(arg2));
}
function __wbg_adapter_35(arg0, arg1) {
wasm.wasm_bindgen__convert__closures__invoke0_mut__he7eec17026fa9bbe(arg0, arg1);
function __wbg_adapter_35(arg0, arg1, arg2, arg3) {
wasm.wasm_bindgen__convert__closures__invoke2_mut__h1e72dedd4c45cc2a(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
}
function __wbg_adapter_44(arg0, arg1, arg2, arg3) {
wasm.wasm_bindgen__convert__closures__invoke2_mut__h87cce4bf568ddd8d(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
function __wbg_adapter_38(arg0, arg1) {
wasm.wasm_bindgen__convert__closures__invoke0_mut__ha79470fcd860256d(arg0, arg1);
}
function __wbg_adapter_49(arg0, arg1) {
wasm.wasm_bindgen__convert__closures__invoke0_mut__h0ec95cd6d7bcd320(arg0, arg1);
wasm.wasm_bindgen__convert__closures__invoke0_mut__h1766ce1cfdba25b3(arg0, arg1);
}
function __wbg_adapter_52(arg0, arg1, arg2) {
wasm.wasm_bindgen__convert__closures__invoke1_mut__h0f1d8e7262983e79(arg0, arg1, addHeapObject(arg2));
wasm.wasm_bindgen__convert__closures__invoke1_mut__h05c77783bcb49ea5(arg0, arg1, addHeapObject(arg2));
}
function __wbg_adapter_61(arg0, arg1) {
wasm.wasm_bindgen__convert__closures__invoke0_mut__h79d5b69c906304b3(arg0, arg1);
function __wbg_adapter_57(arg0, arg1) {
wasm.wasm_bindgen__convert__closures__invoke0_mut__h2bdf352ddaf30b28(arg0, arg1);
}
function __wbg_adapter_68(arg0, arg1, arg2) {
wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h4d122b4606e1c898(arg0, arg1, addHeapObject(arg2));
wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22a129863ce3f604(arg0, arg1, addHeapObject(arg2));
}
/**
@ -407,22 +407,22 @@ function __wbg_get_imports() {
const ret = getObject(arg0).offsetY;
return ret;
};
imports.wbg.__wbg_onpointerrawupdate_e087759b4021ec00 = function(arg0) {
const ret = getObject(arg0).onpointerrawupdate;
return addHeapObject(ret);
};
imports.wbg.__wbg_requestFullscreen_a851d70cb190396a = function(arg0) {
const ret = getObject(arg0).requestFullscreen;
return addHeapObject(ret);
};
imports.wbg.__wbg_getCoalescedEvents_4665669d237be577 = function(arg0) {
const ret = getObject(arg0).getCoalescedEvents;
return addHeapObject(ret);
};
imports.wbg.__wbg_requestFullscreen_f4349fb8a7429cf9 = function(arg0) {
const ret = getObject(arg0).requestFullscreen();
return addHeapObject(ret);
};
imports.wbg.__wbg_onpointerrawupdate_e087759b4021ec00 = function(arg0) {
const ret = getObject(arg0).onpointerrawupdate;
return addHeapObject(ret);
};
imports.wbg.__wbg_getCoalescedEvents_4665669d237be577 = function(arg0) {
const ret = getObject(arg0).getCoalescedEvents;
return addHeapObject(ret);
};
imports.wbg.__wbg_scheduler_6932606c19435996 = function(arg0) {
const ret = getObject(arg0).scheduler;
return addHeapObject(ret);
@ -1607,68 +1607,68 @@ function __wbg_get_imports() {
const ret = wasm.memory;
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11046 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9777, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper6031 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 5473, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11047 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9777, __wbg_adapter_35);
imports.wbg.__wbindgen_closure_wrapper6032 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 5473, __wbg_adapter_35);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11048 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9777, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper6033 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 5473, __wbg_adapter_38);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11049 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9777, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper6034 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 5473, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11050 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9777, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper6035 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 5473, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11051 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9777, __wbg_adapter_44);
imports.wbg.__wbindgen_closure_wrapper6036 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 5473, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11053 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9777, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper6037 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 5473, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper42107 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 36555, __wbg_adapter_49);
imports.wbg.__wbindgen_closure_wrapper41986 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 36440, __wbg_adapter_49);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper43423 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37188, __wbg_adapter_52);
imports.wbg.__wbindgen_closure_wrapper43300 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37073, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper43424 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37188, __wbg_adapter_52);
imports.wbg.__wbindgen_closure_wrapper43301 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37073, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper43425 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37188, __wbg_adapter_52);
imports.wbg.__wbindgen_closure_wrapper43302 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37073, __wbg_adapter_57);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper43426 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37188, __wbg_adapter_52);
imports.wbg.__wbindgen_closure_wrapper43303 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37073, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper43427 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37188, __wbg_adapter_61);
imports.wbg.__wbindgen_closure_wrapper43304 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37073, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper43428 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37188, __wbg_adapter_52);
imports.wbg.__wbindgen_closure_wrapper43305 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37073, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper43429 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37188, __wbg_adapter_52);
imports.wbg.__wbindgen_closure_wrapper43306 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37073, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper45615 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37673, __wbg_adapter_68);
imports.wbg.__wbindgen_closure_wrapper45492 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 37558, __wbg_adapter_68);
return addHeapObject(ret);
};

View File

@ -5,12 +5,12 @@ export function main(): void;
export function __wbindgen_malloc(a: number, b: number): number;
export function __wbindgen_realloc(a: number, b: number, c: number, d: number): number;
export const __wbindgen_export_2: WebAssembly.Table;
export function wasm_bindgen__convert__closures__invoke1_mut__h1174b3f5d0f364f0(a: number, b: number, c: number): void;
export function wasm_bindgen__convert__closures__invoke0_mut__he7eec17026fa9bbe(a: number, b: number): void;
export function wasm_bindgen__convert__closures__invoke2_mut__h87cce4bf568ddd8d(a: number, b: number, c: number, d: number): void;
export function wasm_bindgen__convert__closures__invoke0_mut__h0ec95cd6d7bcd320(a: number, b: number): void;
export function wasm_bindgen__convert__closures__invoke1_mut__h0f1d8e7262983e79(a: number, b: number, c: number): void;
export function wasm_bindgen__convert__closures__invoke0_mut__h79d5b69c906304b3(a: number, b: number): void;
export function _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h4d122b4606e1c898(a: number, b: number, c: number): void;
export function wasm_bindgen__convert__closures__invoke1_mut__h0cf0487b290ee515(a: number, b: number, c: number): void;
export function wasm_bindgen__convert__closures__invoke2_mut__h1e72dedd4c45cc2a(a: number, b: number, c: number, d: number): void;
export function wasm_bindgen__convert__closures__invoke0_mut__ha79470fcd860256d(a: number, b: number): void;
export function wasm_bindgen__convert__closures__invoke0_mut__h1766ce1cfdba25b3(a: number, b: number): void;
export function wasm_bindgen__convert__closures__invoke1_mut__h05c77783bcb49ea5(a: number, b: number, c: number): void;
export function wasm_bindgen__convert__closures__invoke0_mut__h2bdf352ddaf30b28(a: number, b: number): void;
export function _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22a129863ce3f604(a: number, b: number, c: number): void;
export function __wbindgen_free(a: number, b: number, c: number): void;
export function __wbindgen_exn_store(a: number): void;

View File

@ -13,9 +13,9 @@ use fyrox::{
engine::GraphicsContext,
event::{Event, WindowEvent},
gui::{
font::Font,
brush::Brush,
button::ButtonMessage,
font::Font,
grid::{Column, GridBuilder, Row},
message::{MessageDirection, UiMessage},
text::TextBuilder,
@ -63,6 +63,9 @@ pub struct Game {
scene: Handle<Scene>,
new_game: Handle<UiNode>,
new_game_with_plot: Handle<UiNode>,
next: Handle<UiNode>,
new_game_after_plot: Handle<UiNode>,
exit: Handle<UiNode>,
level_node: Handle<UiNode>,
level: u32,
@ -74,7 +77,6 @@ pub struct Game {
}
impl Game {
pub fn default() -> Self {
return Game {
level: START_LEVEL,
@ -92,6 +94,18 @@ impl Game {
.user_interface
.find_by_name_from_root("NewGame")
.unwrap();
(game.new_game_with_plot, _) = ctx
.user_interface
.find_by_name_from_root("NewGameWithPlot")
.unwrap();
(game.next, _) = ctx
.user_interface
.find_by_name_from_root("NextPlotScreen")
.unwrap();
(game.new_game_after_plot, _) = ctx
.user_interface
.find_by_name_from_root("NewGamePlotScreen")
.unwrap();
(game.exit, _) = ctx.user_interface.find_by_name_from_root("Exit").unwrap();
}
Err(e) => Log::err(format!("Unable to load main menu! Reason: {:?}", e)),
@ -104,6 +118,9 @@ impl Game {
level_node: Handle::NONE,
scene: Handle::NONE,
new_game: Handle::NONE,
new_game_with_plot: Handle::NONE,
new_game_after_plot: Handle::NONE,
next: Handle::NONE,
exit: Handle::NONE,
level: START_LEVEL,
need_change_level: false,
@ -116,7 +133,7 @@ impl Game {
pub fn next_level(&mut self, change_level_time: f32) {
self.need_change_level = true;
self.change_level_time= change_level_time;
self.change_level_time = change_level_time;
}
pub fn show_menu(&mut self, show_menu_time: f32) {
@ -130,8 +147,10 @@ impl Game {
}
impl Plugin for Game {
fn register(&self, #[allow(unused_variables)] context: fyrox::plugin::PluginRegistrationContext) {
fn register(
&self,
#[allow(unused_variables)] context: fyrox::plugin::PluginRegistrationContext,
) {
let script_constructors = &context.serialization_context.script_constructors;
script_constructors.add::<Swordman>("Enemy");
script_constructors.add::<Player>("Player");
@ -147,16 +166,16 @@ impl Plugin for Game {
}
fn update(&mut self, context: &mut PluginContext) {
if self.need_change_level && self.change_level_time < context.elapsed_time {
if self.need_change_level && self.change_level_time < context.elapsed_time {
self.need_change_level = false;
self.level += 1;
context.async_scene_loader.request("data/scene.rgs");
}
//println!("{} {} ", context.elapsed_time, self.show_menu_time);
if self.need_show_menu && self.show_menu_time < context.elapsed_time {
self.need_show_menu = false;
self.show_menu_time = 0.0;
self.show_menu_time = 0.0;
context
.user_interface
.send_message(WidgetMessage::visibility(
@ -170,14 +189,14 @@ impl Plugin for Game {
if self.need_show_end {
context
.user_interface
.send_message(WidgetMessage::visibility(
context
.user_interface
.find_handle_by_name_from_root("EndScreen"),
MessageDirection::ToWidget,
true,
));
.user_interface
.send_message(WidgetMessage::visibility(
context
.user_interface
.find_handle_by_name_from_root("EndScreen"),
MessageDirection::ToWidget,
true,
));
}
}
@ -228,7 +247,13 @@ impl Plugin for Game {
fn on_ui_message(&mut self, ctx: &mut PluginContext, message: &UiMessage) {
if let Some(ButtonMessage::Click) = message.data() {
if message.destination() == self.new_game {
if message.destination() == self.new_game || message.destination() == self.new_game_after_plot {
ctx.user_interface.send_message(WidgetMessage::visibility(
ctx.user_interface
.find_handle_by_name_from_root("Start2Screen"),
MessageDirection::ToWidget,
false,
));
ctx.user_interface.send_message(WidgetMessage::visibility(
ctx.user_interface
.find_handle_by_name_from_root("MenuScreen"),
@ -236,6 +261,32 @@ impl Plugin for Game {
false,
));
ctx.async_scene_loader.request("data/scene.rgs");
} else if message.destination() == self.new_game_with_plot {
ctx.user_interface.send_message(WidgetMessage::visibility(
ctx.user_interface
.find_handle_by_name_from_root("MenuScreen"),
MessageDirection::ToWidget,
false,
));
ctx.user_interface.send_message(WidgetMessage::visibility(
ctx.user_interface
.find_handle_by_name_from_root("StartScreen"),
MessageDirection::ToWidget,
true,
));
} else if message.destination() == self.next {
ctx.user_interface.send_message(WidgetMessage::visibility(
ctx.user_interface
.find_handle_by_name_from_root("StartScreen"),
MessageDirection::ToWidget,
false,
));
ctx.user_interface.send_message(WidgetMessage::visibility(
ctx.user_interface
.find_handle_by_name_from_root("Start2Screen"),
MessageDirection::ToWidget,
true,
));
} else if message.destination() == self.exit {
if let Some(window_target) = ctx.window_target {
window_target.exit();
@ -285,17 +336,22 @@ impl Plugin for Game {
ArcherSpawn::new().spawn_enemy(graph, resource_manager, -25.0);
}
let ui_ctx = &mut context.user_interface.build_ctx();
let font_to_level = resource_manager.request::<Font>("data/cd2f1-36d91_sunday.ttf".to_owned());
let font_to_level =
resource_manager.request::<Font>("data/cd2f1-36d91_sunday.ttf".to_owned());
self.level_node = GridBuilder::new(
WidgetBuilder::new().with_child(
TextBuilder::new(WidgetBuilder::new().with_foreground(Brush::Solid(Color::opaque(192, 34, 9))))
WidgetBuilder::new()
.with_child(
TextBuilder::new(
WidgetBuilder::new()
.with_foreground(Brush::Solid(Color::opaque(192, 34, 9))),
)
.with_text(format!("Уровень: {}", self.level))
.with_font_size(20.0)
.with_font(font_to_level)
.with_shadow_brush(Brush::Solid(Color::RED))
.build(ui_ctx),
)
.with_margin(Thickness::top_left(10.0))
)
.with_margin(Thickness::top_left(10.0)),
)
.add_row(Row::stretch())
.add_column(Column::auto())

File diff suppressed because it is too large Load Diff