Goose_emoji_game / index.html
JoPmt's picture
Update index.html
ce6b3cf verified
<!DOCTYPE html><title>E.MOji.Monster.Squad</title>
<head><meta charset="utf-8"/>
<style>#javas { top: 0; left: 0; position: absolute; z-index: 1000; width: 100%; height: 100%; }</style>
</head><body encoding='utf8'>
<canvas id="javas"></canvas>
<script type='text/javascript'>
var javas = document.querySelector('#javas');
javas.height = window.innerHeight;
javas.width = window.innerWidth;
var c = javas.getContext('2d');
var mouse = {
x: undefined,
y: undefined
};
var newX = 0;
var newY = 0;
var traker = 0;
var score = 0;
var level = 1;
var instant = Date.now();
var startTime=Date.now();
var cycleTime=1000*1;
var elapsed = 0;
var elapsedCycle=0;
var elapsedCyclePercent=0;
var moment = 0;
var frame = 0;
var squareArray = [];
var togle = 0;
var kit;
var tik;
var farts = [];
var muf;
var guf;
var trip = 0;
var intro = 1;
var tod = 0;
var tgt = 0;
var rrror = "";
var hscore = 0;
var emi = [];
var cuboids = [];
var kills = 0;
var marq = 0;
var barq = 0;
var bigX;
var bigY;
var vit;
var darq = 0;
var ppp;
var noob;
var emos = [];
var tempArr = [];
var many = 0;
var word = "heureux";
var who = new Request('https://api.dictionaryapi.dev/api/v2/entries/en/victory');
var wha = new Request('https://api.dictionaryapi.dev/api/v2/entries/en/happy');
async function cookie() {
try{
var [vicResponse, hapResponse] = await Promise.all([fetch(who),fetch(wha)]);
var vic = await vicResponse.json();
var hap = await hapResponse.json();
return [vic, hap];
} catch(e) { console.log(e); };
};
cookie().then(([vic, hap]) => {
var flob = document.createElement('ul');
var goo = vic[0].meanings[3].synonyms;
var foo = hap[0].meanings[3].synonyms;
if (goo){
for (let i = 0; i < goo.length; i++) {
emos.push(''+goo[i]+'');
};
}
if (foo){
for (let j = 0; j < foo.length; j++) {
emos.push(''+foo[j]+'');
};
}
}).catch(console.error);
if(localStorage.SqrScore) {
hscore = localStorage.SqrScore;
} else {
localStorage.SqrScore = score;
};
window.addEventListener('resize', function(){
javas.height = window.innerHeight;
javas.width = window.innerWidth;
event.preventDefault();
init();
//var tag = document.createElement('meta');
//tag.name = "viewport";
//tag.content = "user-scalable=0";
//document.head.appendChild(tag);
});
window.addEventListener('mousemove',
function (event) {
mouse.x = event.x;
mouse.y = event.y;
//bobd();
});
window.addEventListener('touchstart',
function (event) {
let touchtart = event.touches[0];
event.preventDefault();
mouse.x = touchtart.clientX;
mouse.y = touchtart.clientY;
newX = mouse.x;
newY = mouse.y;
for (var jy in squareArray) {
var a = 0;
var b = 0;
var c = 0;
var d = 50 + squareArray[jy].height;
if(newX < squareArray[jy].x && newY < squareArray[jy].y){
a = squareArray[jy].x - newX;
b = squareArray[jy].y - newY;
}
if(newX > squareArray[jy].x && newY < squareArray[jy].y){
a = newX - squareArray[jy].x;
b = squareArray[jy].y - newY;
}
if(newX > squareArray[jy].x && newY > squareArray[jy].y){
a = newX - squareArray[jy].x;
b = newY - squareArray[jy].y;
}
if(newX < squareArray[jy].x && newY > squareArray[jy].y){
a = squareArray[jy].x - newX;
b = newY - squareArray[jy].y;
}
var asq = a*a;
var bsq = b*b;
var summ = asq + bsq;
if(summ < 0){
summ = summ *(0-1);
}
c = Math.sqrt(summ);
if(c <= d){
traker -= 1;
kills += 1;
darq = frame+25;
barq = frame+15;
marq = 1;
bigX = squareArray[jy].x;
bigY = squareArray[jy].y;
explode(squareArray[jy].x, squareArray[jy].y);
navigator.vibrate([50]);
(function (){
var audioCtx = new(window.AudioContext || window.webkitAudioContext)();
function playNote(frequency, duration) {
// create Oscillator node
var oscillator = audioCtx.createOscillator();
let gain = audioCtx.createGain();
gain.gain.value = 0.1;
oscillator.type = 'sine';
oscillator.frequency.value = frequency; // value in hertz
//oscillator.connect(audioCtx.destination);
oscillator.connect(gain);
gain.connect(audioCtx.destination);
oscillator.start();
setTimeout(
function() {
oscillator.stop();
playMelody();
}, duration);
};
function playMelody() {
if (notes.length > 0) {
note = notes.pop();
playNote(note[0], 1000 * 256 / (note[1] * tempo));
}
};
notes = [
[1280, 256],
[768, 256],
[1024, 256],
[512, 256],
[256, 256]
];
//notes.reverse();
tempo = 100;
playMelody();
})();
if(kills == 10){
congrat(0, 0);
navigator.vibrate([250]);
level += 1;
document.body.style.backgroundColor = "black";
}
if(kills == 50){
congrat(0, 0);
navigator.vibrate([250]);
level += 1;
}
if(kills == 100){
congrat(0, 0);
navigator.vibrate([250]);
level += 1;
document.body.style.backgroundColor = "white";
}
if(kills == 300){
congrat(0, 0);
navigator.vibrate([250]);
level += 1;
document.body.style.backgroundColor = "black";
}
if(kills == 400){
congrat(0, 0);
navigator.vibrate([250]);
level += 1;
}
if(trip == 1){
trip = 0;
level = 1;
score = 0;
intro = 1;
frame = 0;
}
if(squareArray[jy].golf == 0){
vit = 0;
ppp = Math.floor(frame/squareArray[jy].eater);
score -= ppp;
}
if(squareArray[jy].golf > 0){
vit = Math.floor(frame/squareArray[jy].height)*level;
score += vit;
}
delete squareArray[jy];
}
};
//bobd();
}, false);
window.addEventListener("touchmove",
function (event) {
let touchmvo = event.touches[0];
event.preventDefault();
mouse.x = touchmvo.clientX;
mouse.y = touchmvo.clientY;
}, false);
window.addEventListener('touchend',
function (event) {
let touchtend = event.touches[0];
event.preventDefault();
mouse.x = touchtend.clientX;
mouse.y = touchtend.clientY;
}, false);
var ze = 0;
function color(r, g, b, a){
this.r = r;
this.g = g;
this.b = b;
this.a = a;
}
function point2D(x, y){
this.x = x;
this.y = y;
}
point2D.prototype.move = function(p2D){
this.x += p2D.x;
this.y += p2D.y;
}
function point3D(x, y, z){
this.x = x;
this.y = y;
this.z = z;
}
point3D.prototype.move = function(p3D){
this.x += p3D.x;
this.y += p3D.y;
this.z += p3D.z;
}
point3D.prototype.swap = function(p3D){
this.x = p3D.x;
this.y = p3D.y;
this.z = p3D.z;
}
point3D.prototype.rotate = function(axis, angleGr){
angleRad = angleGr * Math.PI / 180;
switch (axis)
{
case "x":{
var tempPoint = new point3D(
this.x,
this.y * Math.cos(angleRad) - this.z * Math.sin(angleRad),
this.y * Math.sin(angleRad) + this.z * Math.cos(angleRad)
);
this.swap(tempPoint);
break;
}
case "y":{
var tempPoint = new point3D(
this.x * Math.cos(angleRad) + this.z * Math.sin(angleRad),
this.y,
-this.x * Math.sin(angleRad) + this.z * Math.cos(angleRad)
);
this.swap(tempPoint);
break;
}
case "z":{
var tempPoint = new point3D(
this.x * Math.cos(angleRad) - this.y * Math.sin(angleRad),
this.x * Math.sin(angleRad) + this.y * Math.cos(angleRad),
this.z
);
this.swap(tempPoint);
break;
}
}
}
function normal3D(p3D, length){
this.point = p3D;
this.length = length;
}
function poly(){
var points = [];
for(var i = 0; i < arguments.length; i++)
points.push(arguments[i]);
this.points = points;
// Calculating normal
var v1 = new point3D(points[2].x - points[1].x, points[2].y - points[1].y, points[2].z - points[1].z);
var v2 = new point3D(points[0].x - points[1].x, points[0].y - points[1].y, points[0].z - points[1].z);
var normalP3D = new point3D(v1.y*v2.z-v2.y*v1.z, v1.z*v2.x-v2.z*v1.x, v1.x*v2.y-v2.x*v1.y);
var normalLen = Math.sqrt(normalP3D.x*normalP3D.x + normalP3D.y*normalP3D.y + normalP3D.z*normalP3D.z);
this.normal = new normal3D(normalP3D, normalLen);
}
poly.prototype.move = function(p3D){
for(var i = 0; i < this.points.length; i++)
{
var point = this.points[i];
point.move(p3D);
}
}
poly.prototype.rotate = function(axis, angle){
for(var i = 0; i < this.points.length; i++)
{
var point = this.points[i];
point.rotate(axis, angle);
}
this.normal.point.rotate(axis, angle);
}
poly.prototype.put = function(center, fillColor, edgeColor){
// Calulate visibility
var normalAngleRad = Math.acos(this.normal.point.z/this.normal.length);
if(normalAngleRad / Math.PI * 180 >= 90)
return;
var lightIntensity = 1 - 2 * (normalAngleRad / Math.PI);
c.fillStyle = 'rgba('+fillColor.r+','+fillColor.g+','+fillColor.b+','+(fillColor.a*lightIntensity)+')';
c.beginPath();
for(var i = 0; i < this.points.length; i++)
{
var point = this.points[i];
if(i)
c.lineTo(center.x + parseInt(point.x), center.y - parseInt(point.y));
else
c.moveTo(center.x + parseInt(point.x), center.y - parseInt(point.y));
}
c.fill();
c.lineWidth = 1;
c.strokeStyle = 'rgba('+edgeColor.r+','+edgeColor.g+','+edgeColor.b+','+(edgeColor.a*lightIntensity)+')';
c.beginPath();
var point = this.points[this.points.length-1];
c.moveTo(center.x + parseInt(point.x), center.y - parseInt(point.y));
for(var i = 0; i < this.points.length; i++)
{
var point = this.points[i];
c.lineTo(center.x + parseInt(point.x), center.y - parseInt(point.y));
}
c.stroke();
}
function Cube(size, fillColor, edgeColor){
var p000 = new point3D(0,0,0);
var p0S0 = new point3D(0,size,0);
var pSS0 = new point3D(size,size,0);
var pS00 = new point3D(size,0,0);
var p00S = new point3D(0,0,size);
var p0SS = new point3D(0,size,size);
var pSSS = new point3D(size,size,size);
var pS0S = new point3D(size,0,size);
var polys = [];
polys.push(new poly(p000,p0S0,pSS0,pS00));
polys.push(new poly(pS00,pSS0,pSSS,pS0S));
polys.push(new poly(pS0S,pSSS,p0SS,p00S));
polys.push(new poly(p00S,p0SS,p0S0,p000));
polys.push(new poly(p0S0,p0SS,pSSS,pSS0));
polys.push(new poly(p00S,p000,pS00,pS0S));
this.polys = polys;
var points = [];
points.push(p000);
points.push(p0S0);
points.push(pSS0);
points.push(pS00);
points.push(p00S);
points.push(p0SS);
points.push(pSSS);
points.push(pS0S);
for(var i = 0; i < polys.length; i++)
{
points.push(polys[i].normal.point);
}
this.points = points;
this.fillColor = fillColor;
this.edgeColor = edgeColor;
}
function move(o3D, p3D){
for(var i = 0; i < o3D.points.length - o3D.polys.length; i++)
{
var point = o3D.points[i];
point.move(p3D);
}
}
function put(o3D, center)
{
for(var i = 0; i < o3D.polys.length; i++)
{
var poly = o3D.polys[i];
poly.put(center, o3D.fillColor, o3D.edgeColor);
}
}
function rotate(o3D, axis, angle){
for(var i = 0; i < o3D.points.length; i++)
{
var point = o3D.points[i];
point.rotate(axis, angle);
}
}
function pnit(){
ze += 1;
cube = new Cube(100, new color(38,161,220,1), new color(38,161,220,1));
move(cube, new point3D(-javas.width/2,-50,-50));
rotate(cube, 'x', 45);
rotate(cube, 'y', 45);
rotate(cube, 'z', 45);
centerScreen = new point2D((javas.width / 2)+ze, javas.height / 2);
put(cube, centerScreen);
//timer = setInterval(nextFrame, 1000 / 60);
}
function nextFrame(){
ze += 1;
rotate(cube, 'x', 0.4);
rotate(cube, 'y', 0.6);
rotate(cube, 'z', 0.3);
c.fillStyle = 'rgba(50, 50, 200, 1)';
c.strokeStyle = 'rgba(60, 60, 210, 1)';
put(cube, new point2D((javas.width / 2)+Math.random()*2, javas.height / 2));
move(cube, new point3D(0+ze,0,0));
}
function explode(x, y){
togle = 1;
kit = x;
tik = y;
ash();
};
function congrat(x, y){
togle = 1;
muf = x;
guf = y;
upgra();
};
function drawScore() {
c.font = "120px Arial";
c.fillStyle = "#0095DD";
c.fillText("Score: "+score, 20, 120);
c.fill();
};
function drawHcore() {
c.font = "60px Arial";
c.fillStyle = "#0095DD";
c.fillText("HighScore: "+hscore, javas.width-450, 220);
c.fill();
};
function drawLevel() {
c.font = "32px Arial";
c.fillStyle = "#0095DD";
c.fillText("Level: "+level, 30, 160);
c.fill();
};
function drawFrames() {
c.font = "16px Arial";
c.fillStyle = "#0095DD";
c.fillText("Frame: "+frame, 30, 180);
c.fill();
};
function drawMomentos() {
c.font = "16px Arial";
c.fillStyle = "#0095DD";
c.fillText("Elapsed: "+elapsed+"ms", 30, 195);
c.fill();
};
function drawFps() {
c.font = "16px Arial";
c.fillStyle = "#0095DD";
c.fillText("fps: "+elapsed/frame, 30, 210);
c.fill();
};
function drawOver() {
c.font = "170px Arial";
c.fillStyle = "#0095DD";
c.fillText("GAME OVER", 10, (javas.height/2)-100);
c.fill();
};
function newLev() {
c.font = "170px Arial";
c.fillStyle = "#0095DD";
c.fillText("LEVEL: "+level, 40, (javas.height/2)-100);
c.fill();
};
function newIntro(){
c.fillStyle = 'rgb(38,161,220)';
c.fillRect(0,0,javas.width,javas.height);
c.fill();
c.font = "120px Arial";
c.fillStyle = "#FFFFFF";
c.fillText("SQUARE HEADS", 20, (javas.height/2)-100);
c.fill();
c.font = "150px Arial";
c.fillStyle = "#FFFFFF";
c.fillText("Loading..."+Math.floor((frame/100)*100)+"%", 20, (javas.height/2)+100);
c.fill();
};
function drawGoodies(x, y, hoot) {
c.font = "130px Arial";
c.fillStyle = "#0095DD";
c.fillText("+"+hoot+"points", x-100, y-100);
c.fill();
};
function drawNoogies(x, y, boot) {
c.font = "150px Arial";
c.fillStyle = 'red';
c.fillText("-"+boot+"points", x-100, y-100);
c.fill();
};
function ters(x, y, vx, vy){
this.x = x;
this.y = y;
this.vx = vx*((0-1)*(Math.random()*3));
this.vy = vy*((0-1)*(Math.random()*2));
this.live = 0;
this.die = 6+(Math.random()*10);
};
ters.prototype.draw = function() {
this.x += this.vx;
this.y += this.vy;
this.live += 1;
if(kills < 10){
c.fillStyle = 'rgba(38,161,220,'+(1/(this.live/this.die))+')';
}
if(kills > 10){
c.fillStyle = 'orange';
}
if(kills > 50){
c.fillStyle = 'red';
}
if(kills > 100){
c.fillStyle = 'pink';
}
if(kills > 200){
c.fillStyle = 'green';
}
if(kills > 300){
c.fillStyle = 'hsl('+Math.floor(Math.random()*360)+',100%,'+Math.floor(Math.random()*100)+'%)';
}
c.fillRect(this.x,this.y, Math.floor(Math.random()*10),Math.floor(Math.random()*10));
};
ters.prototype.update = function(){
this.draw();
};
function vixul(x, y){
this.x = x;
this.y = y;
this.vx = Math.random();
this.vy = Math.random()*4;
this.live = 0;
this.die = 30+(Math.random()*10);
};
vixul.prototype.draw = function() {
this.x -= this.vx;
this.y += this.vy;
this.live += 1;
if(kills < 10){
c.fillStyle = 'rgba(38,161,220,'+(1/(this.live/this.die))+')';
}
if(kills >= 10){
c.fillStyle = 'orange';
}
if(kills >= 50){
c.fillStyle = 'red';
}
if(kills >= 100){
c.fillStyle = 'pink';
}
if(kills >= 200){
c.fillStyle = 'green';
}
if(kills >= 300){
c.fillStyle = 'hsl('+Math.floor(Math.random()*360)+',100%,'+Math.floor(Math.random()*100)+'%)';
}
c.fillRect(this.x,this.y, Math.floor(Math.random()*12),Math.floor(Math.random()*12));
};
vixul.prototype.update = function(){
this.draw();
};
function ash() {
for(var dr = 0; dr < 60; dr++){
farts.push(new vixul((kit+(Math.random()*100)), (tik+(Math.random()*100))));
};
};
function upgra() {
for(var pr = 0; pr < 1000; pr++){
farts.push(new vixul((muf+(Math.random()*javas.width)), (guf+(Math.random()*javas.height))));
};
};
function square(){
var mpo = 0;
traker += 1;
mpo = traker+0;
//var emos = ['\+','\#','\@','\%','\&','\?','$','\*','\~','\-','\π','\∆','\√','\°','\÷','\×'];
//var emos = ['word','crazy','beast','warlock'];
var emos = ['🦖','🌑','🦎','🐙','🐙','🎈','👾','👾','🐊','🐍','🦇','🐌','🕷️','🐡'];
var moas = Math.floor(Math.random()*100);
this.x = Math.floor(Math.random()*window.innerWidth);
this.y = 1;
if(moas <= 25){
this.x = 1;
this.y = Math.floor(Math.random() * javas.height);
this.vx = ((Math.random()*5)*level)+3;
this.vy = 0;
}
if(moas >= 26 && moas <= 50){
this.x = Math.floor(Math.random() * javas.width);
this.y = 1;
this.vx = 0;
this.vy = (Math.random()*5)*level+3;
}
if(moas >= 51 && moas <= 75){
this.x = javas.width-1;
this.y = Math.floor(Math.random()*javas.height);
this.vx = 0-1*Math.random()*5*level+3;
this.vy = 0;
}
if(moas >= 76 && moas <= 100){
this.x = Math.floor(Math.random()*javas.width);
this.y = javas.height-1;
this.vx = 0;
this.vy = 0-1*Math.random()*5*level+3;
}
this.id = mpo;
this.height = Math.floor((50+(Math.random()*200))/level);
this.live = 0;
this.die = (300+(Math.random()*100))-(score/100);
this.golf = 1;
this.eater = 0;
this.char = emos[Math.floor(Math.random() * emos.length)];
};
square.prototype.draw = function() {
this.x += this.vx;
this.y += this.vy;
if(kills < 10){
c.fillStyle = 'rgb(38,161,220)';
}
if(kills >= 10){
c.fillStyle = 'orange';
}
if(kills >= 50){
c.fillStyle = 'red';
}
if(kills >= 100){
c.fillStyle = 'pink';
}
if(kills >= 200){
c.fillStyle = 'green';
}
if(kills >= 300){
c.fillStyle = 'hsl('+Math.floor(Math.random()*360)+',100%,'+Math.floor(Math.random()*100)+'%)';
}
if(this.live >= this.die/4){
c.fillStyle = 'hsl(360,0%,50%)';
this.golf = 0;
this.eater += 1;
}
c.font = ""+this.height+"px Arial";
c.fillText(""+this.char+"", this.x, this.y);
//c.fillRect(this.x,this.y,this.height,this.height);
};
square.prototype.update = function(){
this.draw();
};
if(traker < 3){
squareArray.push(new square());
}
for(var de in squareArray){
for(var ml = 0; ml < 10; ml++){
emi.push(new ters(squareArray[de].x, squareArray[de].y, squareArray[de].vx, squareArray[de].vy));
};
};
noob = setInterval(function(){
draw();
}, 32/1000);
(function init() {
c.clearRect(0, 0, javas.width, javas.height);
ze += 1;
cube = new Cube((Math.random()*100)+50, new color(38,161,220,0.8), new color(38,161,220,0.8));
move(cube, new point3D(-javas.width/2,-50,-50));
rotate(cube, 'x', 45);
rotate(cube, 'y', 45);
rotate(cube, 'z', 45);
centerScreen = new point2D(-javas.width / 2, javas.height * Math.random());
put(cube, centerScreen);
cabe = new Cube((Math.random()*100)+50, new color(38,161,220,0.8), new color(38,161,220,0.8));
move(cabe, new point3D(-javas.width/2,-50,-50));
rotate(cabe, 'x', 45);
rotate(cabe, 'y', 45);
rotate(cabe, 'z', 45);
centerScreen = new point2D(-javas.width / 2, -(javas.height/2) + (Math.random()*javas.height));
put(cabe, centerScreen);
cebe = new Cube((Math.random()*100)+50, new color(38,161,220,0.8), new color(38,161,220,0.8));
move(cebe, new point3D(+javas.width/2,-50,-50));
rotate(cebe, 'x', 45);
rotate(cebe, 'y', 45);
rotate(cebe, 'z', 45);
centerScreen = new point2D(+javas.width / 2, -javas.height/2);
put(cebe, centerScreen);
recordCanvas(javas, 30000);
requestAnimationFrame(noob);
})();
function draw(){
frame += 1;
elapsed=Date.now()-startTime;
elapsedCycle=elapsed%cycleTime;
elapsedCyclePercent=elapsedCycle/cycleTime;
moment += elapsed;
if(score > localStorage.SqrScore){
localStorage.SqrScore = score;
hscore = score;
}
c.clearRect(0, 0, javas.width, javas.height);
if(trip == 1){
drawOver();
}
if(traker < 3 && intro == 0){
squareArray.push(new square());
}
for (var uy in squareArray) {
squareArray[uy].live += 1;
squareArray[uy].height += Math.random();
if(squareArray[uy].y >= javas.height){
squareArray[uy].y = 1;
}
if(squareArray[uy].y < 1){
squareArray[uy].y = javas.height-1;
}
if(squareArray[uy].x < 1){
squareArray[uy].x = javas.width-1;
}
if(squareArray[uy].x >= javas.width){
squareArray[uy].x = 1;
}
for(var ml = 0; ml < 3; ml++){
emi.push(new ters((squareArray[uy].x+(squareArray[uy].height/2)), (squareArray[uy].y+(squareArray[uy].height/2)), squareArray[uy].vx, squareArray[uy].vy));
emi.push(new ters(squareArray[uy].x, squareArray[uy].y, squareArray[uy].vx, squareArray[uy].vy));
emi.push(new ters((squareArray[uy].x+(squareArray[uy].height)), (squareArray[uy].y+(squareArray[uy].height)), squareArray[uy].vx, squareArray[uy].vy));
};
if(marq == 1 && frame <= barq && squareArray[uy].golf == 1 && vit > 1){
drawGoodies(bigX, bigY, vit);
}
if(marq == 1 && frame <= darq && squareArray[uy].golf == 0 && vit == 0){
drawNoogies(bigX, bigY, ppp);
}
if(squareArray[uy].live >= squareArray[uy].die){
delete squareArray[uy];
trip = 1;
tgt = 1;
traker -= 1;
drawOver();
intro = 1;
} else{
squareArray[uy].draw();
};
};
if(frame > 100){
ze += 1;
rotate(cube, 'x', -0.4*3);
rotate(cube, 'y', -0.6*3);
rotate(cube, 'z', -0.3*3);
put(cube, new point2D(0, javas.height/2));
move(cube, new point3D(0+ze/50,0,0));
rotate(cabe, 'x', -0.4);
rotate(cabe, 'y', -0.6);
rotate(cabe, 'z', -0.3);
put(cabe, new point2D((javas.width/2)-50, javas.height));
move(cabe, new point3D(0,0+ze/10,0));
rotate(cebe, 'x', 0.4);
rotate(cebe, 'y', 0.6);
rotate(cebe, 'z', 0.3);
put(cebe, new point2D(javas.width, javas.height/2));
move(cebe, new point3D(0-ze/50,0,0));
}
if(cabe.y > 0){
put(cabe, new point2D((javas.width/2)-50, javas.height));
move(cabe, new point3D(0,1,0));
}
for(var zx in farts){
if(farts[zx].live >= farts[zx].die){
delete farts[zx];
} else {
farts[zx].draw();
};
};
for(var ix in emi){
if(emi[ix].live >= emi[ix].die){
delete emi[ix];
} else {
emi[ix].draw();
};
};
var beaut = c.createRadialGradient(mouse.x, mouse.y, 200, mouse.x, mouse.y, 700);
beaut.addColorStop(0, "hsla(111,100%,40%,0.1)");
beaut.addColorStop(1, "hsla(111,100%,0%,1.0)");
c.fillStyle = beaut;
//c.fillStyle = '#000';
c.beginPath();
c.fillRect(0,0,javas.width,javas.height);
c.closePath();
c.fill();
bobd();
drawFrames();
drawLevel();
drawScore();
drawMomentos();
drawFps();
drawHcore();
if(tgt == 1 && frame > 1 && trip == 1){
(function (){
var oudioCtx = new(window.AudioContext || window.webkitAudioContext)();
function playNote(frequency, duration) {
// create Oscillator node
var osxillator = oudioCtx.createOscillator();
let goin = oudioCtx.createGain();
goin.gain.value = 0.3;
osxillator.type = 'sine';
osxillator.frequency.value = frequency; // value in hertz
//osxillator.connect(oudioCtx.destination);
osxillator.connect(goin);
goin.connect(oudioCtx.destination);
osxillator.start();
setTimeout(
function() {
osxillator.stop();
playMelody();
}, duration);
}
function playMelody() {
if (notes.length > 0) {
note = notes.pop();
playNote(note[0], 1000 * 256 / (note[1] * tempo));
}
}
notes = [
[1280, 32],
[1024, 32],
[896, 32],
[768, 32],
[512, 32],
[384, 32]
];
notes.reverse();
tempo = 100;
playMelody();
})();
tgt = 0;
}
if(intro == 1 && frame < 100){
c.clearRect(0, 0, javas.width, javas.height);
newIntro();
} else {
intro = 0; };
if(frame == 60){
(function (){
var uudioCtx = new(window.AudioContext || window.webkitAudioContext)();
function playNote(frequency, duration) {
// create Oscillator node
var osvillator = uudioCtx.createOscillator();
let guin = uudioCtx.createGain();
guin.gain.value = 0.3;
osvillator.type = 'sine';
osvillator.frequency.value = frequency; // value in hertz
//osvillator.connect(uudioCtx.destination);
osvillator.connect(guin);
guin.connect(uudioCtx.destination);
osvillator.start();
setTimeout(
function() {
osvillator.stop();
playMelody();
}, duration);
}
function playMelody() {
if (notes.length > 0) {
note = notes.pop();
playNote(note[0], 1000 * 256 / (note[1] * tempo));
}
}
notes = [
[2048, 32],
[1024, 32],
[896, 32],
[768, 32],
[896, 32],
[1024, 32],
[1280, 32],
[1024, 32],
[768, 32],
[512, 32],
[256, 32],
[128, 32]
];
//notes.reverse();
tempo = 100;
playMelody();
})();
}
//requestAnimationFrame(draw);
};
function bobd(){
c.fillStyle = '#FFF';
c.font = "16px Arial";
c.fillText("This is Title Graph",javas.width/4,18);
c.fill();
c.save();
c.translate(18,javas.height*3/4);
c.rotate(-6.35/4);
c.fillStyle = '#FFF';
c.font = "16px Arial";
c.fillText("this is Title Y",0,0);
c.fill();
c.restore();
c.fillStyle = '#000';
c.beginPath();
c.fillRect(mouse.x-300,mouse.y,600,1);
c.closePath();
c.fill();
c.fillStyle = '#000';
c.beginPath();
c.fillRect(mouse.x,mouse.y-300,1,100);
c.closePath();
c.fill();
for(var qw = 0; qw < 30; qw++){
c.fillStyle = '#000';
c.beginPath();
c.fillRect(mouse.x+(qw*10),((mouse.y)-5)-qw,1,10+qw+qw);
c.closePath();
c.fill();
};
for(var ww = 0; ww < 30; ww++){
c.fillStyle = '#000';
c.beginPath();
c.fillRect(mouse.x-(ww*10),((mouse.y)-5)-ww,1,10+ww+ww);
c.closePath();
c.fill();
};
for(var ow = 0; ow < 30; ow++){
c.fillStyle = '#000';
c.beginPath();
c.fillRect(((mouse.x)-5)-(ow),mouse.y+(ow*10),10+ow+ow,1);
c.closePath();
c.fill();
};
for(var lw = 0; lw < 30; lw++){
c.fillStyle = '#000';
c.beginPath();
c.fillRect(((mouse.x)-5)-(lw),mouse.y-(lw*10),10+lw+lw,1);
c.closePath();
c.fill();
};
c.fillStyle = '#FFF';
c.font = "16px Arial";
c.fillText("This is Title X",javas.width/4,javas.height-2);
c.fill();
};
function recordCanvas(canvas, videoLength) {
const recordedChunks = [];
const mediaRecorder = new MediaRecorder(
canvas.captureStream(32), {mimeType: 'video/webm; codecs=vp8'});
mediaRecorder.ondataavailable = event => recordedChunks.push(event.data);
mediaRecorder.onstop = () => {
const url = URL.createObjectURL(
new Blob(recordedChunks, {type: "video/webm"}));
const anchor = document.createElement("a");
anchor.href = url;
anchor.download = "video.webm";
anchor.click();
window.URL.revokeObjectURL(url);
}
mediaRecorder.start();
window.setTimeout(() => {mediaRecorder.stop();}, 30000);
};
</script>
</body>
</html>