Skip to content
Snippets Groups Projects
Commit b13cffa1 authored by jeongtae Lee's avatar jeongtae Lee
Browse files

modify human model and make moveTorso

parent a1ff9c1f
No related branches found
No related tags found
No related merge requests found
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Subway Surfer</title> <title>Subway Surfer</title>
<script src="../common/webgl-utils.js"></script> <script src="../common/webgl-utils.js"></script>
...@@ -17,6 +18,7 @@ ...@@ -17,6 +18,7 @@
} }
</style> </style>
</head> </head>
<body> <body>
<canvas id="gl-canvas" width="512" height="512"></canvas> <canvas id="gl-canvas" width="512" height="512"></canvas>
<button id="restart-button" onclick="startGame()">Restart</button> <button id="restart-button" onclick="startGame()">Restart</button>
...@@ -41,4 +43,5 @@ ...@@ -41,4 +43,5 @@
} }
</script> </script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -38,18 +38,18 @@ var leftLowerLegId = 7; ...@@ -38,18 +38,18 @@ var leftLowerLegId = 7;
var rightUpperLegId = 8; var rightUpperLegId = 8;
var rightLowerLegId = 9; var rightLowerLegId = 9;
var scaleFactor = 0.5; // 전체 크기를 줄이기 위한 스케일 팩터 var scaleFactor = 0.5; // ��ü ũ�⸦ ���̱� ���� ������ ����
var torsoHeight = 2.0 * scaleFactor; var torsoHeight = 1.4 * scaleFactor;
var torsoWidth = 1.5 * scaleFactor; var torsoWidth = 1.2 * scaleFactor;
var upperArmHeight = 1.0 * scaleFactor; var upperArmHeight = 0.8 * scaleFactor;
var lowerArmHeight = 1.0 * scaleFactor; var lowerArmHeight = 0.7 * scaleFactor;
var upperArmWidth = 0.5 * scaleFactor; var upperArmWidth = 0.5 * scaleFactor;
var lowerArmWidth = 0.5 * scaleFactor; var lowerArmWidth = 0.4 * scaleFactor;
var upperLegWidth = 0.5 * scaleFactor; var upperLegWidth = 0.5 * scaleFactor;
var lowerLegWidth = 0.5 * scaleFactor; var lowerLegWidth = 0.4 * scaleFactor;
var lowerLegHeight = 1.0 * scaleFactor; var lowerLegHeight = 1.0 * scaleFactor;
var upperLegHeight = 1.0 * scaleFactor; var upperLegHeight = 0.8 * scaleFactor;
var headHeight = 0.75 * scaleFactor; var headHeight = 0.75 * scaleFactor;
var headWidth = 0.75 * scaleFactor; var headWidth = 0.75 * scaleFactor;
...@@ -59,7 +59,8 @@ var numNodes = 10; ...@@ -59,7 +59,8 @@ var numNodes = 10;
var numAngles = 11; var numAngles = 11;
var angle = 0; var angle = 0;
var theta = [0, 0, 0, 0, 0, 0, 180, 0, 180, 0, 0]; var theta = [0, 0, 180, 110, 180, 110, 180, 0, 180, 0, 0];
var moveTorso = [0, 0, 0];
var stack = []; var stack = [];
var figure = []; var figure = [];
...@@ -138,26 +139,27 @@ function initNodes(Id) { ...@@ -138,26 +139,27 @@ function initNodes(Id) {
case torsoId: case torsoId:
m = translate(0.0, 0.5 * torsoHeight, 0.0); m = translate(0.0, 0.5 * torsoHeight, 0.0);
m = mult(m, rotate(theta[torsoId], 0, 1, 0)); m = mult(m, rotate(theta[torsoId], 0, 1, 0));
m = mult(m, translate(moveTorso[0], moveTorso[1], moveTorso[2]));
figure[torsoId] = createNode(m, torso, null, headId); figure[torsoId] = createNode(m, torso, null, headId);
break; break;
case headId: case headId:
case head1Id: case head1Id:
case head2Id: case head2Id:
m = translate(0.0, torsoHeight + 0.5 * headHeight, 0.0); m = translate(0.0, torsoHeight + 0.36 * headHeight, 0.0);
m = mult(m, rotate(theta[head1Id], 1, 0, 0)); m = mult(m, rotate(theta[head1Id], 1, 0, 0));
m = mult(m, rotate(theta[head2Id], 0, 1, 0)); m = mult(m, rotate(theta[head2Id], 0, 1, 0));
figure[headId] = createNode(m, head, leftUpperArmId, null); figure[headId] = createNode(m, head, leftUpperArmId, null);
break; break;
case leftUpperArmId: case leftUpperArmId:
m = translate(-0.5 * (torsoWidth + upperArmWidth), 0.9 * torsoHeight, 0.0); // 팔을 몸통에 더 가깝게 붙임 m = translate(-0.5 * (torsoWidth + upperArmWidth), 1.03 * torsoHeight, 0.0); // ���� ���뿡 �� ������ ����
m = mult(m, rotate(theta[leftUpperArmId], 1, 0, 0)); m = mult(m, rotate(theta[leftUpperArmId], 1, 0, 0));
figure[leftUpperArmId] = createNode(m, leftUpperArm, rightUpperArmId, leftLowerArmId); figure[leftUpperArmId] = createNode(m, leftUpperArm, rightUpperArmId, leftLowerArmId);
break; break;
case rightUpperArmId: case rightUpperArmId:
m = translate(0.5 * (torsoWidth + upperArmWidth), 0.9 * torsoHeight, 0.0); // 팔을 몸통에 더 가깝게 붙임 m = translate(0.5 * (torsoWidth + upperArmWidth), 1.03 * torsoHeight, 0.0); // ���� ���뿡 �� ������ ����
m = mult(m, rotate(theta[rightUpperArmId], 1, 0, 0)); m = mult(m, rotate(theta[rightUpperArmId], 1, 0, 0));
figure[rightUpperArmId] = createNode(m, rightUpperArm, leftUpperLegId, rightLowerArmId); figure[rightUpperArmId] = createNode(m, rightUpperArm, leftUpperLegId, rightLowerArmId);
break; break;
...@@ -341,7 +343,7 @@ window.onload = function init() { ...@@ -341,7 +343,7 @@ window.onload = function init() {
projectionMatrixLoc = gl.getUniformLocation(program, "projectionMatrix"); projectionMatrixLoc = gl.getUniformLocation(program, "projectionMatrix");
gl.uniformMatrix4fv(projectionMatrixLoc, false, flatten(projectionMatrix)); gl.uniformMatrix4fv(projectionMatrixLoc, false, flatten(projectionMatrix));
viewMatrix = lookAt(vec3(0, 2, 6), vec3(0, 0, -30), vec3(0, 1, 0)); // Adjusted for better perspective viewMatrix = lookAt(vec3(0, 2, 6), vec3(0, 0, -30), vec3(0, 1, 0)); // Adjusted for better perspective // origin:0,2,6
viewMatrixLoc = gl.getUniformLocation(program, "viewMatrix"); viewMatrixLoc = gl.getUniformLocation(program, "viewMatrix");
gl.uniformMatrix4fv(viewMatrixLoc, false, flatten(viewMatrix)); gl.uniformMatrix4fv(viewMatrixLoc, false, flatten(viewMatrix));
...@@ -378,7 +380,7 @@ function startGame() { ...@@ -378,7 +380,7 @@ function startGame() {
score = 0; score = 0;
obstacles = []; obstacles = [];
currentLane = 1; currentLane = 1;
player.position = vec3(lanes[currentLane], 0, 0); player.position = vec3(moveTorso[0], moveTorso[1], moveTorso[2]);
document.getElementById("restart-button").style.display = "none"; document.getElementById("restart-button").style.display = "none";
render(); render();
...@@ -393,12 +395,13 @@ function handleKeyDown(event) { ...@@ -393,12 +395,13 @@ function handleKeyDown(event) {
if (currentLane < 2) currentLane++; if (currentLane < 2) currentLane++;
break; break;
} }
player.position[0] = lanes[currentLane]; moveTorso[0] = lanes[currentLane];
player.position[0] = moveTorso[0];
} }
function createPlayer() { function createPlayer() {
return { return {
position: vec3(lanes[currentLane], 0, 0), // Y-coordinate fixed at 0 position: vec3(moveTorso[0], moveTorso[1], moveTorso[2]) // Y-coordinate fixed at 0
}; };
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment