Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Hur du gör din egen HTML 5 Spel

    Apple gjorde ett kritiskt drag när det valde iOS-enheter att använda HTML5 över Flash spelare . Trots kritiken , är HTML5 börjar ta form som en fledging plattform i sin egen rätt , särskilt för att skapa videospel . Skapa en grundläggande HTML5 spel kräver lite know -how när det gäller kodning och programmering , men lyckligtvis du behöver inte vara en fullfjädrad speldesigner att skapa en grundläggande spelet . Saker du behöver
    Box2D fysikmotor
    Visa fler instruktioner
    1

    Skapa en ny HTML -fil ( index.html ) i Box2D och kopiera js och lib kataloger från Box2D - js projektet till ditt spel mappen . Sätt följande filer som en script -fil i din HTML -fil :

    < - ! [ Om IE ] > < script src = ' js/box2d/collision/shapes/b2Shape.js " > < script src = ' js/box2d/collision/shapes/b2BoxDef.js " > < script src = ' js/box2d/collision/shapes/b2CircleShape.js " > < script src = ' js/box2d/collision/shapes/b2PolyDef.js " > < /script >
    5

    Öppna game.js och infoga följande kod : ?

    view plaincopy till clipboardprint //vissa variabler som vi gonna användning i denna demo var initId = 0; var spelare = function ( ) { this.object = null; this.canJump = false; } , var världen , var ctx , var canvasWidth , var canvasHeight , var- tangenter = [ ] ; //HTML5 onLoad Event.observe ( window , ' load ' , function ( ) { världen = createWorld ( ) , //box2DWorld ctx = $ ( "spelet" ) getContext ( '2 d '); . //2 var canvasElm = $ ( "spelet" ) ; canvasWidth = parseInt ( canvasElm.width ) , canvasHeight = parseInt ( canvasElm.height ) , initGame ( ) , //3 steg ( ) , //4 //5 window.addEventListener ( ' keyDown ' , handleKeyDown , true ) ; window.addEventListener ( ' keyUp ' , handleKeyUp , true ) ;} ) ;
    6

    Sök för createWorld ( ) funktionen i boxdutils.js och input här koden :

    funktionen createWorld ( ) { //här skapar vi vår värld inställningar för kollisioner var worldAABB = ny b2AABB ( ) ; worldAABB.minVertex.Set ( -1000 , -1000 ) , worldAABB.maxVertex.Set (1000 , 1000), //ställa gravitation vektor var gravitation = ny b2Vec2 ( 0 , 300 ), var doSleep = true; //init vår värld och returnera dess värde var världen = ny b2World ( worldAABB , gravitation , doSleep ) , återvändande världen ; }

    7

    Kopiera koden nedan och klistra in den på game.js att skapa form definition , inrätta densitet , format userData , skapar kroppen definition , ställa in positionen och skapa kroppen i spelvärlden :

    funktionen initGame ( ) { //skapa två stora plattformar createBox ( värld , 3 , 230 , 60 , 180 , true , ' mark '); createBox ( värld , 560 , 360 , 50 , 50 , true , ' mark ' ) ; //skapa små plattformar for (var i = 0 ; i < 5 , i + + ) { createBox ( värld , 150 + ( 80 * i) , 360 , 5 , 40 + (i * 15 ) , true , ' mark ' ) ; } //skapa spelare bollen var ballSd = ny b2CircleDef ( ) ; ballSd.density = 0,1; ballSd.radius = 12 ; ballSd.restitution = 0.5; ballSd.friction = 1 ; ballSd.userData = ' spelare ' , var ballBd = nya b2BodyDef ( ) ; ballBd.linearDamping = .03 ; ballBd.allowSleep = false; ballBd.AddShape ( ballSd ) , ballBd.position.Set ( 20,0 ) , player.object = world.CreateBody ( ballBd ) ;} Inside < ; code > box2dutils.js < /code > , vi har skapat en funktion som heter createBox < /code > . Detta skapar en statisk rektangel kropp . Funktionen createBox ( värld , x , y , bredd , höjd , fast , userData ) {if ( typeof ( fast ) == ' undefined ' ) fast = true; //1 var boxSd = ny b2BoxDef ( ) , om ( fast ! ) boxSd.density = 1,0 , //2 boxSd.userData = userData , //3 boxSd.extents.Set ( bredd , höjd ) , //4 var boxBd = ny b2BodyDef ( ) ; boxBd.AddShape ( boxSd ) , //5 boxBd.position.Set ( x , y ) , //6 retur world.CreateBody ( boxBd ) }
    8

    Open game.js manus och kopiera och klistra in följande kod för att göra tid :

    view plaincopy till clipboardprint funktion steg ( ) {var stepping = false; var tidssteg = 1.0/60 , var iteration = 1 ; //1 world.Step ( tidssteg , iteration ) , //2 ctx.clearRect ( 0 , 0 , canvasWidth , canvasHeight ) ; drawWorld ( världen , ctx ) , //3 setTimeout ( " steg ( ) " , 10 ) ; }
    9

    Infoga följande kod i box2dutils.js till dra " skarvar " av spelare organ :

    funktion drawWorld ( världen , kontext ) { for (var j = world.m_jointList , j ; j = j.m_next ) { drawJoint ( j , sammanhang ) ; } för (var b = world.m_bodyList , b , b = b.m_next ) { for (var s = b.GetShapeList (); ! s = null; s = s.GetNext ( )) { drawShape (s, sammanhang) ;} } }
    10

    Infoga en andra slinga för att dra alla organ :

    funktion drawShape ( form , kontext ) { context.strokeStyle = ' # 000000 ' ; context.beginPath ( ) ; switch ( shape.m_type ) { case b2Shape.e_circleShape : {var cirkel = form , var pos = circle.m_position , var r = circle.m_radius , var- segment = 16.0 , var theta = 0.0 , var dtheta = 2,0 * Math.PI /segment , //rita cirkeln context.moveTo ( pos.x + R , pos.y ) , for (var i = 0 ; i. < segment , i + + ) {var d = new b2Vec2 ( r * Math.cos ( theta ) , r * Math.sin ( theta ) ), var v = b2Math.AddVV ( pos , d); context.lineTo ( vx , vy ), theta + = dtheta ;} context.lineTo ( pos.x + r , pos . y ) , //rita radie context.moveTo ( pos.x , pos.y ) , var yxa = circle.m_R.col1 , var POS2 = ny b2Vec2 ( pos.x + r * ax.x , pos.y + R * ax.y ) , context.lineTo ( pos2.x , pos2.y ) ;} break; case b2Shape.e_polyShape : {var poly = form , var tv = b2Math.AddVV ( poly.m_position , b2Math.b2MulMV ( poly . m_R , poly.m_vertices [ 0 ] ) ) ; context.moveTo ( tV.x , tV.y ) , for (var i = 0 ; i. < poly.m_vertexCount , i + + ) {var v = b2Math.AddVV ( poly . m_position , b2Math.b2MulMV ( poly.m_R , poly.m_vertices [ i] ) ) ; context.lineTo ( vx , vy ) ; } context.lineTo ( tV.x , tV.y ) ;} break ; } context.stroke ( ) ; }
    11

    Skapa interaktivitet i ditt spel med följande kod :

    funktion handleKeyDown ( evt ) { knapparna [ evt.keyCode ] = true ; } funktion handleKeyUp ( evt ) { knapparna [ evt.keyCode ] = false; } //avaktivera vertikal rullning från pilar < img src = " http://net.tutsplus.com/wp-includes/images/smilies/icon_smile.gif " alt = " :) " class = " wp - smiley " > document.onkeydown = function ( ) {return event.keyCode ! = 38 && event.keyCode ! = 40 }
    12

    Tillverkning spelare kollisioner och hastigheten genom att mata in följande kod i steget ( ) funktionen :

    funktion handleInteractions ( ) { //upp pil //1 var kollision = world.m_contactList , player.canJump = false , om ( kollision = null ) { if ( collision.GetShape1 ( ) GetUserData ( ) == ' player '

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man tar bort den APP_NAME Bar från Android
    ·Hur skapa och uppdatera data Funktioner
    ·JavaScript Vs. Java Applets
    ·Hur du uppdaterar Joomla ! K2
    ·Konvertera en JDW till en Eclipse
    ·Hur konvertera HTML taggar med Plain Text i C #
    ·Hur man skapar Nedsänkt Använda HTML- koder
    ·Hur man testar ett SSIS Package
    ·Hur man skriver ut dosemu på Dot Matrix
    ·Hur man sparar Ändringar WPF i Dataset
    Utvalda artiklarna
    ·Hur man använder VBScript Plats Object
    ·Hur man driver ett Perl-skript på distans i Windows
    ·Hur man skapar Karaoke programvara
    ·Hur avkoda binära strängar
    ·Hur man gör ett Visual Basic Game
    ·Struts Vs . Hibernate
    ·Hur man kopplar SQL-frågor med Visual Basic
    ·SQL Skriva Verktyg
    ·Hur man skapar en ordnad array i PHP
    ·Så här ändrar RichEdit Font genom att använda Combo…
    Copyright © Dator Kunskap http://www.dator.xyz