summaryrefslogtreecommitdiff
path: root/v3.html
diff options
context:
space:
mode:
authorJules <jules@asdf.us>2016-11-10 15:34:53 -0500
committerJules <jules@asdf.us>2016-11-10 15:34:53 -0500
commitdc06cab69f9e871aa8f7f519c964cf632d2217ea (patch)
tree1c9344a58185c55f90c9b0db7f87c478e5d9a947 /v3.html
meatheadzHEADmaster
Diffstat (limited to 'v3.html')
-rwxr-xr-xv3.html501
1 files changed, 501 insertions, 0 deletions
diff --git a/v3.html b/v3.html
new file mode 100755
index 0000000..8b378d5
--- /dev/null
+++ b/v3.html
@@ -0,0 +1,501 @@
+<!doctype html>
+<html>
+<head>
+<title></title>
+<style type="text/css">
+body
+ {
+ background-color: #fff;
+ padding: 0; margin: 0;
+ }
+#playground
+ {
+ }
+#hud
+ {
+ font-family: sans-serif;
+ position: fixed;
+ top: 10px;
+ right: 10px;
+ width: 300px;
+ font-size: 14px
+ padding: 5px;
+ opacity: 0.7;
+ color: #000;
+ background: #fff;
+ z-index: 666;
+ }
+</style>
+</head>
+<body>
+
+<div id="playground">
+</div>
+
+<div id="hud"></div>
+
+</body>
+<script type="text/javascript" src="/js/jquery.js"></script>
+<script type="text/javascript" src="jquery.gamequery-0.5.1.js"></script>
+<script type="text/javascript">
+var PLAYGROUND_WIDTH = $(window).width() // 900
+var PLAYGROUND_HEIGHT = $(window).height() // 600
+var REFRESH_RATE = 30
+
+$(function ()
+ {
+ var KEY_LEFT = 37
+ var KEY_UP = 38
+ var KEY_RIGHT = 39
+ var KEY_DOWN = 40
+ var KEYTRACK =
+ {
+ KEY_LEFT: false,
+ KEY_UP: false,
+ KEY_RIGHT: false,
+ KEY_DOWN: false,
+ }
+ var IDLE = 0
+ var RUNNING = 1
+ var JUMPING = 2
+ var RUNNING_AND_JUMPING = 3
+ var SWIMMING = 4
+ var DIVING = 5
+
+ var RIGHT = 0
+ var LEFT = 1
+
+ var DUDE_STATE =
+ {
+ IDLE_RIGHT: 0,
+ IDLE_LEFT: 1,
+ RUN_RIGHT: 2,
+ RUN_LEFT: 3,
+ JUMPING_RIGHT: 4,
+ JUMPING_LEFT: 5,
+ RUNNING_AND_JUMPING_RIGHT: 6,
+ RUNNING_AND_JUMPING_LEFT: 7,
+ }
+
+ $("#playground").playground({height: PLAYGROUND_HEIGHT, width: PLAYGROUND_WIDTH, refreshRate: REFRESH_RATE, keyTracker: false})
+
+ function update_animation (sprite, actor)
+ {
+ new_state = actor.activity * 2 + actor.orientation
+ if (actor.state === new_state)
+ return
+ old_anim = actor.animations[actor.state]
+ new_anim = actor.animations[new_state]
+ actor.state = new_state
+ dude.y += new_anim.deltaY - old_anim.deltaY
+ dude.x += new_anim.deltaX - old_anim.deltaX
+ sprite.setAnimation(new_anim.animation)
+ .width(new_anim.width)
+ .height(new_anim.height)
+ .css("top", sprite.position().top + new_anim.deltaY - old_anim.deltaY)
+ .css("left", sprite.position().left + new_anim.deltaX - old_anim.deltaX)
+ }
+ var stage =
+ {
+ x: 0,
+ y: 0,
+ sea_distance: 2000,
+ scroll: function ()
+ {
+ $("#sand").css({"left": stage.x})
+ $("#sea").css({"left": stage.sea_distance + stage.x})
+ },
+ }
+ var FLOOR_HEIGHT = 115
+ var sky = new $.gameQuery.Animation({imageURL: "./sky.png"})
+ var sand = new $.gameQuery.Animation({imageURL: "./sand.png"})
+ var sea = new $.gameQuery.Animation({imageURL: "./sea.png"})
+ $.playground()
+ .addSprite( "sky",
+ {
+ posx: 0,
+ posy: 0,
+ width: PLAYGROUND_WIDTH,
+ height: PLAYGROUND_HEIGHT,
+ animation: sky,
+ })
+ .addSprite( "sand",
+ {
+ posx: 0,
+ posy: PLAYGROUND_HEIGHT - FLOOR_HEIGHT,
+ width: stage.sea_distance,
+ height: FLOOR_HEIGHT,
+ animation: sand,
+ })
+ .addSprite( "sea",
+ {
+ posx: stage.sea_distance,
+ posy: PLAYGROUND_HEIGHT - FLOOR_HEIGHT,
+ width: PLAYGROUND_WIDTH,
+ height: FLOOR_HEIGHT,
+ animation: sea,
+ })
+ .addGroup("actors").end()
+ $("#sceengraph").css("background-color", "#88dddd")
+
+ MAX_YSPEED = 10
+ RUN_SPEED = 10
+ GRAVITY = 1
+ TERMINAL_VELOCITY = 10
+ JUMP_POWER = 10
+
+ FLOOR_DEPTH = 30
+ DUDE_WIDTH = 140
+ DUDE_HEIGHT = 231
+ DUDE_START_X = 250
+ DUDE_START_Y = PLAYGROUND_HEIGHT - DUDE_HEIGHT - FLOOR_HEIGHT + FLOOR_DEPTH + TERMINAL_VELOCITY
+ var dude =
+ {
+ state: DUDE_STATE.IDLE_RIGHT,
+ activity: IDLE,
+ orientation: RIGHT,
+ can_jump: true,
+ running_while_jumping: true,
+ xspeed: 0,
+ yspeed: 0,
+ x: DUDE_START_X,
+ y: DUDE_START_Y,
+ width: DUDE_WIDTH,
+ height: DUDE_HEIGHT-10,
+ animations:
+ [
+ // IDLE
+ {
+ animation: new $.gameQuery.Animation(
+ {
+ imageURL: "sprites/manstandingsprite.png",
+ numberOfFrame: 8,
+ delta: DUDE_HEIGHT-2,
+ rate: REFRESH_RATE*1.5,
+ type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK
+ }),
+ deltaX: 0,
+ deltaY: 0,
+ width: DUDE_WIDTH,
+ height: DUDE_HEIGHT-20,
+ },
+ {
+ animation: new $.gameQuery.Animation(
+ {
+ imageURL: "sprites/manstandingsprite_left.png",
+ numberOfFrame: 8,
+ delta: DUDE_HEIGHT-2,
+ rate: REFRESH_RATE*1.5,
+ type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK
+ }),
+ deltaX: 0,
+ deltaY: 0,
+ width: DUDE_WIDTH,
+ height: DUDE_HEIGHT-20,
+ },
+ // RUNNING
+ {
+ animation: new $.gameQuery.Animation(
+ {
+ imageURL: "sprites/manrunningsprite.png",
+ numberOfFrame: 15,
+ delta: 226,
+ rate: REFRESH_RATE*1,
+ type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK
+ }),
+ deltaX: 0,
+ deltaY: 0,
+ width: 140,
+ height: 214,
+ },
+ {
+ animation: new $.gameQuery.Animation(
+ {
+ imageURL: "sprites/manrunningsprite_left.png",
+ numberOfFrame: 15,
+ delta: 226,
+ rate: REFRESH_RATE*1,
+ type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK
+ }),
+ deltaX: 0,
+ deltaY: 0,
+ width: 140,
+ height: 214,
+ },
+ // JUMPING
+ {
+ animation: new $.gameQuery.Animation(
+ {
+ imageURL: "sprites/manstandingsprite.png",
+ numberOfFrame: 8,
+ delta: DUDE_HEIGHT-2,
+ rate: REFRESH_RATE*1.5,
+ type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK
+ }),
+ deltaX: 0,
+ deltaY: 0,
+ width: DUDE_WIDTH,
+ height: DUDE_HEIGHT-20,
+ },
+ {
+ animation: new $.gameQuery.Animation(
+ {
+ imageURL: "sprites/manstandingsprite_left.png",
+ numberOfFrame: 8,
+ delta: DUDE_HEIGHT-2,
+ rate: REFRESH_RATE*1.5,
+ type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK
+ }),
+ deltaX: 0,
+ deltaY: 0,
+ width: DUDE_WIDTH,
+ height: DUDE_HEIGHT-20,
+ },
+ // RUNNING AND JUMPING
+ {
+ animation: new $.gameQuery.Animation(
+ {
+ imageURL: "sprites/manstandingsprite.png",
+ numberOfFrame: 8,
+ delta: DUDE_HEIGHT-2,
+ rate: REFRESH_RATE*1.5,
+ type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK
+ }),
+ deltaX: 0,
+ deltaY: 0,
+ width: DUDE_WIDTH,
+ height: DUDE_HEIGHT-20,
+ },
+ {
+ animation: new $.gameQuery.Animation(
+ {
+ imageURL: "sprites/manstandingsprite_left.png",
+ numberOfFrame: 8,
+ delta: DUDE_HEIGHT-2,
+ rate: REFRESH_RATE*1.5,
+ type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK
+ }),
+ deltaX: 0,
+ deltaY: 0,
+ width: DUDE_WIDTH,
+ height: DUDE_HEIGHT-20,
+ },
+ ],
+ }
+ $("#actors").addSprite("dude",
+ {
+ posx: DUDE_START_X,
+ posy: DUDE_START_Y,
+ width: DUDE_WIDTH,
+ height: DUDE_HEIGHT-20,
+ animation: dude.animations[0].animation,
+ geometry: $.gameQuery.GEOMETRY_RECTANGLE,
+ // callback: animate,
+ })
+ $("#dude").data("actor", dude)
+
+ $(window).bind("blur", function (e)
+ {
+ $.each(KEYTRACK, function (k,v) { KEYTRACK[k] = false })
+ })
+ $(document).bind("keydown", function (e)
+ {
+ KEYTRACK[e.keyCode] = true
+ switch (e.keyCode)
+ {
+ case KEY_RIGHT:
+ dude.orientation = RIGHT
+ break
+ case KEY_LEFT:
+ dude.orientation = LEFT
+ break
+ case KEY_UP:
+ break
+ case KEY_DOWN:
+ break
+ }
+ })
+ $(document).bind("keyup", function (e)
+ {
+ KEYTRACK[e.keyCode] = false
+ switch (e.keyCode)
+ {
+ case KEY_RIGHT:
+ break
+ case KEY_LEFT:
+ break
+ case KEY_UP:
+ break
+ case KEY_DOWN:
+ break
+ }
+ })
+
+ WATER_LINE = 10000
+ function actor_has_landed (actor)
+ {
+ if (actor.x < WATER_LINE)
+ return (actor.y + actor.height) > (PLAYGROUND_HEIGHT - FLOOR_HEIGHT + FLOOR_DEPTH - TERMINAL_VELOCITY)
+ else
+ return true
+ }
+ $.playground().registerCallback( function ()
+ {
+ switch (dude.activity)
+ {
+ case IDLE:
+ dude.can_jump = true
+ if (KEYTRACK[KEY_UP])
+ {
+ dude.yspeed -= JUMP_POWER
+ dude.activity = JUMPING
+ }
+ else if (KEYTRACK[KEY_LEFT])
+ {
+ dude.xspeed = -1 * RUN_SPEED
+ dude.activity = RUNNING
+ }
+ else if (KEYTRACK[KEY_RIGHT])
+ {
+ dude.xspeed = RUN_SPEED
+ dude.activity = RUNNING
+ }
+ break
+ case RUNNING:
+ if (KEYTRACK[KEY_UP])
+ {
+ dude.yspeed -= JUMP_POWER
+ dude.activity = RUNNING_AND_JUMPING
+ }
+ else if (KEYTRACK[KEY_LEFT])
+ {
+ dude.orientation = LEFT
+ dude.xspeed = -1 * RUN_SPEED
+ if (dude.x <= -dude.width + 80)
+ dude.x = PLAYGROUND_WIDTH
+ }
+ else if (KEYTRACK[KEY_RIGHT])
+ {
+ dude.orientation = RIGHT
+ dude.xspeed = RUN_SPEED
+ if (dude.x >= PLAYGROUND_WIDTH)
+ dude.x = -dude.width
+ }
+ else
+ {
+ dude.activity = IDLE
+ dude.xspeed = 0
+ }
+ break
+ case JUMPING:
+ dude.yspeed = dude.yspeed + GRAVITY
+ if (dude.yspeed > TERMINAL_VELOCITY)
+ dude.yspeed = TERMINAL_VELOCITY
+ if (actor_has_landed(dude))
+ {
+ dude.xspeed = 0
+ dude.yspeed = 0
+ dude.activity = IDLE
+ }
+ else if (KEYTRACK[KEY_LEFT])
+ {
+ dude.activity = RUNNING_AND_JUMPING
+ dude.xspeed = -1 * RUN_SPEED
+ }
+ else if (KEYTRACK[KEY_RIGHT])
+ {
+ dude.activity = RUNNING_AND_JUMPING
+ dude.xspeed = RUN_SPEED
+ }
+ break
+ case RUNNING_AND_JUMPING:
+ dude.yspeed = dude.yspeed + GRAVITY
+ if (dude.yspeed > TERMINAL_VELOCITY)
+ dude.yspeed = TERMINAL_VELOCITY
+ if (actor_has_landed(dude))
+ {
+ dude.yspeed = 0
+ if (KEYTRACK[KEY_UP])
+ dude.yspeed -= JUMP_POWER
+ else
+ dude.activity = RUNNING
+ }
+ else if (KEYTRACK[KEY_LEFT])
+ {
+ dude.xspeed = -1 * RUN_SPEED
+ dude.orientation = LEFT
+ dude.activity = RUNNING_AND_JUMPING
+ if (dude.x <= -dude.width + 80)
+ dude.x = PLAYGROUND_WIDTH
+ }
+ else if (KEYTRACK[KEY_RIGHT])
+ {
+ dude.xspeed = RUN_SPEED
+ dude.orientation = RIGHT
+ dude.activity = RUNNING_AND_JUMPING
+ if (dude.x >= PLAYGROUND_WIDTH)
+ dude.x = -dude.width
+ }
+ else
+ {
+ dude.activity = JUMPING
+ }
+ break
+ }
+
+ if (stage.x === 0)
+ {
+ if (KEYTRACK[KEY_LEFT] || dude.x < 310)
+ dude.x += dude.xspeed
+ else
+ {
+ stage.x -= dude.xspeed
+ if (stage.x > 0)
+ stage.x = 0
+ }
+ if (dude.x < 0)
+ {
+ dude.x = 0
+ dude.activity = IDLE
+ }
+ }
+ else if (stage.x > -1* (stage.sea_distance - 550)) // || dude.orientation === LEFT)
+ {
+ stage.x -= dude.xspeed
+ }
+ else
+ {
+ dude.x += dude.xspeed
+ if (dude.x > 400)
+ {
+ dude.x = 400
+ if (dude.activity === JUMPING)
+ {
+ }
+ else if (dude.activity === RUNNING_AND_JUMPING)
+ {
+ dude.activity = JUMPING
+ }
+ else
+ dude.activity = IDLE
+ }
+ else if (dude.x < 350)
+ stage.x -= dude.xspeed
+ }
+ dude.y += dude.yspeed
+ $("#dude").css({"top": dude.y, "left": dude.x})
+ update_animation($("#dude"), dude)
+ stage.scroll ()
+ $("#hud").html(
+ [
+ "dude @ ", dude.x, " ", dude.y, "<br/>",
+ "stage @ ", stage.x, " ", stage.y, "<br/>",
+ ].join(" "))
+ }, REFRESH_RATE)
+ $.playground().startGame(function ()
+ {
+ })
+ })
+
+</script>
+</html>