Você está aqui: HTML5 ::: HTML5 + JavaScript ::: Animação, Animações, Técnicas de Animação

Como mover uma bola na superfície do Canvas do HTML5 na horizontal - Para a direita, para a esquerda e rebatendo

Quantidade de visualizações: 261 vezes
Nesta dica mostrarei uma técnica básica de animação em JavaScript. Para isso nós vamos usar o objeto Canvas do HTML5 e mover um desenho (uma bolinha) na horizontal. Primeiro vamos movimentá-la da esquerda para a direita, depois da direita para a esquerda e, finalmente, ela vai ficar rebatendo de um lado para o outro da tela.

Comece analisando a imagem a seguir:



Agora vamos ao código. Veja a página HTML completa, incluindo o código JavaScript para a animação:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<!doctype html>
<html>
<head>
  <title>Desenvolvimento de Games usando HTML5 e 
    JavaScript</title>
</head>
<body>
 
<Canvas id="canvas" width="800" height="300"></Canvas>
 
<script type="text/javascript">
  // obtemos uma referência ao elemento Canvas  
  var canvas = document.getElementById("canvas");
  // obtemos o contexto de desenho
  var contexto = canvas.getContext("2d");
  
  // taxa de deslocamento da bola  
  var taxa_deslocamento = 5;
  // posição y da bola
  var pos_y = 100;
  // posição x da bola
  var pos_x = 0;
   
  // função que faz a animação
  function animar(){
    // a bola já está no limite da margem direita
    // do canvas?
    if(pos_x < canvas.width){
      // incrementa a posição x da bola
      pos_x = pos_x + taxa_deslocamento;

      // limpamos o canvas	
      contexto.clearRect(0, 0, canvas.width, canvas.height);

      // e desenhamos a bola na nova posição
      contexto.fillStyle = "red";
      contexto.beginPath();
      contexto.arc(pos_x, pos_y, 15, 0, Math.PI * 2, true);
      contexto.closePath();
      contexto.fill();
	
      // e fazemos uma nova chamada à função animar()
      window.requestAnimationFrame(animar);
    }
  }
   
  // fazemos a primeira chamada à função animar()
  window.requestAnimationFrame(animar);
</script>
   
</body>
</html>

Veja que criamos uma variável chamada taxa_deslocamento que define a quantidade de pixel que o objeto será movido para a direita à cada vez que a função window.requestAnimationFrame() for chamada. Lembre-se de que, em geral, esta função é chamada 60 vezes por segundo (60 frames por segundo). Quanto maior o valor da variável taxa_deslocamento, mais rápido a bolinha se moverá pelo Canvas.

A posição pos_y da bola é definida como 100 pixels e não sofrerá alteração, pois estamos movimento o objeto apenas na horizontal. A variável pos_x começa em 0 e é incrementada com o valor da variável taxa_deslocamento. Como estamos aumentando o valor da variável pos_x de forma positiva, a bola se movimentará para a direita.

Note também o uso da função clearRect() do Canvas para limpar a superfície do elemento antes de desenharmos a bolinha novamente.

Veja agora como podemos movimentar a bolinha da direita para a esquerda:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<!doctype html>
<html>
<head>
  <title>Desenvolvimento de Games usando HTML5 e 
    JavaScript</title>
</head>
<body>
 
<Canvas id="canvas" width="800" height="300"></Canvas>
 
<script type="text/javascript">
  // obtemos uma referência ao elemento Canvas  
  var canvas = document.getElementById("canvas");
  // obtemos o contexto de desenho
  var contexto = canvas.getContext("2d");
  
  // taxa de deslocamento da bola  
  var taxa_deslocamento = 5;
  // posição y da bola
  var pos_y = 100;
  // posição x da bola começando do lado direito
  var pos_x = canvas.width;
   
  // função que faz a animação
  function animar(){
    // a bola já está no limite da margem esquerda
    // do canvas?
    if(pos_x > 0){
      // decrementa a posição x da bola
      pos_x = pos_x - taxa_deslocamento;

      // limpamos o canvas	
      contexto.clearRect(0, 0, canvas.width, canvas.height);

      // e desenhamos a bola na nova posição
      contexto.fillStyle = "red";
      contexto.beginPath();
      contexto.arc(pos_x, pos_y, 15, 0, Math.PI * 2, true);
      contexto.closePath();
      contexto.fill();
	
      // e fazemos uma nova chamada à função animar()
      window.requestAnimationFrame(animar);
    }
  }
   
  // fazemos a primeira chamada à função animar()
  window.requestAnimationFrame(animar);
</script>
   
</body>
</html>

Veja que agora o valor da variável pos_x é ajustada inicialmente para a largura do Canvas. Então, dentro da chamada à função window.requestAnimationFrame() nós decrementamos o seu valor de acordo com o valor da variável taxa_deslocamento, que controla a velocidade do objeto.

Para finalizar, veja o código HTML5 completo que aplica o efeito de rebater na bolinha, na horizontal, é claro:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<!doctype html>
<html>
<head>
  <title>Desenvolvimento de Games usando HTML5 e 
    JavaScript</title>
</head>
<body>
 
<Canvas id="canvas" width="800" height="300"></Canvas>
 
