html5 implements WeChat’s masturbation game. Use this mini game to learn HTML5. This is a direction for developing WEB
// JavaScript Document
var c = document.getElementById("dotu");
var cxt = c.getContext("2d");
var img = newImg(". /assets/bg_01.jpg");
var fps;
cxt.drawImage(img,0,0,480,800);
var flivverLog = 0;
var flivver1 = newImg(". /assets/flivver.png");
var flivver2 = newImg("./assets/flivver2.png");
var flivver3 = newImg("./assets/flivver3.png");
// Used to record the time of the game, the faster it goes to the back
var time1 = 0;
var time2 = 80;
// Points
var jifen = 0;
function getSudu(){
var number = parseInt(Math.random()*10);
if(number < 5 && number > 0){
return number;
}
return 1;
}
//Aircraft object
function flivverObj(hp,ewidth,eheight,eimg,esudu){
//Random X
this.x = parseInt(Math.random()*460 1);
this.y = 0;
// HP
this.hp = hp;
// Beaten
this.hit = 0;
// Whether to die
this.over = 0;
this.width = ewidth;
this.height = eheight;
this.img = eimg;
this.sudu = esudu;
}
//Get the aircraft
function getFlivver(type){
switch(type){
case 1:
return new flivverObj(100,50,30,flivver1,getSudu());
case 2:
return new flivverObj(500,70,90,flivver2,getSudu());
case 3:
return new flivverObj(1000,110,170,flivver3,getSudu());
}
}
function cartridge(x,y){
this.x = x;
this .y = y;
}
function gameover(){
window.clearTimeout(fps);
//$('#dotu').fadeOut();
$('.content').css('position','relative');
$('.content').append('
');
$('#sil').html('you') .hide().fadeIn(1000,function(){
$(this).html('You shit').hide().fadeIn(1000,function(){
$(this).html ('
You are shit' jifen 'fen') .hide().fadeIn();
});
});
}
(function(cxt){
var dotu = {nums:0};
// Used to store small aircraft
var flivver = new Array();
var flivverImg = newImg("./assets/flivver.png");
// Self
var me = {x:240,y:750};
var meImg = newImg('assets/me.png');
// Bullets
var cartridges = new Array();
var cartridgeImg = newImg('./assets/cartridge.png');
var boo1 = newImg('./assets/boo1.png');
var over = newImg('./assets/over .png');
//
dotu.update = function(){
dotu.setTimes();
// Set background
dotu.setBg();
// Set up the small plane
dotu.setFlivver();
// Draw yourself
dotu.setMe();
// Bullets
dotu.cartridge();
cxt.font = "italic 20px Microsoft Yahei";
cxt.strokeText("Points:" jifen, 10, 30);
$('#fjs'). html(flivver.length);
$('#zds').html(cartridges.length);
$('#scfj').html("1000/" time2 " milliseconds");
}
dotu.setTimes = function(){
time1 ;
// 1 gear in 100 seconds
if(time1 == 1000){
time1 = 0;
time2 = (time2 == 20) ? 20 : time2 - 20;
}
}
/**
* Set moving background
*/
dotu .setBg = function(){
dotu.nums ;
if(dotu.nums == 800){
dotu.nums = 0;
}
// Canvas background
cxt.drawImage(img,0,dotu.nums,480,800);
cxt.drawImage(img,0,dotu.nums - 800,480,800);
}
dotu.setFlivver = function( ){
// Generate aircraft
if(dotu.nums % time2 == 0){
flivverLog ;
if(flivverLog % 6 == 0){
flivver.push(getFlivver (2));
}else if(flivverLog % 13 == 0){
flivver.push(getFlivver(3));
}else{
flivver.push(getFlivver(1) );
}
}
for(a in flivver){
flivver[a].y = flivver[a]. sudu;
// If it goes beyond the screen, delete the small plane
if(flivver[a].y > 780){
flivver.splice(a, 1);
}
// Draw the small plane onto the canvas
// The small plane dies
if(flivver[a].over > 0){
flivver[a] .over --;
if(flivver[a].over > 20){
cxt.drawImage(boo1,flivver[a].x flivver[a].width/2 - 20 , flivver[a].y flivver[a].height / 2 -10,41,39);
}else if(flivver[a].over > 2){
cxt.drawImage(over,flivver [a].x flivver[a].width/2 - 20 ,flivver[a].y flivver[a].height / 2 -10,40,43);
}else{
flivver.splice (a, 1);
}
}else{
cxt.drawImage(flivver[a].img,flivver[a].x,flivver[a] .y,flivver[a].width,flivver[a].height);
// Determine whether you are dead
if( me.x > (flivver[a].x - flivver[a]. width 20) && (me.x) <(flivver[a].x flivver[a].width - 20) && (me.y) < (flivver[a].y flivver[a].height 20) && (me.y 72) > (flivver[a].y - 20)){
gameover();
}
if(flivver[a].hit > 0) {
cxt.drawImage(boo1,flivver[a].x flivver[a].width/2 - 20 ,flivver[a].y flivver[a].height / 2 -10,41,39);
//cxt.drawImage(boo1,flivver[a].x 5,flivver[a].y,41,39);
flivver[a].hit--;
}
}
}
}
// Update own distance
dotu.setMe = function(){
cxt.drawImage(meImg,me.x,me.y ,64,72);
}
// Update bullet method
dotu.cartridge = function(){
if(dotu.nums % 10 == 0){
cartridges.push(new cartridge(me.x 30,me.y));
}
for(i in cartridges){
// Delete OBJ when it reaches the top
if(cartridges[i].y < 0){
cartridges.splice(i, 1);
continue;
}
cartridges[i].y -= 20;
// Draw the small airplane onto the canvas
cxt.drawImage(cartridgeImg,cartridges[i].x,cartridges[i].y,7,17);
// The situation when the bullet hits the aircraft
for(j in flivver){
if(flivver[j].over > 0){
continue;
}
if(cartridges[ i].x > flivver[j].x && cartridges[i].x < flivver[j].x flivver[j].width && cartridges[i].y > flivver[j].y && cartridges [i].y -flivver[j].height < flivver[j].y){
flivver[j].hit = 10;
$('#isdz').html( 'Hit the number' j);
if(flivver[j].hp > 1){
flivver[j].hp -= 80;
}else{
flivver[j].over = 40;
jifen = 50000;
}
// The bullet disappears
cartridges.splice(i, 1);
break;
}
}
}
}
// Bind mouse event
c.addEventListener('mousemove', function onMouseMove(evt) {
me.x = evt.layerX - $('#dotu').offset().left - 32;
me.y = evt.layerY - 36;
$('#sbX').html(me.x);
$('#sbY').html(me.y);
});
fps = setInterval(dotu.update, 1000/100);
}(cxt))
function newImg(src){
var obj = new Image();
obj.src = src;
return obj;
}
/ /setInterval(h.update, 1000/65);