{"id":818,"date":"2020-07-09T23:23:43","date_gmt":"2020-07-10T02:23:43","guid":{"rendered":"https:\/\/www.joemaster.com.br\/tutoriais\/?p=818"},"modified":"2022-12-09T08:21:27","modified_gmt":"2022-12-09T11:21:27","slug":"como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2","status":"publish","type":"post","link":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/","title":{"rendered":"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript &#8211; parte 2"},"content":{"rendered":"<p>Continuando o jogo, agora vamos continuar os seguintes itens.\u00a0 Se voc\u00ea n\u00e3o viu a primeira etapa, <a href=\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript\/\">clique aqui<\/a>, sen\u00e3o continue abaixo.<\/p>\n<h2>O que voc\u00ea vai aprender nesse tutorial:<\/h2>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Como colocar obst\u00e1culos;<\/li>\n<li>Como &#8220;perder o jogo&#8221; ao colidir com o obst\u00e1culo;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Ent\u00e3o vamos l\u00e1.<\/p>\n<h2>Como colocar obst\u00e1culos no jogo<\/h2>\n<p>Vamos precisar desta imagem:<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-819 size-full\" src=\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2.jpg\" alt=\"\" width=\"200\" height=\"174\" \/><\/p>\n<p>E vamos colocar duas divs a mais no c\u00f3digo:<\/p>\n<p><code>&lt;div id=\"obstaculo\"&gt;&lt;\/div&gt;<\/code><br \/>\n<code>&lt;div id=\"obstaculo2\"&gt;&lt;\/div&gt;<\/code><\/p>\n<p>E no css vamos adicionar:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"css\">#obstaculo\r\n{\r\nbackground: url('itens2.png');\r\nbackground-position-x: -113px;\r\nbackground-position-y: -108px;\r\nposition: absolute;\r\nz-index:1009;\r\nleft: 440px;\r\ntop: 170px;\r\nwidth:41px;\r\nheight:28px;\r\nanimation: play3 2s steps(10) infinite;\r\n}\r\n\r\n@keyframes play3 {\r\n    100% { left: 0px; }\r\n}\r\n\r\n#obstaculo2\r\n{\r\nbackground: url('itens2.png');\r\nbackground-position-x: -155px;\r\nbackground-position-y: -75px;\r\nposition: absolute;\r\nz-index:1009;\r\nleft: 440px;\r\ntop: 100px;\r\nwidth:33px;\r\nheight:32px;\r\nanimation: play4 2s steps(10) infinite;\r\n}\r\n\r\n@keyframes play4 {\r\n    100% { left: 0px; }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>O resultado vai ser esse:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n  &lt;head&gt;\r\n    &lt;title&gt;Jogo do coelho&lt;\/title&gt;\r\n&lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=iso-8859-1\"&gt;\r\n&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\r\n&lt;style&gt; \r\nbody {margin: auto;}\r\na{color: #0171BB; text-decoration: none; }\r\na:hover { color: #000; text-decoration: none; }\r\n\r\n#principal {\r\n  background-color: #fff;\r\n  margin: auto;\r\n  position: relative;\r\n  max-width: 500px;\r\n  max-width: 500px;\r\n  height: 300px;\r\n  border: 3px solid #73AD21;\r\n}\r\n\r\n#personagem3 {\r\n  z-index:1000;\r\n  width: 100px;\r\n  height: 129px;\r\n  margin: auto;\r\n  position: absolute;\r\n  top: 60px;\r\n  left:40%;\r\n  background: url('https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript.png');\r\n  background-position-x: 0px;\r\n  background-position-y: 0px;\r\n  animation: play1 .8s steps(6) infinite;\r\n}\r\n\r\n@keyframes play1 {\r\n    0% { background-position-x: -5px; }\r\n    100% { background-position-x: -548px; }\r\n}\r\n\r\n#chao {\r\n  width: 100%;\r\n  height: 112px;\r\n  margin: auto;\r\n  position: absolute;\r\n  bottom: 0px;\r\n  background: url('https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-2.png')0px 0px;\r\n  animation: play2 2s steps(10) infinite;\r\n}\r\n\r\n@keyframes play2 {\r\n    100% { background-position-x: -112px; }\r\n}\r\n\r\n#obstaculo\r\n{\r\nbackground: url('https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2.jpg');\r\nbackground-position-x: -113px;\r\nbackground-position-y: -108px;\r\nposition: absolute;\r\nz-index:1009;\r\nleft: 440px;\r\ntop: 170px;\r\nwidth:41px;\r\nheight:28px;\r\nanimation: play3 2s steps(10) infinite;\r\n}\r\n\r\n@keyframes play3 {\r\n    100% { left: 0px; }\r\n}\r\n\r\n#obstaculo2\r\n{\r\nbackground: url('https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2.jpg');\r\nbackground-position-x: -155px;\r\nbackground-position-y: -75px;\r\nposition: absolute;\r\nz-index:1009;\r\nleft: 440px;\r\ntop: 100px;\r\nwidth:33px;\r\nheight:32px;\r\nanimation: play4 2s steps(10) infinite;\r\n}\r\n\r\n@keyframes play4 {\r\n    100% { left: 0px; }\r\n}\r\n\r\n&lt;\/style&gt; \r\n\r\n&lt;script&gt;\r\nfunction pular() {\r\ndocument.getElementById(\"personagem3\").style.cssText = 'transition: all 0.3s  ease-out;'; \r\ndocument.getElementById(\"personagem3\").style.top = \"-30px\";\r\nsetTimeout(function(){document.getElementById(\"personagem3\").style.top = \"60px\";},200);\r\n}\r\n\r\nfunction rasteira() {\r\ndocument.getElementById(\"personagem3\").style.cssText = 'top:130px; transition: all 0.2s  ease-out; transform : rotate(-95deg);  animation: play1 3s steps(3) infinite;';\r\nsetTimeout(function(){document.getElementById(\"personagem3\").style.cssText = 'transition: all 1s  ease-out;'; document.getElementById(\"personagem3\").style.top = \"60px\";},500);\r\n}\r\n&lt;\/script&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;br&gt;\r\n&lt;div id=\"principal\"&gt;\r\n&lt;center&gt;\r\n&lt;div id=\"personagem3\"&gt;&lt;\/div&gt;\r\n&lt;div id=\"obstaculo\"&gt;&lt;\/div&gt;\r\n&lt;div id=\"obstaculo2\"&gt;&lt;\/div&gt;\r\n&lt;div id=\"chao\"&gt;&lt;\/div&gt;\r\n&lt;a href=\"javascript:;;\" onClick=\"rasteira();\" style=\"left:0px;top:40%;position: absolute;font-size:20px;\"&gt;&amp;#128317;&lt;\/a&gt;\r\n&lt;a href=\"javascript:;;\" onClick=\"pular();\" style=\"right:0px;top:40%;position: absolute;font-size:20px;\"&gt;&amp;#128316;&lt;\/a&gt;\r\n&lt;\/center&gt;\r\n&lt;\/div&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<center><input type=\"button\" name=\"Submit\" value=\"Testar c&oacute;digo\" onClick=\"document.getElementById('divcode').style.display='block';\" style=\"background-color:#FFCC05;border-radius:15px;padding:10px;width:150px;color:#000;\"><br><br><\/center>\n<p>&nbsp;<\/p>\n<h2>Como &#8220;perder o jogo&#8221; ao colidir com o obst\u00e1culo<\/h2>\n<p>Agora vamos come\u00e7ar a criar fun\u00e7\u00f5es para que o jogo rode, e se colidir em obst\u00e1culos, perde o jogo.<\/p>\n<p>O que faremos e criar as fun\u00e7\u00f5es.\u00a0 Vamos mudar de lugar agora o <code>&lt;script&gt;<\/code> para o final da p\u00e1gina, antes de fechar o <code>&lt;\/body&gt;<\/code> pois, carregar corretamente todas as fun\u00e7\u00f5es, depois de chamar o CSS e o conte\u00fado das div&#8217;s.<\/p>\n<p>Est\u00e1 tudo explicado, veja abaixo como criaremos o <code>&lt;script&gt;<\/code><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">&lt;script&gt;\r\n\/\/funcoes do jogo\r\n\r\n\/\/essa func\u00e3o faz com que o personagem  pule rotacione um pouco e volte sua posicao normal depois de 500m\r\nfunction pular() {\r\n\/\/aqui diz, mande o personagem para topo 0, de uma girada, e diminua o andar do personagem\r\ndocument.getElementById(\"personagem3\").style.cssText = 'top:0px; transition: all 0.3s  ease-out; transform : rotate(-15deg);  animation: play1 1s steps(1) infinite;';\r\n\/\/aqui diz, retorne personagem para o chao, desvire a  girada, e aumente o andar do personagem\r\nsetTimeout(function(){document.getElementById(\"personagem3\").style.cssText = 'transition: all 1s  ease-out;'; document.getElementById(\"personagem3\").style.top = \"90px\";},500);\r\n}\r\n\r\n\/\/essa func\u00e3o faz com que o personagem  escorregue rotacione um pouco e volte sua posicao normal depois de 500m\r\nfunction rasteira() {\r\n\/\/aqui diz, mande o personagem para traz, de uma girada, e diminua o andar do personagem\r\ndocument.getElementById(\"personagem3\").style.cssText = 'top:130px; transition: all 0.2s  ease-out; transform : rotate(-95deg);  animation: play1 3s steps(3) infinite;';\r\n\/\/aqui diz, retorne personagem para o chao, desvire a  girada, e aumente o andar do personagem\r\nsetTimeout(function(){document.getElementById(\"personagem3\").style.cssText = 'transition: all 1s  ease-out;'; document.getElementById(\"personagem3\").style.top = \"90px\";},500);\r\n}\r\n\r\n\/\/essa fun\u00e7\u00e3o \u00e9 se o alvo personagem, que apos uma comparacao, as div n\u00e3o podem ficar uma sobreposta a outra, se isso ocorre, quer dizer que teve uma colisao e acaba o jogo\r\nfunction alvo() {\r\n\r\n\/\/aqui temos que difinir todas as variareis para fazer comparacao, tipo qual tamanho e eixos. (veja mais sobre offsetWidth, offsetHeight etc...)\r\n    var aw= document.getElementById(\"personagem3\").offsetWidth;\r\n    var ah= document.getElementById(\"personagem3\").offsetHeight;\r\n    var bw= document.getElementById(\"obstaculo\").offsetWidth;\r\n    var bh= document.getElementById(\"obstaculo\").offsetHeight;\r\n    var cw= document.getElementById(\"obstaculo2\").offsetWidth;\r\n    var ch= document.getElementById(\"obstaculo2\").offsetHeight;\r\n    var at= document.getElementById(\"personagem3\").offsetTop;\r\n    var al= document.getElementById(\"personagem3\").offsetLeft;\r\n    var bt= document.getElementById(\"obstaculo\").offsetTop;\r\n    var bl= document.getElementById(\"obstaculo\").offsetLeft;\r\n    var ct= document.getElementById(\"obstaculo2\").offsetTop;\r\n    var cl= document.getElementById(\"obstaculo2\").offsetLeft;\r\n    \r\n\/\/essa e a programcao que compara os obstaculos, se uma div estiver sobreposta a outra, acaba o jogo chamando a func\u00e3o fim,\r\n    if(al &lt; bl+bw &amp;&amp; bl &lt; al + aw &amp;&amp; at &lt; bt+bh &amp;&amp; bt &lt; at + ah) { fim();}\r\n    if(al &lt; cl+cw &amp;&amp; cl &lt; al + aw &amp;&amp; at &lt; ct+ch &amp;&amp; ct &lt; at + ah) { fim();}\r\n\r\n}\r\n\/\/ essa e a funcao fim que se tiver a colisao das div, acaba o jogo\r\nfunction fim() {\r\ndocument.getElementById(\"principal\").innerHTML = '&lt;div align=center style=font-size:40px&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Game Over&lt;\/h1&gt;&lt;a href=# onclick=history.go(0)&gt;Play&lt;\/a&gt;&lt;\/div&gt;';\r\n}\r\n\r\n\/\/ agora e parte que fica acontecendo o jogo, ficamos chamando  varias vezes a funcao alvo() a cada 100m para fazer as comparacoes da colisao, se tiver a colisao acaba o jogo\r\nsetInterval(function(){alvo()},100);\r\n\r\n\/\/para ficar mais dificil o jogo, vamos sortear o obstaculo qual obstaculo vai aparecer a cada 2segundos\r\nfunction sortear()\r\n{\r\n\/\/fazemos um sorteio entre 1 e 2, qual for sorteado, executa um dos if\/else\r\nvar nn = Math.floor(Math.random() * (2 - 1 + 1) + 1);\r\n    if(nn == 1){ \r\n    document.getElementById(\"obstaculo\").style.display = 'block';\r\n    document.getElementById(\"obstaculo2\").style.display = 'none';\r\n    }\r\n    else\r\n    {\r\n    document.getElementById(\"obstaculo\").style.display = 'none';\r\n    document.getElementById(\"obstaculo2\").style.display = 'block';\r\n    }\r\n}\r\n\r\n\/\/antes de comecar o jogo, j\u00e1 chamamos essa funcao\r\nsortear();\r\n\r\n\/\/ e depois ficamos chamando a cada 2s\r\nsetInterval(function(){sortear()},2000);\r\n\r\n&lt;\/script&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p>Vou colocar mais uma vez o c\u00f3digo completo at\u00e9 agora, para testes, veja abaixo como fica:<\/p>\n<p><span style=\"color: #ff0000;\">*foi feito algumas altera\u00e7\u00f5es, no css para funcionar corretamente, mas n\u00e3o se preocupe, no final, vou disponibilizar o projeto completo para baixar. Coloquei uma borda nos elementos, para voc\u00ea entender as colis\u00f5es.<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n  &lt;head&gt;\r\n    &lt;title&gt;Jogo do coelho&lt;\/title&gt;\r\n&lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=iso-8859-1\"&gt;\r\n&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\r\n&lt;style&gt; \r\nbody {\r\nmargin: auto;\r\nfont: 0.8em\/120% Comic Sans MS,Verdana, Helvetica, sans-serif;\r\ntext-shadow: 0.5px -0.5px #ffffaa;\r\n}\r\n\r\na{color: #0171BB; text-decoration: none; }\r\na:hover { color: #000; text-decoration: none; }\r\n\r\n#principal {\r\n  background-color: #fff;\r\n  margin: auto;\r\n  position: relative;\r\n  max-width: 500px;\r\n  max-width: 500px;\r\n  height: 300px;\r\n  border: 3px solid #73AD21;\r\n}\r\n\r\n#personagem3 {\r\n  z-index:1000;\r\n  width: 60px;\r\n  height: 100px;\r\n  margin: auto;\r\n  position: absolute;\r\n  top: 90px;\r\n  left:200px;\r\n  background: url('https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript.png');\r\n  background-position-x: 7px;\r\n  background-position-y: -30px;\r\n  border:1px solid #000;\r\n  animation: play1 .8s steps(6) infinite;\r\n}\r\n\r\n@keyframes play1 {\r\n    0% { background-position-x: -35px; }\r\n    100% { background-position-x: -578px; }\r\n}\r\n\r\n#chao {\r\n  width: 100%;\r\n  height: 112px;\r\n  margin: auto;\r\n  position: absolute;\r\n  bottom: 0px;\r\n  background: url('https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-2.png')0px 0px;\r\n  animation: play2 2s steps(10) infinite;\r\n}\r\n\r\n@keyframes play2 {\r\n    100% { background-position-x: -112px; }\r\n}\r\n\r\n#obstaculo\r\n{\r\nbackground: url('https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2.jpg');\r\nbackground-position-x: -113px;\r\nbackground-position-y: -108px;\r\nposition: absolute;\r\nz-index:1009;\r\nleft: 440px;\r\ntop: 160px;\r\nwidth:28px;\r\nheight:28px;\r\nborder:1px solid #000;\r\nanimation: play3 2s steps(10) infinite;\r\n}\r\n\r\n@keyframes play3 {\r\n    100% { left: 0px; }\r\n}\r\n\r\n#obstaculo2\r\n{\r\nbackground: url('itens2.png');\r\nbackground-position-x: -155px;\r\nbackground-position-y: -75px;\r\nposition: absolute;\r\nz-index:1009;\r\nleft: 440px;\r\ntop: 80px;\r\nwidth:33px;\r\nheight:32px;\r\nborder:1px solid #000;\r\nanimation: play4 2s steps(10) infinite;\r\n}\r\n\r\n@keyframes play4 {\r\n    100% { left: 0px; }\r\n}\r\n\r\n&lt;\/style&gt; \r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;br&gt;\r\n&lt;div id=\"principal\"&gt;\r\n&lt;center&gt;\r\n&lt;div id=\"personagem3\" onClick=\"pular();\"&gt;&lt;\/div&gt;\r\n&lt;div id=\"obstaculo\"&gt;&lt;\/div&gt;\r\n&lt;div id=\"obstaculo2\"&gt;&lt;\/div&gt;\r\n&lt;div id=\"chao\"  onClick=\"rasteira();\"&gt;&lt;\/div&gt;\r\n&lt;a href=\"javascript:;;\" onClick=\"rasteira();\" style=\"left:0px;top:40%;position: absolute;font-size:20px;\"&gt;&amp;#128317;&lt;\/a&gt;\r\n&lt;a href=\"javascript:;;\" onClick=\"pular();\" style=\"right:0px;top:40%;position: absolute;font-size:20px;\"&gt;&amp;#128316;&lt;\/a&gt;\r\n&lt;\/center&gt;\r\n&lt;\/div&gt;\r\n&lt;div id=\"pos\"&gt;&lt;\/div&gt;\r\n\r\n&lt;script&gt;\r\n\/\/funcoes do jogo\r\n\r\n\/\/essa func\u00e3o faz com que o personagem  pule rotacione um pouco e volte sua posicao normal depois de 500m\r\nfunction pular() {\r\n\/\/aqui diz, mande o personagem para topo 0, de uma girada, e diminua o andar do personagem\r\ndocument.getElementById(\"personagem3\").style.cssText = 'top:0px; transition: all 0.3s  ease-out; transform : rotate(-15deg);  animation: play1 1s steps(1) infinite;';\r\n\/\/aqui diz, retorne personagem para o chao, desvire a  girada, e aumente o andar do personagem\r\nsetTimeout(function(){document.getElementById(\"personagem3\").style.cssText = 'transition: all 1s  ease-out;'; document.getElementById(\"personagem3\").style.top = \"90px\";},500);\r\n}\r\n\r\n\/\/essa func\u00e3o faz com que o personagem  escorregue rotacione um pouco e volte sua posicao normal depois de 500m\r\nfunction rasteira() {\r\n\/\/aqui diz, mande o personagem para traz, de uma girada, e diminua o andar do personagem\r\ndocument.getElementById(\"personagem3\").style.cssText = 'top:130px; transition: all 0.2s  ease-out; transform : rotate(-95deg);  animation: play1 3s steps(3) infinite;';\r\n\/\/aqui diz, retorne personagem para o chao, desvire a  girada, e aumente o andar do personagem\r\nsetTimeout(function(){document.getElementById(\"personagem3\").style.cssText = 'transition: all 1s  ease-out;'; document.getElementById(\"personagem3\").style.top = \"90px\";},500);\r\n}\r\n\r\n\/\/essa fun\u00e7\u00e3o \u00e9 se o alvo personagem, que apos uma comparacao, as div n\u00e3o podem ficar uma sobreposta a outra, se isso ocorre, quer dizer que teve uma colisao e acaba o jogo\r\nfunction alvo() {\r\n\r\n\/\/aqui temos que difinir todas as variareis para fazer comparacao, tipo qual tamanho e eixos. (veja mais sobre offsetWidth, offsetHeight etc...)\r\n    var aw= document.getElementById(\"personagem3\").offsetWidth;\r\n    var ah= document.getElementById(\"personagem3\").offsetHeight;\r\n    var bw= document.getElementById(\"obstaculo\").offsetWidth;\r\n    var bh= document.getElementById(\"obstaculo\").offsetHeight;\r\n    var cw= document.getElementById(\"obstaculo2\").offsetWidth;\r\n    var ch= document.getElementById(\"obstaculo2\").offsetHeight;\r\n    var at= document.getElementById(\"personagem3\").offsetTop;\r\n    var al= document.getElementById(\"personagem3\").offsetLeft;\r\n    var bt= document.getElementById(\"obstaculo\").offsetTop;\r\n    var bl= document.getElementById(\"obstaculo\").offsetLeft;\r\n    var ct= document.getElementById(\"obstaculo2\").offsetTop;\r\n    var cl= document.getElementById(\"obstaculo2\").offsetLeft;\r\n    \r\n\/\/essa e a programcao que compara os obstaculos, se uma div estiver sobreposta a outra, acaba o jogo chamando a func\u00e3o fim,\r\n    if(al &lt; bl+bw &amp;&amp; bl &lt; al + aw &amp;&amp; at &lt; bt+bh &amp;&amp; bt &lt; at + ah) { fim();}\r\n    if(al &lt; cl+cw &amp;&amp; cl &lt; al + aw &amp;&amp; at &lt; ct+ch &amp;&amp; ct &lt; at + ah) { fim();}\r\n\r\n}\r\n\/\/ essa e a funcao fim que se tiver a colisao das div, acaba o jogo\r\nfunction fim() {\r\ndocument.getElementById(\"principal\").innerHTML = '&lt;div align=center style=font-size:40px&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Game Over&lt;\/h1&gt;&lt;a href=# onclick=history.go(0)&gt;Play&lt;\/a&gt;&lt;\/div&gt;';\r\n}\r\n\r\n\/\/ agora e parte que fica acontecendo o jogo, ficamos chamando  varias vezes a funcao alvo() a cada 100m para fazer as comparacoes da colisao, se tiver a colisao acaba o jogo\r\nsetInterval(function(){alvo()},100);\r\n\r\n\/\/para ficar mais dificil o jogo, vamos sortear o obstaculo qual obstaculo vai aparecer a cada 2segundos\r\nfunction sortear()\r\n{\r\n\/\/fazemos um sorteio entre 1 e 2, qual for sorteado, executa um dos if\/else\r\nvar nn = Math.floor(Math.random() * (2 - 1 + 1) + 1);\r\n    if(nn == 1){ \r\n    document.getElementById(\"obstaculo\").style.display = 'block';\r\n    document.getElementById(\"obstaculo2\").style.display = 'none';\r\n    }\r\n    else\r\n    {\r\n    document.getElementById(\"obstaculo\").style.display = 'none';\r\n    document.getElementById(\"obstaculo2\").style.display = 'block';\r\n    }\r\n}\r\n\r\n\/\/antes de comecar o jogo, j\u00e1 chamamos essa funcao\r\nsortear();\r\n\r\n\/\/ e depois ficamos chamando a cada 2s\r\nsetInterval(function(){sortear()},2000);\r\n\r\n&lt;\/script&gt;\r\n\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<center><input type=\"button\" name=\"Submit\" value=\"Testar c&oacute;digo\" onClick=\"document.getElementById('divcode').style.display='block';\" style=\"background-color:#FFCC05;border-radius:15px;padding:10px;width:150px;color:#000;\"><br><br><\/center>\n<p>&nbsp;<\/p>\n<p>Bom vou dividir para terceira parte, para finalizar. E n\u00e3o ficar t\u00e3o extenso.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"divcode\" style=\"display:none;z-index:200000001;padding:10px;border-radius:10px;background-color: #0054A1; position:fixed;top:100px;left: 50%;transform: translate(-50%, 0);\">\n  <font color=#fff>Ap\u00f3s clicar em Copy &#8663;<br>O c&oacute;digo fica pronto para testar ou colar onde quiser no  CTRL+V<\/font>\n  <form name=\"codigo\" id=\"codigo\"  method=\"post\" action=\"https:\/\/www.joemaster.com.br\/codigos\/gerar_codigo.php\" target=\"_blank\"><textarea name=\"testarcodigo\" id=\"testarcodigo\"  cols=\"30\" rows=\"30\" wrap=\"VIRTUAL\"><\/textarea><\/form><input type=\"button\" name=\"Submit\" value=\"Testar\" onClick=\"if(document.getElementById('testarcodigo').value ==''){alert('Copie o c\u00f3digo conforme descrito acima!');}else{document.getElementById('codigo').submit();setTimeout(function(){document.getElementById('testarcodigo').value='';document.getElementById('divcode').style.display='none'; }, 1000);}\" style=\"background-color:#FFCC05;border-radius:15px;padding:5px;width:100px;color:#000;\">\n  <input type=\"button\" name=\"Submit\" value=\"Fechar\" onClick=\"document.getElementById('testarcodigo').value='';document.getElementById('divcode').style.display='none';\" style=\"background-color:#FFCC05;border-radius:15px;padding:5px;width:100px;color:#000;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Continuando o jogo, agora vamos continuar os seguintes itens.\u00a0 Se voc\u00ea n\u00e3o viu a primeira etapa, clique aqui, sen\u00e3o continue abaixo. O que voc\u00ea vai aprender nesse tutorial: Como colocar obst\u00e1culos; Como &#8220;perder o jogo&#8221; ao colidir com o obst\u00e1culo; Ent\u00e3o vamos l\u00e1. Como colocar obst\u00e1culos no jogo Vamos precisar desta imagem: &nbsp; E vamos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":810,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[140],"tags":[145,147,4,141,143,144,142,146],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript - parte 2 - JoeMaster<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript - parte 2 - JoeMaster\" \/>\n<meta property=\"og:description\" content=\"Continuando o jogo, agora vamos continuar os seguintes itens.\u00a0 Se voc\u00ea n\u00e3o viu a primeira etapa, clique aqui, sen\u00e3o continue abaixo. O que voc\u00ea vai aprender nesse tutorial: Como colocar obst\u00e1culos; Como &#8220;perder o jogo&#8221; ao colidir com o obst\u00e1culo; Ent\u00e3o vamos l\u00e1. Como colocar obst\u00e1culos no jogo Vamos precisar desta imagem: &nbsp; E vamos [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/\" \/>\n<meta property=\"og:site_name\" content=\"JoeMaster\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-10T02:23:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-09T11:21:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/img_5f07ae159d065.png\" \/>\n\t<meta property=\"og:image:width\" content=\"769\" \/>\n\t<meta property=\"og:image:height\" content=\"467\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"joemaster\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"joemaster\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/\"},\"author\":{\"name\":\"joemaster\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d\"},\"headline\":\"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript &#8211; parte 2\",\"datePublished\":\"2020-07-10T02:23:43+00:00\",\"dateModified\":\"2022-12-09T11:21:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/\"},\"wordCount\":253,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d\"},\"keywords\":[\"app\",\"como fazer\",\"javascript\",\"jogos\",\"jogos css\",\"jogos html\",\"jogos online\",\"mobile\"],\"articleSection\":[\"jogos\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/\",\"url\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/\",\"name\":\"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript - parte 2 - JoeMaster\",\"isPartOf\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#website\"},\"datePublished\":\"2020-07-10T02:23:43+00:00\",\"dateModified\":\"2022-12-09T11:21:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.joemaster.com.br\/tutoriais\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript &#8211; parte 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#website\",\"url\":\"https:\/\/www.joemaster.com.br\/tutoriais\/\",\"name\":\"JoeMaster\",\"description\":\"Tutoriais de WEB e APLICATIVOS EM HTML5, PHP, JS, CSS\",\"publisher\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.joemaster.com.br\/tutoriais\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d\",\"name\":\"joemaster\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2022\/05\/joemaster.jpg\",\"contentUrl\":\"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2022\/05\/joemaster.jpg\",\"width\":1461,\"height\":281,\"caption\":\"joemaster\"},\"logo\":{\"@id\":\"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/joemaster.com.br\/tutoriais\"],\"url\":\"https:\/\/www.joemaster.com.br\/tutoriais\/author\/joemaster\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript - parte 2 - JoeMaster","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/","og_locale":"pt_BR","og_type":"article","og_title":"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript - parte 2 - JoeMaster","og_description":"Continuando o jogo, agora vamos continuar os seguintes itens.\u00a0 Se voc\u00ea n\u00e3o viu a primeira etapa, clique aqui, sen\u00e3o continue abaixo. O que voc\u00ea vai aprender nesse tutorial: Como colocar obst\u00e1culos; Como &#8220;perder o jogo&#8221; ao colidir com o obst\u00e1culo; Ent\u00e3o vamos l\u00e1. Como colocar obst\u00e1culos no jogo Vamos precisar desta imagem: &nbsp; E vamos [&hellip;]","og_url":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/","og_site_name":"JoeMaster","article_published_time":"2020-07-10T02:23:43+00:00","article_modified_time":"2022-12-09T11:21:27+00:00","og_image":[{"width":769,"height":467,"url":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2020\/07\/img_5f07ae159d065.png","type":"image\/png"}],"author":"joemaster","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"joemaster","Est. tempo de leitura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/#article","isPartOf":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/"},"author":{"name":"joemaster","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d"},"headline":"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript &#8211; parte 2","datePublished":"2020-07-10T02:23:43+00:00","dateModified":"2022-12-09T11:21:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/"},"wordCount":253,"commentCount":0,"publisher":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d"},"keywords":["app","como fazer","javascript","jogos","jogos css","jogos html","jogos online","mobile"],"articleSection":["jogos"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/","url":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/","name":"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript - parte 2 - JoeMaster","isPartOf":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#website"},"datePublished":"2020-07-10T02:23:43+00:00","dateModified":"2022-12-09T11:21:27+00:00","breadcrumb":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/como-fazer-um-jogo-de-pular-obstaculos-e-pontuacao-com-html-css-e-javascript-parte-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.joemaster.com.br\/tutoriais\/"},{"@type":"ListItem","position":2,"name":"Como fazer um jogo de pular, obst\u00e1culos e pontua\u00e7\u00e3o com HTML CSS e Javascript &#8211; parte 2"}]},{"@type":"WebSite","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#website","url":"https:\/\/www.joemaster.com.br\/tutoriais\/","name":"JoeMaster","description":"Tutoriais de WEB e APLICATIVOS EM HTML5, PHP, JS, CSS","publisher":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.joemaster.com.br\/tutoriais\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/228e8f1dfe22da473e356f81c1033a9d","name":"joemaster","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/image\/","url":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2022\/05\/joemaster.jpg","contentUrl":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-content\/uploads\/2022\/05\/joemaster.jpg","width":1461,"height":281,"caption":"joemaster"},"logo":{"@id":"https:\/\/www.joemaster.com.br\/tutoriais\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/joemaster.com.br\/tutoriais"],"url":"https:\/\/www.joemaster.com.br\/tutoriais\/author\/joemaster\/"}]}},"_links":{"self":[{"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/posts\/818"}],"collection":[{"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/comments?post=818"}],"version-history":[{"count":4,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/posts\/818\/revisions"}],"predecessor-version":[{"id":823,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/posts\/818\/revisions\/823"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/media\/810"}],"wp:attachment":[{"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/media?parent=818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/categories?post=818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joemaster.com.br\/tutoriais\/wp-json\/wp\/v2\/tags?post=818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}