본문 바로가기

「zim.js」중력게임 만들기

by Recstasy 2021. 7. 29.

 

zim.js물리엔진으로 중력게임의 원리를 알아보자.

대략적인 코드는 아래와 같으며,

 

[코드]

//생략...
      const size = 5000;
      const physics = new Physics({
                        linear : 2,
                        gravity : 0, 
                        borders : new Boundary(0, 0, size, stageH),
                        scroll : true,
                        frame : frame
                      });

      const mainCharacter = new Circle(35, blue)
                            .center(stage)
                            .addPhysics({
                                // restitution : 0.5,
                                density : 8
                            })
                            .follow()
                            .control()
                            .contact(obj=>{
                                if(obj.type == 'Rectangle') obj.color = black;
                            })

      loop(50, ()=>{
          new Rectangle(40, 40, white)
              .centerReg()
              .loc(rand(size), rand(stageH))
              .addPhysics({dynamic:false})
      });

  //생략...

 

사실상 물리엔진을 적용하는 코드가 핵심이다.

 

Physics( )설정이 끝나면,

zim이 제공하는 오브젝트에 addPhysics( )메서드를 적용할 수 있다.

 

위의 코드에서는 'Circle', 'Rectangle(무작위 생성)'객체에 물리엔진을 적용했다.

단, Rectangle객체의 경우, dynamic값을 'false'로 뒀기에

'충돌'에 반응하지 않는 Rigid Body가 된다.

 

zim DOC::Physics

 

 

 

[구현]

 

 

 

댓글

최신글 전체

이미지
제목
글쓴이
등록일