


HTML5 implementiert die Codefreigabe für WeChat-Masturbationsspiele
Mar 21, 2017 pm 03:28 PMIn diesem Artikel wird haupts?chlich HTML5 zum Implementieren des WeChat-Masturbationsspiels vorgestellt.
HTML5 zum Implementieren des WeChat-Masturbationsspiels
Code lautet wie folgt:
// 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"); // 用于記錄游戲的時間,越到后面越快 var time1 = 0; var time2 = 80; // 積分 var jifen = 0; function getSudu(){ var number = parseInt(Math.random()*10); if(number < 5 && number > 0){ return number; } return 1; } // 飛機的對象 function flivverObj(hp,ewidth,eheight,eimg,esudu){ // 隨機的X this.x = parseInt(Math.random()*460+1); this.y = 0; // 血量 this.hp = hp; // 挨打 this.hit = 0; // 是否死亡 this.over = 0; this.width = ewidth; this.height = eheight; this.img = eimg; this.sudu = esudu; } // 獲取飛機 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('<span style="position:absolute; top:5px; left:2px; font-size:150px; color:#cc0000; text-align:center" id="sil"></span>'); $('#sil').html('你').hide().fadeIn(1000,function(){ $(this).html('你屎').hide().fadeIn(1000,function(){ $(this).html('<a href="javascript:location.reload();" style="color:#cc0000" title="重新開始">你屎了</a> ' + jifen + ' 分').hide().fadeIn(); }); }); } (function(cxt){ var dotu = {nums:0}; // 用于存放小飛機 var flivver = new Array(); var flivverImg = newImg("./assets/flivver.png"); // 自己 var me = {x:240,y:750}; var meImg = newImg('assets/me.png'); // 子彈 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(); // 設置背景 dotu.setBg(); // 設置小飛機 dotu.setFlivver(); // 畫自己 dotu.setMe(); // 子彈 dotu.cartridge(); cxt.font = "italic 20px 微軟雅黑"; cxt.strokeText("積分:" + jifen, 10, 30); $('#fjs').html(flivver.length); $('#zds').html(cartridges.length); $('#scfj').html("1000/" + time2 + " 毫秒"); } dotu.setTimes = function(){ time1++ ; // 100 秒 1個檔位 if(time1 == 1000){ time1 = 0; time2 = (time2 == 20) ? 20 : time2 - 20; } } /** * 設置移動的背景 */ dotu.setBg = function(){ dotu.nums++; if(dotu.nums == 800){ dotu.nums = 0; } // 畫布的背景 cxt.drawImage(img,0,dotu.nums,480,800); cxt.drawImage(img,0,dotu.nums - 800,480,800); } dotu.setFlivver = function(){ // 生成飛機 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(flivver[a].y > 780){ flivver.splice(a, 1); } // 將小飛機畫到畫布上 // 小飛機死亡 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); // 判斷自己是否死亡 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--; } } } } // 更新自己的距離 dotu.setMe = function(){ cxt.drawImage(meImg,me.x,me.y,64,72); } // 更新子彈方法 dotu.cartridge = function(){ if(dotu.nums % 10 == 0){ cartridges.push(new cartridge(me.x + 30,me.y)); } for(i in cartridges){ // 飛到頂部就將OBJ刪除掉 if(cartridges[i].y < 0){ cartridges.splice(i, 1); continue; } cartridges[i].y -= 20; // 將小飛機畫到畫布上 cxt.drawImage(cartridgeImg,cartridges[i].x,cartridges[i].y,7,17); // 子彈碰到飛機的情況 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('打中了編號' + j); if(flivver[j].hp > 1){ flivver[j].hp -= 80; }else{ flivver[j].over = 40; jifen += 50000; } // 子彈消失 cartridges.splice(i, 1); break; } } } } // 綁定鼠標事件 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);
Code lautet wie folgt:
<!DOCTYPE html> <html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>打飛機 - 多途</title> <script type="text/javascript" src="./jquery.min.1.7.1.js"></script> <style> body{padding:0; margin:0; text-align:center} .content{border:1px #000 solid; width:480px; margin:0 auto; height:800px; display:block; font-size:72px;} .info,.blog{border:1px #000 solid; position:fixed; top:5px; right:5px; width:150px; text-align:left} .blog{ left:10px; background:#000; text-align:center; width:100px} .blog a{ color: #FFF; text-decoration:none; font-size:15px; } </style> </head> <body> <p class="content"><canvas id="dotu" width="480" height="800"></canvas></p> <p class="blog"><a href="/">回到博客首頁</a></p> <p class="info"> 鼠標X:<span id="sbX"></span> 鼠標Y:<span id="sbY"></span> 小飛機數:<span id="fjs"></span> 子彈數:<span id="zds"></span> 打中:<span id="isdz"></span> 生成飛機時間:<span id="scfj"></span> </p> <script type="text/javascript" src="./dotu_game.js"></script> </body> </html>
Das obige ist der detaillierte Inhalt vonHTML5 implementiert die Codefreigabe für WeChat-Masturbationsspiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Bei Verwendung von HTML5SSE sind die Methoden zur Umsetzung mit Wiederverbindung und Fehlern: 1. Verst?ndnis des Standard -Wiederverbindungsmechanismus. EventSource erneut 3 Sekunden nach der Unterbrechung der Verbindung standardm??ig unterbrochen. Sie k?nnen das Intervall über das Wiederholungsfeld anpassen. 2. H?ren Sie sich das Fehlerereignis an, um mit Verbindungsfehler oder Parsenfehlern umzugehen, Fehlertypen zu unterscheiden und die entsprechende Logik auszuführen, z. B. Netzwerkprobleme, die sich auf automatische Wiederverbindung stützen, Serverfehler die Wiederverbindung und Authentifizierungsfehler aktualisieren. 3. Steuern Sie aktiv die Wiederverbindungslogik, wie z. B. manuelles Schlie?en und Wiederaufbau der Verbindung, die maximale Anzahl von Wiederholungszeiten und kombinieren Navigator. Diese Ma?nahmen k?nnen die Anwendungsstabilit?t und die Benutzererfahrung verbessern.

HTML5, CSS und JavaScript sollten effizient mit semantischen Tags, angemessenen Ladereihenfolge und Entkopplungsdesign kombiniert werden. 1. Verwenden Sie HTML5-Semantik-Tags, wie z. B. die Verbesserung der strukturellen Klarheit und Wartbarkeit, was dem SEO und barrierefreien Zugang f?rderlich ist. 2. CSS sollte eingerichtet werden, externe Dateien verwenden und nach dem Modul aufgeteilt werden, um Inline -Stile und verz?gerte Ladeprobleme zu vermeiden. 3. JavaScript wird empfohlen, voran vorzugehen, und verwenden Sie Defer oder Async, um asynchron zu laden, um das Blockieren des Renders zu vermeiden. 4. Reduzieren Sie die starke Abh?ngigkeit zwischen den drei, führen Sie das Verhalten durch Datenattribute und den Status der Klassennamen und verbessern Sie die Zusammenarbeit Effizienz durch einheitliche Benennungsspezifikationen. Diese Methoden k?nnen die Seitenleistung effektiv optimieren und mit Teams zusammenarbeiten.

DocType ist eine Anweisung, die dem Browser mitteilt, mit dem HTML -Standard die Seite analysiert werden soll. Moderne Webseiten müssen nur zu Beginn der HTML -Datei geschrieben werden. Seine Funktion besteht darin, sicherzustellen, dass der Browser die Seite eher im Standardmodus als im seltsamen Modus rendert und sich in der ersten Zeile befinden muss, ohne Leerzeichen oder Kommentare davor. Es gibt nur einen richtigen Weg, um es zu schreiben, und es wird nicht empfohlen, alte Versionen oder andere Varianten zu verwenden. Andere wie Charset, Ansichtsfenster usw. sollten teilweise platziert werden.

Server-SentEvents (SSE) ist eine leichte L?sung, die von HTML5 bereitgestellt wird, um Echtzeit-Updates in den Browser zu bringen. Es realisiert die Einweg-Kommunikation durch lange HTTP-Verbindungen, die für Aktienmarkte, Benachrichtigungen und andere Szenarien geeignet sind. Erstellen Sie EventSource -Instanz und h?ren Sie auf Nachrichten zu, wenn Sie Folgendes verwenden: canteventSource = newEventSource ('/stream'); eventSource.onMessage = function (Ereignis) {console.log ('empfangene Nachricht:', Ereignis.Data);}; Der Server muss den Inhaltstyp auf Text/Ereignis festlegen

Die Verwendung von HTML5 -Semantik -Tags und Microdata kann die SEO verbessern, da Suchmaschinen die Seitenstruktur und den Inhalt besser verstehen k?nnen. 1. Verwenden Sie HTML5 -Semantik -Tags wie ,,,, und um die Funktion von Seitenbl?cken zu kl?ren, die Suchmaschinen hilft, ein genaueres Seitenmodell festzulegen. 2. Fügen Sie mikrodata -strukturierte Daten hinzu, um spezifische Inhalte zu markieren, z. B. Artikelautor, Erscheinungsdatum, Produktpreis usw., damit Suchmaschinen Informationstypen identifizieren und diese zur Anzeige der satten Medienzusammenfassung verwenden k?nnen. 3. Achten Sie auf die korrekte Verwendung von Tags, um Verwirrung zu vermeiden, doppelte Tags zu vermeiden, die Effektivit?t strukturierter Daten zu testen, regelm??ig zu aktualisieren, um sich an ?nderungen von schema.org anzupassen und mit anderen SEO-Mitteln zu kombinieren, um langfristig zu optimieren.

Es ist ein Element auf Blockebene, das zum Layout geeignet ist. Es ist ein Inline -Element, das zum Wickeln von Textinhalten geeignet ist. 1. Nehmen Sie ausschlie?lich eine Linie ein, Breite, H?he und R?nder k?nnen festgelegt werden, die h?ufig im strukturellen Layout verwendet werden. 2. Keine Zeilenumbrüche, die Gr??e wird durch den Inhalt bestimmt und ist für lokale Textstile oder dynamische Operationen geeignet. 3. Bei der Auswahl sollte es beurteilt werden, ob der Inhalt unabh?ngiger Raum ben?tigt. 4. Es kann nicht verschachtelt werden und ist nicht zum Layout geeignet. 5. Priorit?t wird der Verwendung semantischer Etiketten zur Verbesserung der strukturellen Klarheit und Zug?nglichkeit erteilt.

Wenn Sie die HTML5Geolocation -API verwenden, um den Benutzerstandort zu erhalten, müssen Sie zun?chst die Benutzerautorisierung einholen und den Zweck zum richtigen Zeitpunkt anfordern und erl?utern. Die grundlegende Methode ist navigator.geolocation.getCurrentPosition (), die erfolgreiche Rückrufe, falsche Rückrufe und Konfigurationsparameter enth?lt. Zu den h?ufigen Gründen für den Fehler geh?ren die Erlaubnis, die nicht unterstützt werden kann, Netzwerkprobleme usw., alternative L?sungen und klare Eingabeaufforderungen sollten bereitgestellt werden. Die spezifischen Vorschl?ge lauten wie folgt: 1. Anforderungsberechtigungen, wenn der Benutzervorgang ausgel?st wird, z. B. Klicken auf die Schaltfl?che; 2. Verwenden Sie EnableHighAccuracy, Timeout, Maximum und andere Parameter, um den Positionierungseffekt zu optimieren. 3.. Fehlerbehandlung sollte zwischen verschiedenen Fehlern unterscheiden

MSE (MediaSourceExtensions) ist Teil des W3C -Standards und erm?glicht es JavaScript, Medienstr?me dynamisch zu erstellen, wodurch erweiterte Video -Wiedergabefunktionen erm?glicht werden. Es verwaltet Medienquellen über MediaSource, speichert Daten von SourceBuffer und stellt den Pufferzeitbereich über Timerangen dar, sodass der Browser Videoclips dynamisch laden und dekodieren kann. Der Prozess der Verwendung von MSE umfasst: ① Erstellen einer MediaSource -Instanz; ② Binden Sie es an ein Element; ③ SourceBuffer hinzufügen, um Daten in einem bestimmten Format zu empfangen. ④ Segmentierte Daten über Fetch () abrufen und an den Puffer anh?ngen. Zu den gemeinsamen Vorsichtsma?nahmen geh?ren: ① Formatkompatibilit?tsprobleme; ② Zeitstempelpaar
