mirror of
https://github.com/ad044/lainTSX.git
synced 2024-10-22 23:19:06 +00:00
all idle animations done
This commit is contained in:
parent
7b67f44135
commit
75c838c7bf
4 changed files with 274 additions and 65 deletions
|
@ -14,7 +14,25 @@ import knockSpriteSheet from "../../static/sprite/knock.png";
|
|||
import knockAndFallSpriteSheet from "../../static/sprite/knock_and_fall.png";
|
||||
import touchAndScareSpriteSheet from "../../static/sprite/touch_and_scare.png";
|
||||
import ripNodeSpriteSheet from "../../static/sprite/rip_node.png";
|
||||
import { useLainStore, useMainSceneStore } from "../../store";
|
||||
import touchSleeveSpriteSheet from "../../static/sprite/touch_sleeve.png";
|
||||
import prayerSpriteSheet from "../../static/sprite/prayer.png";
|
||||
import thinkingSpriteSheet from "../../static/sprite/thinking.png";
|
||||
import stretchSpriteSheet from "../../static/sprite/stretch.png";
|
||||
import stretch2SpriteSheet from "../../static/sprite/stretch_2.png";
|
||||
import spinSpriteSheet from "../../static/sprite/spin.png";
|
||||
import scratchHeadSpriteSheet from "../../static/sprite/scratch_head.png";
|
||||
import blushSpriteSheet from "../../static/sprite/blush.png";
|
||||
import handsBehindHeadSpriteSheet from "../../static/sprite/hands_behind_head.png";
|
||||
import handsOnHipsSpriteSheet from "../../static/sprite/hands_on_hips.png";
|
||||
import handsOnHips2SpriteSheet from "../../static/sprite/hands_on_hips_2.png";
|
||||
import handsTogetherSpriteSheet from "../../static/sprite/hands_together.png";
|
||||
import leanForwardSpriteSheet from "../../static/sprite/lean_forward.png";
|
||||
import leanLeftSpriteSheet from "../../static/sprite/lean_left.png";
|
||||
import leanRightSpriteSheet from "../../static/sprite/lean_right.png";
|
||||
import lookAroundSpriteSheet from "../../static/sprite/look_around.png";
|
||||
import playWithHairSpriteSheet from "../../static/sprite/play_with_hair.png";
|
||||
|
||||
import { useLainStore } from "../../store";
|
||||
|
||||
type LainConstructorProps = {
|
||||
sprite: string;
|
||||
|
@ -25,7 +43,6 @@ type LainConstructorProps = {
|
|||
};
|
||||
|
||||
export const LainConstructor = (props: LainConstructorProps) => {
|
||||
// any here temporarily
|
||||
const lainSpriteTexture: any = useLoader(THREE.TextureLoader, props.sprite);
|
||||
|
||||
const [animator] = useState(() => {
|
||||
|
@ -107,73 +124,227 @@ export const LainMoveUp = () => (
|
|||
/>
|
||||
);
|
||||
|
||||
export const LainThrowNode = () => {
|
||||
return (
|
||||
<LainConstructor
|
||||
sprite={throwNodeSpriteSheet}
|
||||
frameCount={47}
|
||||
framesHorizontal={7}
|
||||
framesVertical={7}
|
||||
/>
|
||||
);
|
||||
};
|
||||
export const LainThrowNode = () => (
|
||||
<LainConstructor
|
||||
sprite={throwNodeSpriteSheet}
|
||||
frameCount={47}
|
||||
framesHorizontal={7}
|
||||
framesVertical={7}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainRipMiddleRing = () => {
|
||||
return (
|
||||
<LainConstructor
|
||||
sprite={ripMiddleRingSpriteSheet}
|
||||
frameCount={53}
|
||||
framesHorizontal={8}
|
||||
framesVertical={7}
|
||||
/>
|
||||
);
|
||||
};
|
||||
export const LainRipMiddleRing = () => (
|
||||
<LainConstructor
|
||||
sprite={ripMiddleRingSpriteSheet}
|
||||
frameCount={53}
|
||||
framesHorizontal={8}
|
||||
framesVertical={7}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainKnock = () => {
|
||||
return (
|
||||
<LainConstructor
|
||||
sprite={knockSpriteSheet}
|
||||
frameCount={32}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
/>
|
||||
);
|
||||
};
|
||||
export const LainKnock = () => (
|
||||
<LainConstructor
|
||||
sprite={knockSpriteSheet}
|
||||
frameCount={32}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainKnockAndFall = () => {
|
||||
return (
|
||||
<LainConstructor
|
||||
sprite={knockAndFallSpriteSheet}
|
||||
frameCount={64}
|
||||
framesHorizontal={8}
|
||||
framesVertical={8}
|
||||
fps={64 * 0.17}
|
||||
/>
|
||||
);
|
||||
};
|
||||
export const LainKnockAndFall = () => (
|
||||
<LainConstructor
|
||||
sprite={knockAndFallSpriteSheet}
|
||||
frameCount={64}
|
||||
framesHorizontal={8}
|
||||
framesVertical={8}
|
||||
fps={64 * 0.17}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainTouchAndScare = () => {
|
||||
return (
|
||||
<LainConstructor
|
||||
sprite={touchAndScareSpriteSheet}
|
||||
frameCount={37}
|
||||
framesHorizontal={7}
|
||||
framesVertical={6}
|
||||
/>
|
||||
);
|
||||
};
|
||||
export const LainTouchAndScare = () => (
|
||||
<LainConstructor
|
||||
sprite={touchAndScareSpriteSheet}
|
||||
frameCount={37}
|
||||
framesHorizontal={7}
|
||||
framesVertical={6}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainRipNode = () => {
|
||||
return (
|
||||
<LainConstructor
|
||||
sprite={ripNodeSpriteSheet}
|
||||
frameCount={60}
|
||||
framesHorizontal={8}
|
||||
framesVertical={8}
|
||||
fps={60 * 0.17}
|
||||
/>
|
||||
);
|
||||
};
|
||||
export const LainRipNode = () => (
|
||||
<LainConstructor
|
||||
sprite={ripNodeSpriteSheet}
|
||||
frameCount={60}
|
||||
framesHorizontal={8}
|
||||
framesVertical={8}
|
||||
fps={60 * 0.17}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainPrayer = () => (
|
||||
<LainConstructor
|
||||
sprite={prayerSpriteSheet}
|
||||
frameCount={32}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
fps={32 * 0.3}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainTouchSleeve = () => (
|
||||
<LainConstructor
|
||||
sprite={touchSleeveSpriteSheet}
|
||||
frameCount={33}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
fps={33 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainThinking = () => (
|
||||
<LainConstructor
|
||||
sprite={thinkingSpriteSheet}
|
||||
frameCount={38}
|
||||
framesHorizontal={7}
|
||||
framesVertical={6}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainStretch2 = () => (
|
||||
<LainConstructor
|
||||
sprite={stretch2SpriteSheet}
|
||||
frameCount={34}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainStretch = () => (
|
||||
<LainConstructor
|
||||
sprite={stretchSpriteSheet}
|
||||
frameCount={23}
|
||||
framesHorizontal={5}
|
||||
framesVertical={5}
|
||||
fps={23 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainSpin = () => (
|
||||
<LainConstructor
|
||||
sprite={spinSpriteSheet}
|
||||
frameCount={27}
|
||||
framesHorizontal={6}
|
||||
framesVertical={5}
|
||||
fps={27 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainScratchHead = () => (
|
||||
<LainConstructor
|
||||
sprite={scratchHeadSpriteSheet}
|
||||
frameCount={35}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainBlush = () => (
|
||||
<LainConstructor
|
||||
sprite={blushSpriteSheet}
|
||||
frameCount={28}
|
||||
framesHorizontal={6}
|
||||
framesVertical={5}
|
||||
fps={28 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainHandsBehindHead = () => (
|
||||
<LainConstructor
|
||||
sprite={handsBehindHeadSpriteSheet}
|
||||
frameCount={21}
|
||||
framesHorizontal={5}
|
||||
framesVertical={5}
|
||||
fps={28 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainHandsOnHips = () => (
|
||||
<LainConstructor
|
||||
sprite={handsOnHipsSpriteSheet}
|
||||
frameCount={27}
|
||||
framesHorizontal={6}
|
||||
framesVertical={5}
|
||||
fps={28 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainHandsOnHips2 = () => (
|
||||
<LainConstructor
|
||||
sprite={handsOnHips2SpriteSheet}
|
||||
frameCount={35}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainLeanForward = () => (
|
||||
<LainConstructor
|
||||
sprite={leanForwardSpriteSheet}
|
||||
frameCount={25}
|
||||
framesHorizontal={5}
|
||||
framesVertical={5}
|
||||
fps={28 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainHandsTogether = () => (
|
||||
<LainConstructor
|
||||
sprite={handsTogetherSpriteSheet}
|
||||
frameCount={23}
|
||||
framesHorizontal={5}
|
||||
framesVertical={5}
|
||||
fps={28 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainLeanLeft = () => (
|
||||
<LainConstructor
|
||||
sprite={leanLeftSpriteSheet}
|
||||
frameCount={29}
|
||||
framesHorizontal={6}
|
||||
framesVertical={5}
|
||||
fps={32 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainLeanRight = () => (
|
||||
<LainConstructor
|
||||
sprite={leanRightSpriteSheet}
|
||||
frameCount={52}
|
||||
framesHorizontal={8}
|
||||
framesVertical={7}
|
||||
fps={45 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainLookAround = () => (
|
||||
<LainConstructor
|
||||
sprite={lookAroundSpriteSheet}
|
||||
frameCount={35}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
fps={35 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
export const LainPlayWithHair = () => (
|
||||
<LainConstructor
|
||||
sprite={playWithHairSpriteSheet}
|
||||
frameCount={33}
|
||||
framesHorizontal={6}
|
||||
framesVertical={6}
|
||||
fps={35 * 0.35}
|
||||
/>
|
||||
);
|
||||
|
||||
type LainProps = {
|
||||
shouldIntro: boolean;
|
||||
|
@ -193,6 +364,23 @@ const Lain = (props: LainProps) => {
|
|||
throw_node: <LainThrowNode />,
|
||||
pause_game: <LainRipMiddleRing />,
|
||||
rip_node: <LainRipNode />,
|
||||
prayer: <LainPrayer />,
|
||||
scratch_head: <LainScratchHead />,
|
||||
spin: <LainSpin />,
|
||||
stretch: <LainStretch />,
|
||||
stretch_2: <LainStretch2 />,
|
||||
thinking: <LainThinking />,
|
||||
touch_sleeve: <LainTouchSleeve />,
|
||||
blush: <LainBlush />,
|
||||
hands_behind_head: <LainHandsBehindHead />,
|
||||
hands_on_hips: <LainHandsOnHips />,
|
||||
hands_on_hips_2: <LainHandsOnHips2 />,
|
||||
hands_together: <LainHandsTogether />,
|
||||
lean_forward: <LainLeanForward />,
|
||||
lean_left: <LainLeanLeft />,
|
||||
lean_right: <LainLeanRight />,
|
||||
look_around: <LainLookAround />,
|
||||
play_with_hair: <LainPlayWithHair />,
|
||||
};
|
||||
|
||||
const [introFinished, setIntroFinished] = useState(false);
|
||||
|
|
|
@ -13,6 +13,7 @@ import boringHudMirroredSpriteSheet from "../static/sprite/long_hud_boring_mirro
|
|||
import throwNodeSpriteSheet from "../static/sprite/throw_node.png";
|
||||
import ripMiddleRingSpriteSheet from "../static/sprite/rip_middle_ring.png";
|
||||
import ripNodeSpriteSheet from "../static/sprite/rip_node.png";
|
||||
import prayerSpriteSheet from "../static/sprite/prayer.png";
|
||||
|
||||
import * as THREE from "three";
|
||||
import { useLoader, useThree } from "react-three-fiber";
|
||||
|
@ -48,6 +49,7 @@ const Preloader = () => {
|
|||
ripMiddleRingSpriteSheet
|
||||
);
|
||||
const ripNode = useLoader(THREE.TextureLoader, ripNodeSpriteSheet);
|
||||
const prayer = useLoader(THREE.TextureLoader, prayerSpriteSheet);
|
||||
|
||||
const { gl } = useThree();
|
||||
useLayoutEffect(() => {
|
||||
|
@ -66,6 +68,7 @@ const Preloader = () => {
|
|||
gl.initTexture(throwNode);
|
||||
gl.initTexture(ripMiddleRing);
|
||||
gl.initTexture(ripNode);
|
||||
gl.initTexture(prayer);
|
||||
}, [
|
||||
moveDown,
|
||||
moveUp,
|
||||
|
@ -83,6 +86,7 @@ const Preloader = () => {
|
|||
throwNode,
|
||||
ripMiddleRing,
|
||||
ripNode,
|
||||
prayer,
|
||||
]);
|
||||
return null;
|
||||
};
|
||||
|
|
|
@ -16,6 +16,23 @@ const LainManager = (props: StateManagerProps) => {
|
|||
case "select_level_down":
|
||||
case "pause_game":
|
||||
case "knock_node":
|
||||
case "prayer":
|
||||
case "touch_sleeve":
|
||||
case "thinking":
|
||||
case "stretch_2":
|
||||
case "stretch":
|
||||
case "spin":
|
||||
case "scratch_head":
|
||||
case "blush":
|
||||
case "hands_behind_head":
|
||||
case "hands_on_hips":
|
||||
case "hands_on_hips_2":
|
||||
case "hands_together":
|
||||
case "lean_forward":
|
||||
case "lean_left":
|
||||
case "lean_right":
|
||||
case "look_around":
|
||||
case "play_with_hair":
|
||||
return {
|
||||
action: setLainMoveState,
|
||||
value: eventState.event,
|
||||
|
|
|
@ -102,7 +102,7 @@ const handleMainSceneEvent = (gameContext: any) => {
|
|||
case "TRIANGLE":
|
||||
return { event: "pause_game" };
|
||||
case "SPACE":
|
||||
return { event: "test", siteRotY: siteRotY };
|
||||
return { event: "play_with_hair", siteRotY: siteRotY };
|
||||
}
|
||||
|
||||
return {
|
||||
|
|
Loading…
Reference in a new issue