diff --git a/docs/assets/images/level.png b/docs/assets/images/level.png
new file mode 100644
index 0000000..4af8de3
Binary files /dev/null and b/docs/assets/images/level.png differ
diff --git a/docs/assets/images/level_2.png b/docs/assets/images/level_2.png
new file mode 100644
index 0000000..b2bd9ef
Binary files /dev/null and b/docs/assets/images/level_2.png differ
diff --git a/docs/assets/js/index.js b/docs/assets/js/index.js
index b288566..7c59cf5 100644
--- a/docs/assets/js/index.js
+++ b/docs/assets/js/index.js
@@ -3,7 +3,9 @@ var page_preloader = new Preloader();
page_preloader.show(true);
images = [
- ""
+ "assets/images/",
+ "level.png",
+ "level_2.png"
];
audio = [
@@ -18,13 +20,14 @@ var globalStates = {
end: 4,
building: 5
};
-var globalState = globalStates.playing;
+var globalState = globalStates.titleScreen;
function update() {
+
switch (globalState) {
// title screen
case globalStates.titleScreen:
-
+ handleTitleScreen();
break;
// level transition
case globalStates.levelTransition:
@@ -60,7 +63,7 @@ function draw() {
switch (globalState) {
// title screen
case globalStates.titleScreen:
-
+ drawTitleScreen();
break;
// level transition
case globalStates.levelTransition:
@@ -68,8 +71,9 @@ function draw() {
break;
// playing
case globalStates.playing:
- camera.zoom = 2;
+ camera.zoom = 1;
drawWorldBlocks();
+ imgIgnoreCutoff(sprites.level_2,0,0,0,4,4);
player.draw();
break;
// paused
@@ -82,6 +86,7 @@ function draw() {
break;
//building - to be used only in development
case globalStates.building:
+
buildDraw();
break;
}
diff --git a/docs/assets/js/player/player.js b/docs/assets/js/player/player.js
index 67490a5..1d1e94b 100644
--- a/docs/assets/js/player/player.js
+++ b/docs/assets/js/player/player.js
@@ -37,7 +37,8 @@ Player.prototype.update = function() {
// select
if (this.shouldMoveLeg) {
this.moveLeg();
- if(mousePress[0]) {// if (collidingWithWorld({ x: curLeg.x2, y: curLeg.y2, w: 4, h: 4 })) {
+ if(mousePress[0] && collidingWithWorld({x: curLeg.x2, y: curLeg.y2, w:8, h:8})) {
+
if (this.legSelected === "R") {
this.leftLeg.angle += pi;
} else {
@@ -95,17 +96,19 @@ Player.prototype.moveLeg = function(){
// move selected leg towards mouse
// console.log(curLeg.angle.toPrecision(5),pointTo(curLeg,target).toPrecision(5));
- curLeg.angle = turn(curLeg.angle, pointTo(curLeg, target), constants.player.leg_speed);
+ var angleDif = turn(curLeg.angle, pointTo(curLeg, target), constants.player.leg_speed) - curLeg.angle;
+ curLeg.angle += angleDif;
// var angle = pointTo(curLeg,target);
curLeg.x2 = curLeg.x + curLeg.len * Math.cos(curLeg.angle);
curLeg.y2 = curLeg.y + curLeg.len * Math.sin(curLeg.angle);
// Collision
- if(collidingWithWorld({x:curLeg.x2,y:curLeg.y2,w:4,h:4})){
+ if(collidingWithWorld({x:curLeg.x2,y:curLeg.y2,w:2,h:2})){
this.collided = true;
curLeg.x2 = lastX;
curLeg.y2 = lastY;
+ curLeg.angle -= angleDif;
return 0;
}
@@ -243,5 +246,5 @@ function distanceToLineSegment(lx1, ly1, lx2, ly2, px, py) {
-var player = new Player(500,100);
+var player = new Player(500,-100);
diff --git a/docs/assets/js/titleScreen/titleScreen.js b/docs/assets/js/titleScreen/titleScreen.js
index e69de29..3e8e08e 100644
--- a/docs/assets/js/titleScreen/titleScreen.js
+++ b/docs/assets/js/titleScreen/titleScreen.js
@@ -0,0 +1,81 @@
+var titleScreenState = "main"
+var cursor = mousePos;
+var timer = 0;
+
+function handleTitleScreen(){
+
+ switch(titleScreenState){
+
+ case("main"):
+ handleMainScreen();
+ break;
+ case("credits"):
+ handleCredits();
+ break;
+
+
+
+ }
+
+
+}
+
+
+function handleMainScreen(){
+ if(timer > 20){
+ if(rectpoint({x:415, y:200, w: 300, h: 50}, {x:cursor.x, y:cursor.y}) && mouseDown[0]){
+ globalState = globalStates.playing;
+ timer = 0;
+ }
+ if(rectpoint({x:415, y:550, w: 300, h: 50}, {x:cursor.x, y:cursor.y}) && mouseDown[0]){
+ titleScreenState = "credits"
+ timer = 0;
+ }
+ }else{
+ timer++;
+ }
+}
+
+
+function handleCredits(){
+
+ if(timer > 20){
+ if(rectpoint({x:395, y:550, w: 140, h: 50}, {x:cursor.x, y:cursor.y}) && mouseDown[0]){
+ titleScreenState = "main";
+ timer = 0;
+ }
+ }else{
+ timer++;
+ }
+
+
+}
+
+
+
+function drawTitleScreen(){
+
+ if(titleScreenState === "main"){
+ text("GAME TITLE HERE", 50, 50, "green", 8, 1000);
+ rect(415, 200, 300, 50, "green");
+ text("Play!", 355, 185, "white", 5, 150);
+
+ rect(415, 550, 300, 50, "green");
+ text("Credits", 325, 535, "white", 5, 150);
+ }
+
+ if(titleScreenState === "credits"){
+ text("CREDITS", 250, 50, "green", 8, 300);
+
+
+
+ rect(395, 550, 140, 50, "green");
+ text("Back", 345, 535, "white", 5, 150);
+
+ }
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/docs/assets/js/world/level.js b/docs/assets/js/world/level.js
index ae5e364..fe6f783 100644
--- a/docs/assets/js/world/level.js
+++ b/docs/assets/js/world/level.js
@@ -12,7 +12,7 @@ class block {
}
// create blocks
-var blockData = [631,407,590,461,316,427,40,420,277,447,40,380,238,466,40,340,199,486,40,300,161,507,40,260,121,527,40,220,82,545,40,180,-407,561,1300,150,-1000,350,120,570,-281,483,120,70,-191,481,35,35,878,145,95,776,734,172,195,76];
+var blockData = [942,-184,94,507,942,191,94,507,372,411,1054,67,-316,369,1214,152,-38,270,86,107,-166,243,125,127,238,320,45,127,273,284,45,127,309,248,45,127,341,215,45,127,377,179,45,127,412,143,45,127,450,107,45,127,603,105,285,196,777,27,285,196,-989,23,175,959,154,-441,2555,51];
for (let i = 0, l = blockData.length; i < l; i += 4) {
collisionRects.push(new block(blockData[i], blockData[i + 1], blockData[i + 2], blockData[i + 3]));
}
diff --git a/docs/index.html b/docs/index.html
index 1408db0..badf7e9 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -37,7 +37,7 @@
-
+
@@ -46,7 +46,7 @@
-
+