From b44c83de23528891d833be5bfcc315298fa4df3c Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 08 十月 2024 13:28:57 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/player.js | 31 ++++++++++++++++---------------
zy-acs-flow/src/map/MapPage.jsx | 29 +++++------------------------
2 files changed, 21 insertions(+), 39 deletions(-)
diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx
index 155c827..9a4367b 100644
--- a/zy-acs-flow/src/map/MapPage.jsx
+++ b/zy-acs-flow/src/map/MapPage.jsx
@@ -7,6 +7,7 @@
Box,
SpeedDial,
SpeedDialAction,
+ useTheme,
} from '@mui/material';
import {
MoreVert as MoreVertIcon,
@@ -27,43 +28,23 @@
const [app, setApp] = useState(null);
const [mapContainer, setMapContainer] = React.useState(null);
- const [windowSize, setWindowSize] = useState({
- width: window.innerWidth,
- height: window.innerHeight,
- });
-
const [mode, setMode] = useState('monitoring');
+
+ const theme = useTheme();
+ const themeMode = theme.palette.mode;
useEffect(() => {
const initialize = async () => {
- player = new Player(mapRef.current);
+ player = new Player(mapRef.current, themeMode);
setApp(player.app);
setMapContainer(player.mapContainer);
-
- const handleResize = () => {
- setWindowSize({
- width: window.innerWidth,
- height: window.innerHeight,
- });
- };
- window.addEventListener('resize', handleResize);
}
initialize();
return () => {
player.app.destroy(true, { children: true });
- window.removeEventListener('resize', () => { });
};
}, [])
-
- // resize
- useEffect(() => {
- if (app && contentRef.current) {
- const width = contentRef.current.offsetWidth;
- const height = contentRef.current.offsetHeight;
- app.renderer.resize(width, height); // 鍔ㄦ�佽皟鏁� PIXI 澶у皬
- }
- }, [app, mapContainer]);
const handleModeChange = (event) => {
setMode(event.target.value);
diff --git a/zy-acs-flow/src/map/player.js b/zy-acs-flow/src/map/player.js
index afc1904..e418eba 100644
--- a/zy-acs-flow/src/map/player.js
+++ b/zy-acs-flow/src/map/player.js
@@ -3,17 +3,10 @@
export default class Player {
- constructor(dom) {
- this.app = new PIXI.Application({
- background: '#f1f2f6',
- antialias: true,
- resizeTo: dom, // 鑷姩璋冩暣 canvas 灏哄
- })
- this.app.stage.eventMode = 'static';
- this.app.stage.hitArea = this.app.screen;
- this.app.view.addEventListener('contextmenu', (event) => {
- event.preventDefault();
- });
+ constructor(dom, themeMode) {
+ this.themeMode = themeMode;
+
+ this.app = generateApp(themeMode);
dom.appendChild(this.app.view);
globalThis.__PIXI_APP__ = this.app;
@@ -21,20 +14,28 @@
this.mapContainer = generateMapContainer('mapContainer');
const bunny = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png');
-
bunny.anchor.set(0.5);
-
bunny.x = this.app.screen.width / 2;
bunny.y = this.app.screen.height / 2;
-
this.app.stage.addChild(bunny);
-
this.app.ticker.add((delta) => {
bunny.rotation += 0.1 * delta;
});
}
+}
+const generateApp = (themeMode) => {
+ const app = new PIXI.Application({
+ background: themeMode === 'dark' ? '#2f3542' : '#f1f2f6',
+ antialias: true,
+ })
+ app.stage.eventMode = 'static';
+ app.stage.hitArea = app.screen;
+ app.view.addEventListener('contextmenu', (event) => {
+ event.preventDefault();
+ });
+ return app;
}
const generateMapContainer = (name) => {
--
Gitblit v1.9.1