@@ -2,84 +2,84 @@ import { createLevelDataHelpers } from "~/lib/zustand/data";
22import { useGameStore } from "~/lib/zustand/game" ;
33import { getKaplayCtx } from "../core/kaplay-ctx" ;
44import {
5- addBackgrounds ,
6- addGameobjects ,
7- animPlayer ,
8- handleReset ,
5+ addBackgrounds ,
6+ addGameobjects ,
7+ animPlayer ,
8+ handleReset ,
99} from "../utils/game-helper" ;
1010
1111export const initializeGravity = ( ) => {
12- const { k, game } = getKaplayCtx ( ) ;
13- const dataHelper = createLevelDataHelpers ( "gravity" ) ;
14-
15- addBackgrounds ( [ "default" ] ) ;
16-
17- const { raccoon, trashcanFilled } = addGameobjects ( [
18- "raccoon" ,
19- "trashcanFilled" ,
20- ] ) ;
21-
22- const floor = k . add ( [
23- k . rect ( 50 , 10 ) ,
24- k . anchor ( "top" ) ,
25- k . pos ( 0 , 0 ) ,
26- k . area ( ) ,
27- k . body ( { isStatic : true } ) ,
28- k . opacity ( 0 ) ,
29- ] ) ;
30-
31- trashcanFilled . use ( k . body ( ) ) ;
32- trashcanFilled . use ( k . area ( {
33- shape : new k . Rect ( k . vec2 ( 0 , 0 ) , 16 , 16 ) ,
34- offset : k . vec2 ( 0 , 0 ) ,
35- } ) ) ;
36-
37- trashcanFilled . pos . x = 5 ;
38- trashcanFilled . pos . y = - 10 ;
39-
40- let trashcanVely = 0 ;
41-
42- game . onUpdate ( ( ) => {
43- if ( useGameStore . getState ( ) . isPaused ) return ;
44-
45- animPlayer ( raccoon , k , {
46- movementMode : "keyboard" ,
47- updateStoreData : false ,
48- camClampX : {
49- min : - 8 ,
50- max : 12 ,
51- } ,
52- playerClampX : {
53- min : - 12 ,
54- max : 20 ,
55- } ,
56- } ) ;
57-
58- trashcanVely = dataHelper . getData ( "trashcanFilled" , "y vel" ) ;
59-
60- if ( trashcanFilled . pos . y < 0 ) {
61- trashcanFilled . pos . y = trashcanFilled . pos . y + trashcanVely ;
62- }
63- else {
64- trashcanFilled . use ( k . body ( { isStatic : true } ) ) ;
65- }
66-
67- raccoon . pos . y = dataHelper . getData ( "raccoon" , "y pos" ) ;
68-
69- dataHelper . setData ( "trashcanFilled" , "y vel" , ( ) => trashcanVely ) ;
70- dataHelper . setData ( "raccoon" , "y pos" , ( ) => raccoon . pos . y ) ;
71-
72-
73- const trashcanTop = trashcanFilled . pos . sub ( k . vec2 ( 0 , 2 ) ) ;
74-
75- if ( raccoon . pos . dist ( trashcanTop ) <= 1 ) {
76- useGameStore . getState ( ) . setLevelCompleted ( true ) ;
77- }
78-
79- if ( dataHelper . initData ( ) ) {
80- handleReset ( raccoon , 1 ) ;
81- trashcanFilled . pos . x = 5 ;
82- trashcanFilled . pos . y = - 10 ;
83- }
12+ const { k, game } = getKaplayCtx ( ) ;
13+ const dataHelper = createLevelDataHelpers ( "gravity" ) ;
14+
15+ addBackgrounds ( [ "default" ] ) ;
16+
17+ const { raccoon, trashcanFilled } = addGameobjects ( [
18+ "raccoon" ,
19+ "trashcanFilled" ,
20+ ] ) ;
21+
22+ const floor = k . add ( [
23+ k . rect ( 50 , 10 ) ,
24+ k . anchor ( "top" ) ,
25+ k . pos ( 0 , 0 ) ,
26+ k . area ( ) ,
27+ k . body ( { isStatic : true } ) ,
28+ k . opacity ( 0 ) ,
29+ ] ) ;
30+
31+ trashcanFilled . use ( k . body ( ) ) ;
32+ trashcanFilled . use (
33+ k . area ( {
34+ shape : new k . Rect ( k . vec2 ( 0 , 0 ) , 16 , 16 ) ,
35+ offset : k . vec2 ( 0 , 0 ) ,
36+ } )
37+ ) ;
38+
39+ trashcanFilled . pos . x = 5 ;
40+ trashcanFilled . pos . y = - 10 ;
41+
42+ let trashcanVely = 0 ;
43+
44+ game . onUpdate ( ( ) => {
45+ if ( useGameStore . getState ( ) . isPaused ) return ;
46+
47+ animPlayer ( raccoon , k , {
48+ movementMode : "keyboard" ,
49+ updateStoreData : false ,
50+ camClampX : {
51+ min : - 8 ,
52+ max : 12 ,
53+ } ,
54+ playerClampX : {
55+ min : - 12 ,
56+ max : 20 ,
57+ } ,
8458 } ) ;
59+
60+ trashcanVely = dataHelper . getData ( "trashcanFilled" , "y vel" ) ;
61+
62+ if ( trashcanFilled . pos . y < 0 ) {
63+ trashcanFilled . pos . y = trashcanFilled . pos . y + trashcanVely ;
64+ } else {
65+ trashcanFilled . use ( k . body ( { isStatic : true } ) ) ;
66+ }
67+
68+ raccoon . pos . y = dataHelper . getData ( "raccoon" , "y pos" ) ;
69+
70+ dataHelper . setData ( "trashcanFilled" , "y vel" , ( ) => trashcanVely ) ;
71+ dataHelper . setData ( "raccoon" , "y pos" , ( ) => raccoon . pos . y ) ;
72+
73+ const trashcanTop = trashcanFilled . pos . sub ( k . vec2 ( 0 , 2 ) ) ;
74+
75+ if ( raccoon . pos . dist ( trashcanTop ) <= 1 ) {
76+ useGameStore . getState ( ) . setLevelCompleted ( true ) ;
77+ }
78+
79+ if ( dataHelper . initData ( ) ) {
80+ handleReset ( raccoon , 1 ) ;
81+ trashcanFilled . pos . x = 5 ;
82+ trashcanFilled . pos . y = - 10 ;
83+ }
84+ } ) ;
8585} ;
0 commit comments