<script type="text/javascript">
  // obtemos uma referência ao elemento Canvas  
  var canvas = document.getElementById("canvas");
  // obtemos o contexto de desenho
  var contexto = canvas.getContext("2d");
  
  // taxa de deslocamento da bola  
  var taxa_deslocamento = 5;
  // posição y da bola
  var pos_y = 100;
  // posição x da bola
  var pos_x = 0;
   
  // função que faz a animação
  function animar(){
    // a bolinha alcançou os limites das margens
    // direita ou esquerda?
    if((pos_x > canvas.width) || (pos_x < 0)){
      // muda o sinal da taxa_deslocamento
      taxa_deslocamento = taxa_deslocamento * -1;
    }
	
    // movimentamos a bolinha
    pos_x = pos_x + taxa_deslocamento;

    // limpamos o canvas	
    contexto.clearRect(0, 0, canvas.width, canvas.height);

    // e desenhamos a bola na nova posição
    contexto.fillStyle = "red";
    contexto.beginPath();
    contexto.arc(pos_x, pos_y, 15, 0, Math.PI * 2, true);
    contexto.closePath();
    contexto.fill();
	
    // e fazemos uma nova chamada à função animar()
    window.requestAnimationFrame(animar);
  }
   
  // fazemos a primeira chamada à função animar()
  window.requestAnimationFrame(animar);
</script>
   
</body>
</html>

Execute este exemplo e veja como a bolinha rebate ao chegar à margem direita ou esquerda do Canvas. O truque aqui foi multiplicar o valor da variável taxa_deslocamento por -1. Em outra dica veremos como movimentar a bola na vertical, ou seja, manipulando a variável y.

Link para compartilhar na Internet ou com seus amigos:

Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como testar se uma string termina com uma determinada substring em Ruby usando uma função ends_with() personalizada

Quantidade de visualizações: 6762 vezes
O Ruby, até a versão 1.8.6 não dispõe de um método para verificar se uma string termina com uma determinada substring. Assim, veja abaixo como escrever uma função ends_with(). Esta função recebe a string e a substring e retorna true se a string terminar com a substring. Eis a listagem completa:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# função auxiliar que permite verificar se
# uma string termina com uma substring
def ends_with(string, substring)
  pos = string.length - substring.length
  
  if string.index(substring, pos) == pos   
    return true
  else
    return false
  end
end

# declara e inicializa uma variável string
frase = "Gosto muito de Java, PHP e Ruby"

# vamos verificar a string termina com "Ruby"
if ends_with(frase, "Ruby")
  puts "A string termina com \"Ruby\""
else
  puts "A string NÃO termina com \"Ruby\""
end

Ao executar este código Ruby nós teremos o seguinte resultado:

A string termina com "Ruby"


Java ::: Classes e Componentes ::: JTable

Java Swing - Como alterar a cor de fundo dos títulos de uma JTable usando o método setBackground() da classe JTableHeader

Quantidade de visualizações: 11851 vezes
Nesta dica mostrarei como podemos chamar o método getTableHeader() da classe JTable para obter um objeto JTableHeader e usar seu método setBackground() para definir a cor de fundo dos títulos da tabela JTable.

Veja o trecho de código a seguir:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

JTableHeader titulos = tabela.getTableHeader();
titulos.setBackground(Color.ORANGE);

Note que "tabela" é uma referência a um objeto da classe JTable.


C ::: Dicas & Truques ::: Arquivos e Diretórios

Como excluir arquivos em C usando a função remove()

Quantidade de visualizações: 18965 vezes
A função remove(), disponível no header stdio.h, pode ser usada para excluir arquivos. Veja sua assinatura:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

int remove(const char *filename);

Veja que esta função recebe o caminho e nome do arquivo a ser excluído e retorna um valor inteiro. Se o arquivo for excluído com sucesso, o valor 0 será retornado. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // nome do arquivo a ser excluído
  char *arquivo = "c:\\testes.txt";

  // vamos excluir
  if(remove(arquivo) == 0)
    printf("Arquivo foi excluido com sucesso.");
  else
    printf("Nao foi possivel excluir o arquivo.");

  printf("\n\n");
  system("PAUSE");
  return 0;
}



JavaScript ::: Dicas & Truques ::: Matemática e Estatística

JavaScript para matemática - Como obter o menor entre dois ou mais valores numéricos usando a função min() do JavaScript

Quantidade de visualizações: 7570 vezes
A função min() do objeto Math da linguagem JavaScript pode ser usada quando temos dois ou mais valores numéricos e gostaríamos de retornar o menor deles. Note que esta função não aceita um vetor (array) como argumento, ou seja, os valores devem ser fornecidos de forma literal ou passados como variáveis independentes.

Veja o código JavaScript completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>

<script type="text/javascript">
  var n1 = 45;
  var n2 = 18;
  var menor = Math.min(n1, n2);
  document.write("O menor número é " + menor);
</script>
 
</body>
</html>

Ao executar este código nós teremos o seguinte resultado:

O menor número é 18

O retorno do método min() é um objeto Number representando o menor dos valores fornecidos. Se nenhum argumento for informado, o retorno será um objeto Infinity, enquanto um objeto NaN será retornado se algum dos valores fornecidos não for um valor numérico válido.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como substituir todos os espaços em uma string pelo caractere de underline em C# usando o método Replace() da classe String

Quantidade de visualizações: 7940 vezes
Nesta dica de C# eu trago um trecho de código que mostra como substituir todos os espaços em uma string pelo caractere de sublinhado (underline). Para a realização desta tarefa nós vamos usar o método Replace() da classe String da linguagem C#.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto muito de C#";
      Console.WriteLine("Frase original: " + frase);

      // substitui os espaços por underline
      frase = frase.Replace(" ", "_");
      Console.WriteLine("Depois da substituição: " + frase);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Frase original: Gosto muito de C#
Depois da substituição: Gosto_muito_de_C#


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 69 usuários muito felizes estudando em nosso site.