Commit 5eff3f54 authored by Chunchi Che's avatar Chunchi Che

update setupHandInteractivity

parent 49e2424b
...@@ -64,7 +64,7 @@ export const HandHoverOutScaling = () => { ...@@ -64,7 +64,7 @@ export const HandHoverOutScaling = () => {
export const HandInteractShape = () => { export const HandInteractShape = () => {
return { width: 0.8, height: 0.2 }; return { width: 0.8, height: 0.2 };
}; };
export const HandInteractFontSize = 300; export const HandInteractFontSize = 200;
// 怪兽区 // 怪兽区
export const MonsterColor = () => { export const MonsterColor = () => {
......
import * as BABYLON from "@babylonjs/core"; import * as BABYLON from "@babylonjs/core";
import * as BABYLON_GUI from "@babylonjs/gui"; import * as BABYLON_GUI from "@babylonjs/gui";
import * as CONFIG from "../../../config/ui"; import * as CONFIG from "../../../config/ui";
import { Card } from "../../../reducers/duel/util"; import { Card, InteractType } from "../../../reducers/duel/util";
export default (hands: Card[], scene: BABYLON.Scene) => { export default (hands: Card[], scene: BABYLON.Scene) => {
const handShape = CONFIG.HandShape(); const handShape = CONFIG.HandShape();
...@@ -59,31 +59,37 @@ function setupHandInteractivity( ...@@ -59,31 +59,37 @@ function setupHandInteractivity(
scene: BABYLON.Scene scene: BABYLON.Scene
) { ) {
const interactShape = CONFIG.HandInteractShape(); const interactShape = CONFIG.HandInteractShape();
const interact = BABYLON.MeshBuilder.CreatePlane( const interactivities = state.interactivities;
`handInteract${handIdx}`,
interactShape,
scene
);
interact.parent = mesh;
// 调整位置
interact.translate(
new BABYLON.Vector3(0, 1, 0),
CONFIG.HandShape().height / 2 + interactShape.height / 2
);
const advancedTexture = for (let i = 0; i < interactivities.length; i++) {
BABYLON_GUI.AdvancedDynamicTexture.CreateForMesh(interact); const interact = BABYLON.MeshBuilder.CreatePlane(
const button = BABYLON_GUI.Button.CreateImageWithCenterTextButton( `handInteract_${handIdx}_${i}`,
`handInteractButtion${handIdx}`, interactShape,
"test", scene
"http://localhost:3030/images/interact_button.png" );
); interact.parent = mesh;
button.fontSize = CONFIG.HandInteractFontSize; // 调整位置
button.color = "white"; interact.translate(
button.onPointerClickObservable.add(() => { new BABYLON.Vector3(0, 1, 0),
console.log(`<Interact>hand ${handIdx}`); CONFIG.HandShape().height / 2 +
}); interactShape.height / 2 +
advancedTexture.addControl(button); interactShape.height * i
);
const advancedTexture =
BABYLON_GUI.AdvancedDynamicTexture.CreateForMesh(interact);
const button = BABYLON_GUI.Button.CreateImageWithCenterTextButton(
`handInteractButtion_${handIdx}_${i}`,
interactTypeToString(interactivities[i].interactType),
"http://localhost:3030/images/interact_button.png"
);
button.fontSize = CONFIG.HandInteractFontSize;
button.color = "white";
button.onPointerClickObservable.add(() => {
console.log(`<Interact>hand ${handIdx}`);
});
advancedTexture.addControl(button);
}
} }
function setupHandAction( function setupHandAction(
...@@ -149,3 +155,7 @@ function setupHandAction( ...@@ -149,3 +155,7 @@ function setupHandAction(
) )
); );
} }
function interactTypeToString(t: InteractType): string {
return InteractType[t];
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment