Ir ao conteúdo
  • Cadastre-se

Efeito substuição


Pedro Guilherme

Posts recomendados

  • Moderador

No momento só posso pensar em uma coisa.

 

terás que ficar atualizando a página de segundo em segundo..  assim quando alguem faz a jogada, vai atualizar, com o novo dado em tela.

 

por exemplo:

setInterval(function() {  $("#Quadro_de_avisos").load("avisos.php");}, 1000);

A função setInterval() serve para determinar a execução  de alguma coisa de tempo em tempo

 

1000 = 1 segundo

5000 = 5 segundos

 

No exemplo, a div #Quadro_de_avisos ira executar o arquivo avisos.php a cada 1 segundo.

Link para o comentário
Compartilhar em outros sites

  • Moderador

então.. acredito que isso foi feito para por exemplo dois pcs diferentes vendo a mesma tela. 

se você testar em uma aba.. pode dar erro mesmo..

agora se o objetivo é esse... realmente eu não sei.

 

Só tens que pensar no seguinte,  cada duelo, deve ser único...  ou seja dar um jeito de gerar uma sessão apenas para aquele duelo.. no momento que acabar..  destruir asessão.

 

infelizmente não tenho ideias de como por isso em prática.

Link para o comentário
Compartilhar em outros sites

A questão do duelo é realmente minha maior dúvida...
Mas não fique triste, tenho muitas outra  :D

Eu tenho já estou fazendo o código para usar uma carta, só que estou um problema na substituição da carta, na função usarCarta eu quero que depois que a carta seja usada outra carta entre no lugar, para isso teria que alterar  o id da próxima carta que estiver no deck.Mas como eu pego apenas uma linha especifica na tabela nesse caso?

  $user = $_SESSION["nome"];  $selectthisuser = mysql_query("SELECT * FROM users WHERE nome='$user'");   $iduser = mysql_fetch_array($selectthisuser);  $idthisuser = $iduser["id"];$mao = mysql_query("SELECT deck.* FROM deck INNER JOIN users ON deck.idjogador = users.id WHERE users.id='$idthisuser' AND ativo='1'");$deck = mysql_query("SELECT deck.* FROM deck INNER JOIN users ON deck.idjogador = users.id WHERE users.id='$idthisuser' AND ativo='0'" );for($i=0;$i<5;$i++){$fetchmao = mysql_fetch_array($mao);$card = $fetchmao["idcarta"];$cartaquery = mysql_query("SELECT * FROM cartas WHERE id='$card'");$fetchcarta = mysql_fetch_array($cartaquery);$carta = $fetchcarta["imagem"];echo '<img src="'.$carta.'" width=100>    ';}echo "<BR><BR>";for($i=0;$i<35;$i++){$fetchdeck = mysql_fetch_array($deck);$carddeck = $fetchdeck["idcarta"];$cartaquery2 = mysql_query("SELECT * FROM cartas WHERE id='$carddeck'");$fetchcarta2 = mysql_fetch_array($cartaquery2);$carta2 = $fetchcarta2["imagem"];echo '<img src="'.$carta2.'" width=100>    ';}function usarCarta($id){mysql_query("UPDATE deck SET ativo='2' WHERE idcarta='$id'");}usarCarta(34);  ?>
Link para o comentário
Compartilhar em outros sites

  • Moderador

Cara, você leu as MP que eu enviei?

Com a sugestão de manipular por SQL, o você elimina o uso dessa função usarCarta().

 

basicamente quando usar uma carta, você seta o campo "ativo" para 1(o padrão é zero)..e toda vez que usar uma determinada carta, você fazer um UPDATE SET na tabela alterando de 1 para 0, na carta que foi usada

Link para o comentário
Compartilhar em outros sites

Eu só usei a função para simplificar quando usar cartas @_@ não sabia que era algo tão grave...

eu botei para que quando usar a carta ela fique ativo para 2, assim a carta vai sumir e não vai estar nem no deck e nem na mão.agora eu só preciso repor essa carta, mas pra isso eu preciso pegar apenas 1 coluna do deck e setar ela como ativo =1

Link para o comentário
Compartilhar em outros sites

  • Moderador

Lembre, que o campo TINYINT é 0 ou 1.   utilize se você quer fazer algo como true ou false.

 

Na verdade você só vai encadear as requisições.

 

por exemplo:

 

SE usar a carta ID 2, da tabela mão,  você faz um UPdate SET na tabela deck setando  o campo ativo de 1 para 0.  e na sua tabela mao faz um update set para outro ID que está como 0 na tabela deck...

 

Lógicamente, você pode manipular esses eventos de insert e update com o php.

Link para o comentário
Compartilhar em outros sites

  • Moderador

Veja, o post mais acima. eu editei ele para acrescentar um link de leitura.

 

Bem.. criticas... acredito que não tem nenhuma... a não ser a curva de aprendizado que um pouco lenta.. na minha opinião.

 

Nunca tive contato com o node.js.. mas sei que ele é muito eficiente para resolver o problema de acessos simultâneos.

Link para o comentário
Compartilhar em outros sites

  • Moderador

Sim, é avançado. você precisa entender bem de javascript. 

O node.js realmente muito bom... mas NÂO recomendo, quando se tem pouco conhecimento ainda.

 

Por essa razão, você pode fazer seus jogo, do jeito mais simples...  aí quando aparecer o problema de acesso simultâneo.. você tenta migrar para o node.js,( enquanto isso vai estudando ele).

 

Como mencionei em outro post, você pode fazer a pagina onde ocorrerá a batalha se atualizar a cada segundo, assim qualquer ação feita será mostrada em tela.

O uso da carta já mencionei como fazer pelo banco de dados.. sem precisar daquela parafernália dos arrays.

 

 

Para estudos: 

Em português:

http://nodebr.com/entendendo-o-node/

http://udgwebdev.com/nodejs-para-leigos-introducao/

 

Em inglês:

http://flippinawesome.org/2013/09/30/building-multiplayer-games-with-node-js-and-socket-io/

https://developer.mozilla.org/en-US/docs/Games/Tools/Engines_and_tools

http://buildnewgames.com/real-time-multiplayer/

http://publications.lib.chalmers.se/records/fulltext/128141.pdf

Link para o comentário
Compartilhar em outros sites

Em javascript eu sou muito bom realmente  :)  o problema é que sou bom e javascript "puro" em jquery e ajax eu sei muito pouco.Eu queria mesmo fazer do jeito mais simples, sem o node o problema mesmo é aquele, formular a batalha como voce disse com sessões. eu não faço ideia de como faze-lo

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...