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가 된다.
[구현]
'웹개발 자료실 > 웹게임제작 Code' 카테고리의 다른 글
「zim.js」보드게임 제작 (0) | 2021.08.29 |
---|---|
「zim.js」2D 어드벤처 게임 제작 (0) | 2021.08.01 |
「zim.js」 물리엔진 적용(2) (0) | 2021.07.25 |
「zim.js」 물리엔진 적용하기(1) (0) | 2021.07.25 |
「zim.js」 낙하게임 제작 (0) | 2021.07.19 |
댓글