From d5f7c2534d1a4600ad519f448ce36dcf85d3285b Mon Sep 17 00:00:00 2001 From: Markus Scully Date: Fri, 23 Aug 2013 18:16:58 +0100 Subject: [PATCH] Version 0.6.3 Added 2 new particles to shoot. Added sounds for purple particle exploding and for getting points. Added support for shoot per click. Fixed particles shaking in selection box. Made identical level parts after each other far less common. --- explode.wav | Bin 0 -> 14874 bytes level.js | 23 --------- point.wav | Bin 0 -> 11568 bytes sint.js | 138 +++++++++++++++++++++++++++++++++++++++++----------- 4 files changed, 110 insertions(+), 51 deletions(-) create mode 100644 explode.wav create mode 100644 point.wav diff --git a/explode.wav b/explode.wav new file mode 100644 index 0000000000000000000000000000000000000000..ddd1419b7dff6873a387ab4e64b2a43065ee7993 GIT binary patch literal 14874 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 Mh=v&f(F+m<0O{b(z5oCK literal 0 HcmV?d00001 diff --git a/level.js b/level.js index 2a00dda..7b1df6d 100644 --- a/level.js +++ b/level.js @@ -94,29 +94,6 @@ function defineLevels(){ ,'.####################' ,false, '5n', 1, 1, 0 // What type of connection it has left, right, the minimum level it appears, the maximum, and the rarity ], - [ - '...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'...................' - ,'###################' - ,'###################' - ,'###################' - ,'###################' - ,'###################' - ,'5n', '5n', 1, 50, 2 - ], [ '...................' ,'...................' diff --git a/point.wav b/point.wav new file mode 100644 index 0000000000000000000000000000000000000000..de6d6771454e7575114f4198a69168627f6743ff GIT binary patch literal 11568 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 X7$h0Q7#JAd|Nr#=>;E7BfBy#nt6@N# literal 0 HcmV?d00001 diff --git a/sint.js b/sint.js index a33b0a0..97fd169 100644 --- a/sint.js +++ b/sint.js @@ -125,7 +125,9 @@ function reset(){ finTime = false; sound = { shoot1: new Audio('sfx2.wav'), - jump: new Audio('Funk.mp3'), + point: new Audio('point.wav'), + explode: new Audio('explode.wav'), + jump: new Audio('Funk.mp3') } music = { dash: { @@ -223,7 +225,7 @@ function toMenu(){ function play(){ // Create player and its key controller - actors[0] = new Actor(0, 'player', 200, 8, 200, 3, 128, 64, 16, 16); + actors[0] = new Actor(0, 0, 200, 8, 200, 3, 128, 64, 16, 16); controllers[0] = new Controller(actors[0], [[optionvars[4], 'moveRight'], [optionvars[3], 'moveLeft'], [optionvars[2], 'jump'], [27, 'quit'], [90, 'suicide', 0], ['c', 'current'], [optionvars[5], 'next', 0], [optionvars[6], 'prev', 0]]); particles[0] = new Particle('mouse', 0, 'mouse', 10000000000, 0, 0, 0, 0, 0, [0, 0]); // Create reticule @@ -240,6 +242,21 @@ function animate() { loopGame(); } +function control(n){ + if(actors[n]){ + camera = [actors[n]]; + for(var i in ais){ + if(ais[i].actor == actors[n]){ + ais.splice(i, 1); + } + controllers[0] = new Controller(actors[n], [[optionvars[4], 'moveRight'], [optionvars[3], 'moveLeft'], [optionvars[2], 'jump'], [27, 'quit'], [90, 'suicide', 0], ['c', 'current'], [optionvars[5], 'next', 0], [optionvars[6], 'prev', 0]]); + } + + }else{ + return false; + } +} + // Rounds a number. function r(num){ return Math.round(num); @@ -247,7 +264,7 @@ function r(num){ function spawn(no){ for(i = 0 ; i < no; i++){ - actors[actors.length] = new Actor(7, 'all', 1, 6, 50, 3, lookx + 250 + ((Math.random() - 0.5) * 200), 0, 16, 16); + actors[actors.length] = new Actor(7, 1, 1, 6, 50, 3, lookx + 250 + ((Math.random() - 0.5) * 200), 0, 16, 16); ais[ais.length] = new Ai(actors.length - 1, 'alphaBot'); } } @@ -352,10 +369,15 @@ function Controller(object, actions){ this.actor.action(actions[i][1]); } } - if(mouse.down && actions[i][0] == 'c'){ - this.actor.action(actions[i][1]); + if(mouse.down && actions[i][0] == 'c' && singleActionUsed == false){ + if(this.actor.action(actions[i][1])){ + singleActionUsed = true; + } } } + if(!mouse.down){ + singleActionUsed = false; + } this.actor.refreshActions(); } } @@ -443,7 +465,7 @@ function Actor(image, type, health, moveSpeed, energy, powers, xpos, ypos, width this.speed = moveSpeed; this.tookDamage = 0; this.select = 0; - this.powers = 1; + this.powers = 3; this.yvel = 0; this.xvel = 0; this.imageLoad = 2; @@ -476,7 +498,7 @@ function Actor(image, type, health, moveSpeed, energy, powers, xpos, ypos, width switch(type){ case 0: if(this.energy >= 2){ - particles.push(new Particle(0, 0, 0, Math.random() * 500 + 5000, this.x + 8, this.y - 8, Math.cos(angle) * 15 + this.xvel, Math.sin(angle) * 15 + this.yvel, 0.4, [0.997, 0.997])); + particles.push(new Particle(0, this.type, 0, Math.random() * 500 + 5000, this.x + 8, this.y - 8, Math.cos(angle) * 15 + this.xvel, Math.sin(angle) * 15 + this.yvel, 0.4, [0.997, 0.997])); if(distanceToSound < 500){ sound.shoot1.volume = (r(distanceToSound < 100 ? 1 : (500 - distanceToSound) / 400) * optionvars[1]) / 100; sound.shoot1.play(); @@ -484,6 +506,26 @@ function Actor(image, type, health, moveSpeed, energy, powers, xpos, ypos, width this.energy -= 2; } break; + case 1: + if(this.energy >= 3){ + particles.push(new Particle(1, this.type, 4, Math.random() * 500 + 4500, this.x + 8, this.y - 8, Math.cos(angle + ((Math.random() - 0.5) * 0.03)) * 8, Math.sin(angle + ((Math.random() - 0.5) * 0.03)) * 8, 0, [0.999, 0.999])); + if(distanceToSound < 500){ + sound.shoot1.volume = (r(distanceToSound < 100 ? 1 : (500 - distanceToSound) / 400) * optionvars[1]) / 100; + sound.shoot1.play(); + } + this.energy -= 3; + } + break; + case 2: + if(this.energy >= 100){ + particles.push(new Particle(2, 2, 5, 200000, this.x + 8, this.y - 8, Math.cos(angle + ((Math.random() - 0.5) * 0.03)) * 12, Math.sin(angle + ((Math.random() - 0.5) * 0.03)) * 12, 0.5, [0.9975, 0.9975], false)); + if(distanceToSound < 500){ + sound.shoot1.volume = (r(distanceToSound < 100 ? 1 : (500 - distanceToSound) / 400) * optionvars[1]) / 100; + sound.shoot1.play(); + } + this.energy -= 100; + } + break; case 'en1': if(this.energy >= 2){ particles.push(new Particle(0, 1, 1, Math.random() * 500 + 5000, this.x + 8, this.y - 8, Math.cos(this.vars[0]) * 15 + this.xvel, Math.sin(this.vars[0]) * 15 + this.yvel, 0.4, [0.995, 0.995])); @@ -513,6 +555,9 @@ function Actor(image, type, health, moveSpeed, energy, powers, xpos, ypos, width break; case 'current': this.action(this.select); + if(this.select == 2){ + return true; + } break; case 'prev': if(this.powers > 1){ @@ -531,6 +576,7 @@ function Actor(image, type, health, moveSpeed, energy, powers, xpos, ypos, width tomenu = true; break; } + return false; } this.actionsturn.push(type); } @@ -618,12 +664,18 @@ function Item(type, xpos, ypos){ break; case 2: score += 5; + sound.point.volume = optionvars[1] / 150; + sound.point.play(); break; case 3: score += 10; + sound.point.volume = optionvars[1] / 150; + sound.point.play(); break; case 4: score += 20; + sound.point.volume = optionvars[1] / 150; + sound.point.play(); break; } this.deleteme = true; @@ -632,11 +684,12 @@ function Item(type, xpos, ypos){ } } -function Particle(type, affiliation, drawType, lifespan, xpos, ypos, xvel, yvel, gravity, airRes){ +function Particle(type, affiliation, drawType, lifespan, xpos, ypos, xvel, yvel, gravity, airRes, actDeath){ this.gravity = typeof gravty !== 'undefined' ? gravity : 1; this.x = xpos; this.y = ypos; this.drawType = drawType; + this.actDeath = typeof actDeath === 'undefined' ? true : actDeath; this.xvel = xvel; this.yvel = yvel; this.type = type; @@ -655,11 +708,21 @@ function Particle(type, affiliation, drawType, lifespan, xpos, ypos, xvel, yvel, this.box = new Box(this.x, this.y, this.size, this.size, this.xvel, this.yvel, 1, gravity, this.air); this.box.unstuck(); - this.drawBox = function(alpha, width, color, size){ + this.drawBox = function(alpha, width, color, size, fill, rel){ context.globalAlpha = alpha; context.lineWidth = width; + context.beginPath(); context.strokeStyle = color; - context.strokeRect(r(this.x - lookx) + 0.5, r(this.y - looky) + 0.5, size, size); + var add = (width % 2 == 0 ? 0 : 0.5); + var rel = (typeof rel === 'undefined' ? 1 : rel); + context.rect(r(this.x - (lookx * rel)) + add, r(this.y) + add, size, size); + if(typeof fill !== 'undefined'){ + if(fill != false){ + context.fillStyle = fill; + context.fill(); + } + } + context.stroke(); }; this.draw = function(extendSize){ @@ -685,10 +748,13 @@ function Particle(type, affiliation, drawType, lifespan, xpos, ypos, xvel, yvel, this.drawBox(0.5, 1 * extendSize, '#000', 4 * extendSize); break; case 4: + this.drawBox(0.8, 1 * extendSize, '#229', 3 * extendSize); break; case 5: + this.drawBox(1, 2 * extendSize, '#93b', 5 * extendSize, '#b7f'); break; case 6: + this.drawBox(1, 1 * extendSize, '#93b', 2 * extendSize); break; case 7: break; @@ -701,14 +767,23 @@ function Particle(type, affiliation, drawType, lifespan, xpos, ypos, xvel, yvel, for(var k = 0; k < 8; k++){ //(480 - (k * 35)) + lookx; // 293; - this.x = (480.5 - (35 * k)) + r(lookx); + this.x = 480.5 - (35 * k); this.y = 293.5; switch(k){ case 0: this.x -= 2; this.y -= 2; - this.drawBox(1, 1.5, '#66b', 4); + this.drawBox(1, 1.5, '#66b', 4, false, 0); break; + case 1: + this.x -= 3; + this.y -= 3; + this.drawBox(0.8, 2, '#229', 6, false, 0); + break; + case 2: + this.x -= 5; + this.y -= 5; + this.drawBox(1, 3, '#93b', 10, '#b7f', 0); } } this.drawType = 'mouse'; @@ -717,6 +792,7 @@ function Particle(type, affiliation, drawType, lifespan, xpos, ypos, xvel, yvel, } this.simulate = function(){ + var distanceToSound = Math.abs(this.x - lookx - 250); switch(this.type){ case 'mouse': if(this.vars[0] == false){ @@ -749,17 +825,21 @@ function Particle(type, affiliation, drawType, lifespan, xpos, ypos, xvel, yvel, } break; case 0: - /* - for(j in actors){ - if(Math.abs(this.x - (actors[j].x + 8)) < 20 && Math.abs(this.y - (actors[j].y + 8)) < 20){ - this.xvel += (20 - Math.abs(this.x - (actors[j].x + 8))) / (this.x > (actors[j].x + 8) ? 5 : -5); - this.yvel += (20 - Math.abs(this.y - (actors[j].y + 8))) / (this.y > (actors[j].y + 8) ? 5 : -5); - } - } - */ break; case 1: - + break; + case 2: + if(this.yvel == 0){ + this.deleteme = true; + for(var i = 0; i < 100; i++){ + particles[particles.length] = new Particle(3, 2, 6, Math.random() * 500 + 2000, this.x, this.y, (Math.random() - 0.5) * 18, (Math.random() - 0.9) * 9, 0.4, [0.998, 0.998]) + } + sound.explode.volume = (r(distanceToSound < 100 ? 1 : (500 - distanceToSound) / 400) * optionvars[1]) / 400; + sound.explode.play(); + } + break; + case 3: + break; default: break; } @@ -768,7 +848,7 @@ function Particle(type, affiliation, drawType, lifespan, xpos, ypos, xvel, yvel, var act = actors[j]; if(this.y + 16 < act.y + act.h && this.y + 16 + this.size > act.y){ if(this.x + this.size > act.x && this.x < act.x + act.w && (this.aff == 1 ? j == 0 : j > 0)){ - actors[j].health -= (Math.abs(this.xvel) + Math.abs(this.yvel)) / 10; + actors[j].health -= (Math.abs(this.xvel) + Math.abs(this.yvel)) / [10, 3, 0.2, 2][this.type]; actors[j].xvel += this.xvel / 8; actors[j].yvel += this.yvel / 8; actors[j].tookDamage = 40; @@ -845,6 +925,7 @@ function Box(x, y, w, h, xvel, yvel, colgroup, gravity, airRes){ }else if(lv[ycol - 1][xcol] == 'x'){ // If in lava this.health -= 0.01 * speed; this.inlava = true; + this.xvel *= Math.pow(0.997, speed); // Slow down velocity this.yvel *= Math.pow(0.997, speed); }else if(lv[ycol - 1][xcol] == 'w'){ // If in water @@ -1009,7 +1090,7 @@ function drawLevel(lv){ // Draw level } context.fillRect((j << 4) - r(lookx), i << 4, 16, 16); }else if(lv[i][j] == 'E'){ - actors[actors.length] = new Actor(Math.floor(Math.random() * lvDis[levelNo]) + 8, 'all', 100, 6, 50, 3, j << 4, i << 4, 16, 16); + actors[actors.length] = new Actor(Math.floor(Math.random() * lvDis[levelNo]) + 8, 1, 100, 6, 50, 3, j << 4, i << 4, 16, 16); ais[ais.length] = new Ai(actors.length - 1, 'alphaBot'); level[i] = setStrChar(level[i], j, '.'); }else if(lv[i][j] == 'H'){ @@ -1049,13 +1130,14 @@ function loopGame(){ partFound = false; if(partsInserted.length == 0){ var toInsert = levelparts[0]; - partsInserted.push([false, '5n', 1, 1, 0]); + partsInserted.push([false, '5n', 1, 1, 0, 0]); partFound = true; }else{ thisPart = levelparts[partIndex]; - if(thisPart[20] == partsInserted[partsInserted.length - 1][1] && (Math.random() * thisPart[24]) < 1){ + var prevPart = partsInserted[partsInserted.length - 1]; + if(thisPart[20] == prevPart[1] && (Math.random() * thisPart[24]) < 1 && (prevPart[5] != partIndex || Math.random() <= 0.3)){ if(partsInserted[partsInserted.length - 1] != thisPart || Math.random() < 0){ - partsInserted.push([thisPart[20], thisPart[21], thisPart[22], thisPart[23], thisPart[24]]); + partsInserted.push([thisPart[20], thisPart[21], thisPart[22], thisPart[23], thisPart[24], partIndex]); toInsert = thisPart; partFound = true; } @@ -1157,9 +1239,9 @@ function loopGame(){ if(mobile){ context.fillText('RetX: ' + r(mouse.x), 420, 290); context.fillText('RetX: ' + r(mouse.y), 490, 290); - context.fillText('Sint mobile version α 0.6.2', 490, 310); + context.fillText('Sint mobile version α 0.6.3', 490, 310); }else{ - context.fillText('Sint version α 0.6.2', 490, 20); // β + context.fillText('Sint version α 0.6.3', 490, 20); // β if(cookies && game == 'menu'){ context.fillText('Sint uses cookies to remember', 490, 290); context.fillText('options and time trial records', 490, 310);