1. Wann wird das Szenenobjekt benötigt?
Szenenobjekte unterscheiden sich von den im vorherigen Artikel vorgestellten Kartenobjekten. Sie werden in verschiedenen Arten von Spielen verwendet. Frühere Kartenobjekte wurden in Gitterspielen wie Sokoban und Tank Battle verwendet. Die in diesem Abschnitt vorgestellten Szenenobjekte eignen sich für Spiele mit bestimmten Szenen wie Super Mario, Dinosaur Kombat usw. Diese Art von Spiel steuert normalerweise ein Spielerobjekt in einer 2D-Szene. Wenn sich der Spieler bewegt, bewegt sich die Szene mit.2. Szenenbeispiel:
Effekt: (linke und rechte Taste steuern die Bewegung von Super Mario)
Code:
<body> <div><canvas id="gameCanvas">请使用支持canvas的浏览器查看</canvas></div> </body> <script src="cnGame_v1.0.js"></script> <script> var Src="http://images.cnblogs.com/cnblogs_com/Cson/290336/o_player.png"; var background="background.png"; /* 初始化 */ cnGame.init('gameCanvas',{width:500,height:400}); var floorY=cnGame.height-40; var gameObj=(function(){ /* 玩家对象 */ var player=function(options){ this.init(options); this.speedX=0; this.moveDir; this.isJump=false; } cnGame.core.inherit(player,cnGame.Sprite); player.prototype.initialize=function(){ this.addAnimation(new cnGame.SpriteSheet("playerRight",Src,{frameSize:[50,60],loop:true,width:150,height:60})); this.addAnimation(new cnGame.SpriteSheet("playerLeft",Src,{frameSize:[50,60],loop:true,width:150,height:120,beginY:60})); } player.prototype.moveRight=function(){ if(cnGame.core.isUndefined(this.moveDir)||this.moveDir!="right"){ this.moveDir="right"; this.speedX<0&&(this.speedX=0); this.setMovement({aX:10,maxSpeedX:15}); this.setCurrentAnimation("playerRight"); } } player.prototype.moveLeft=function(){ if(cnGame.core.isUndefined(this.moveDir)||this.moveDir!="left"){ this.moveDir="left"; this.speedX>0&&(this.speedX=0); this.setMovement({aX:-10,maxSpeedX:15}); this.setCurrentAnimation("playerLeft"); } } player.prototype.stopMove=function(){ if(this.speedX<0){ this.setCurrentImage(Src,0,60); } else if(this.speedX>0){ this.setCurrentImage(Src); } this.moveDir=undefined; this.resetMovement(); } player.prototype.update=function(){ player.prototype.parent.prototype.update.call(this);//调用父类update if(cnGame.input.isPressed("right")){ this.moveRight(); } else if(cnGame.input.isPressed("left")){ this.moveLeft(); } else{ this.stopMove(); } } return { initialize:function(){ cnGame.input.preventDefault(["left","right","up","down"]); this.player=new player({src:Src,width:50,height:60,x:0,y:floorY-60}); this.player.initialize(); this.background=new cnGame.View({src:background,player:this.player,imgWidth:2301}); this.background.centerPlayer(true); this.background.insideView(this.player,"x"); }, update:function(){ this.player.update(); this.background.update([this.player]); }, draw:function(){ this.background.draw(); this.player.draw(); } }; })(); cnGame.loader.start([Src,background],gameObj); </script>
3 . Code-Implementierung: Um eine Szene zu erstellen, benötigen Sie zunächst ein ausreichend breites Hintergrundbild
. Wenn sich der Spieler nach rechts bewegt, befindet er sich immer in der Mitte des Hintergrunds , und die Geschwindigkeit des Spielers wird in die Bewegungsrichtung des Hintergrunds umgewandelt. Schauen Sie sich zunächst die Initialisierungsfunktion an: Zusätzlich zu xy und Größe verfügen die vom Benutzer übergebenen Parameter auch über drei Parameter, mit denen festgelegt wird, ob die platziert werden sollen Spielerobjekt in der Mitte Verschiebt den Hintergrund, ohne den Spieler zu bewegen. Wenn Sie den oben genannten Hintergrundbewegungseffekt erzielen möchten, muss dieser Parameter auf true gesetzt werden. Ein weiterer Parameter besteht darin, festzulegen, ob eine Schleife ausgeführt werden soll. Bei der Einstellung „Schleife“ kehrt der Hintergrund, nachdem er sich zum äußersten Punkt bewegt hat, an die ursprüngliche Position zurück. Der letzte Parameter ist onEnd. Wenn er auf azyklisch eingestellt ist, wird die Rückruffunktion ausgelöst, nachdem der Hintergrund das Extrem erreicht hat.
/** *初始化 **/ init:function(options){ /** *默认对象 **/ var defaultObj={ width:cg.width, height:cg.height, imgWidth:cg.width, imgHeight:cg.height, x:0, y:0 } options=options||{}; options=cg.core.extend(defaultObj,options); this.player=options.player; this.width=options.width; this.height=options.height; this.imgWidth=options.imgWidth; this.imgHeight=options.imgHeight; this.centerX=this.width/2; this.src=options.src; this.x=options.x; this.y=options.y; this.insideArr=[]; this.isLoop=false;; this.isCenterPlayer=false; this.onEnd=options.onEnd; },Der Fokus des Szenenobjekts liegt auf der Aktualisierungsmethode:
Diese Methode
ermittelt zunächst, ob das Player-Objekt die Mitte der Szene überschritten hat. Berechnen Sie den überschrittenen Abstand, und der Spieler wird in der Mitte der Szene fixiert, und der überschüssige Abstand wird auf den Abstand zwischen dem Hintergrund, der sich in die entgegengesetzte Richtung bewegt, und dem Abstand eingestellt, in dem sich andere Sprites außer dem Spieler in die entgegengesetzte Richtung bewegen In diesem Fall bewegen sich nur der Hintergrund und andere Sprite-Objekte, und der Player ist fixiert/** *背景移动时的更新 **/ update:function(spritelist){//传入所有sprite的数组 if(this.isCenterPlayer){ if(this.player.x>this.centerX){ if(this.x<this.imgWidth-this.width){ var marginX=this.player.x-this.centerX; this.x+=marginX; if(spritelist){ for(var i=0,len=spritelist.length;i<len;i++){ if(spritelist[i]==this.player){ spritelist[i].x=this.centerX; } else{ spritelist[i].x-=marginX; } } } } else if(this.isLoop){ if(spritelist){ for(var i=0,len=spritelist.length;i<len;i++){ if(spritelist[i]!=this.player){ spritelist[i].move(this.imgWidth-this.width); } } } this.x=0; } else{ this.onEnd&&this.onEnd(); } } } for(var i=0,len=this.insideArr.length;i<len;i++){ inside.call(this,this.insideArr[i]); } },. Wenn es sich um eine Schleife handelt, setzen Sie die X-Koordinate des Hintergrunds und anderer Sprites zurück, nachdem Sie den Bewegungsbereich überschritten haben. Wenn es sich nicht um eine Schleife handelt, wird die Callback-Funktion onEnd aufgerufen, nachdem die Bewegung beendet ist. Wenn Sie den Player außerdem darauf beschränken müssen, sich immer innerhalb des Anzeigebereichs zu befinden, können Sie auch die inside
View-Methode aufrufen. Fügen Sie alle Codes des Szenenobjekts hinzu:
Das obige ist der detaillierte Inhalt vonHTML5-Spielframework cnGameJS-Entwicklungsaufzeichnungsspielszenenobjekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

HTML5 ist eine Schlüsseltechnologie zum Aufbau moderner Webseiten und bietet viele neue Elemente und Funktionen. 1. HTML5 führt semantische Elemente wie usw. ein, die die Webseitenstruktur und die SEO verbessern. 2. Support Multimedia-Elemente und Einbetten von Medien ohne Plug-Ins. 3. Formulare verbessern neue Eingangstypen und Überprüfungseigenschaften und vereinfachen Sie den Überprüfungsprozess. 4. Bieten Sie Offline- und lokale Speicherfunktionen an, um die Leistung der Webseiten und die Benutzererfahrung zu verbessern.

Zu den Best Practices für den H5 -Code gehören: 1. Verwenden Sie korrekte DocType -Deklarationen und Zeichenkodierung; 2. Verwenden Sie semantische Tags; 3.. HTTP -Anfragen reduzieren; 4. Verwenden Sie asynchrone Laden; 5. Bilder optimieren. Diese Praktiken können die Effizienz, Wartbarkeit und Benutzererfahrung von Webseiten verbessern.

Webstandards und -technologien haben sich bisher aus HTML4, CSS2 und einfachem JavaScript entwickelt und haben erhebliche Entwicklungen erfahren. 1) HTML5 führt APIs wie Leinwand und Webstorage ein, die die Komplexität und Interaktivität von Webanwendungen verbessern. 2) CSS3 fügt Animations- und Übergangsfunktionen hinzu, um die Seite effektiver zu gestalten. 3) JavaScript verbessert die Entwicklungseffizienz und die Lesbarkeit der Code durch moderne Syntax von Node.js und ES6, wie z. B. Pfeilfunktionen und Klassen. Diese Änderungen haben die Entwicklung von Leistungsoptimierung und Best Practices von Webanwendungen gefördert.

H5 ist nicht nur die Abkürzung von HTML5, sondern auch ein breiteres Ökosystem der modernen Webentwicklungstechnologie: 1. H5 enthält HTML5, CSS3, JavaScript und verwandte APIs und Technologien; 2. Es bietet eine reichhaltigere, interaktive und reibungslose Benutzererfahrung und kann nahtlos auf mehreren Geräten ausgeführt werden. 3. Mit dem H5 -Technologie -Stack können Sie reaktionsschnelle Webseiten und komplexe interaktive Funktionen erstellen.

H5 und HTML5 beziehen sich auf dasselbe, nämlich HTML5. HTML5 ist die fünfte Version von HTML, die neue Funktionen wie semantische Tags, Multimedia -Support, Leinwand und Grafiken, Offline -Speicher und lokaler Speicher bietet, die Ausdrucksfähigkeit und Interaktivität von Webseiten verbessert.

H5REFERSTOHTML5, ApivotaltechnologyInwebdevelopment.1) HTML5IntroducesNewelementsandapisrich, Dynamicwebapplications.2) ITSUPP ortsmultimediaWitHoutPlugins, BETHINGINGUSEREXPERICERCROSSDEVICES.3) SEMANTICELEMENTSIMPROVEPENTENTENTENTRUCTENTRUCTELUREANDSEO.4) H5'SRespo

Zu den Tools und Frameworks, die in der H5 -Entwicklung gemeistert werden müssen, gehören Vue.js, React und WebPack. 1.Vue.js eignet sich zum Erstellen von Benutzeroberflächen und unterstützt die Komponentenentwicklung. 2. Die Rendern des Seitenrenders über virtuelle DOM optimiert, geeignet für komplexe Anwendungen. 3.Webpack wird zur Modulverpackung und zur Optimierung der Ressourcenlast verwendet.

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee


Heiße KI -Werkzeuge

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

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

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Dreamweaver Mac
Visuelle Webentwicklungstools