Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''jogo' ou 'jogo em c++''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Encontrado 23 registros

  1. Bom, fiz um curso, e sei programar nas linguagens C (sei que não ajuda muito), e JavaScript , sei também HTML e CSS (que não são linguagens de programação) acham que com isso da pra criar um bom jogo, e ganhar dinheiro? Existe alguma engine para auxilar o desenvolvimento em JavaScript?
  2. package jogo_da_velha; import java.util.Random; public class Computador extends Jogador{ public Computador(int jogador){ super(jogador); System.out.println("Jogador 'Computador' criado!\n"); } @Override public void jogar(Tabuleiro tabuleiro){ Tentativa(tabuleiro); tabuleiro.setPosicao(tentativa, jogador); } @Override public void Tentativa(Tabuleiro tabuleiro){ Random rand = new Random(); int computadorMove; while (true) { computadorMove = rand.nextInt(9) + 1; if (tentativaValido(tabuleiro, Integer.toString(computadorMove))) { }else { break; } } System.out.println("Computer choose " + computadorMove); moviLugar(tabuleiro, Integer.toString(computadorMove), 'O'); } private boolean tentativaValido(Tabuleiro tabuleiro, String toString) { return false; } private void moviLugar(Tabuleiro tabuleiro, String toString, char c) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } } /*********************************************************/ O erro que da quando chega a vez do computador é esse: Computer choose 8 Exception in thread "main" java.lang.UnsupportedOperationException: Not supported yet. at jogo_da_velha.Computador.moviLugar(Computador.java:44) at jogo_da_velha.Computador.Tentativa(Computador.java:34) at jogo_da_velha.Computador.jogar(Computador.java:16) at jogo_da_velha.Jogo.Jogar(Jogo.java:73) at jogo_da_velha.Jogo.<init>(Jogo.java:22) at jogo_da_velha.Jogo_da_velha.main(Jogo_da_velha.java:8)
  3. Alguém tem um script para jogo online de YuGiOh(Se possível estilo ao jogo do site DuelingBook)? Não sei se coloquei na área certa a pergunta.
  4. Boa noite pessoal tudo tranquilo com vocês?. Então, eu tenho um Servidor de Tibia, Nesse Jogo Possui a pasta do CLlENTE. Os Arquivos contidos são separados em 4: Tibia.exe ( Executável) Estes dois arquivos abaixo são responsáveis por armazenar "Sprites" que são desenhos em pixels, é possível abri-los com um Programa chamado Object Builder, nele estão armazenados os "Efeitos, roupas, itens" etc. Tibia.dat e Tibia.Spr O arquivo abaixo é responsável pela imagem de fundo do jogo Tibia.pic Bom, agora que expliquei o básico vamos continuar. Geralmente quando lançam um jogo de tibia, esses arquivos ficam á mostra, ou seja livre para serem ripados (roubados) perdendo assim todo o tempo de criação de um desenho próprio do servidor de outra pessoa. E esse é o problema. Eu quero criptografar os arquivos .SPR .Dat e .PIC, em .cab para que os Jogadores abram somente Executável do jogo Tibia.exe, fazendo assim o Tibia.exe ler o .cab, mas que o arquivo .cab criptografado com os arquivos do jogo não possam ser descriptografados com winrar, .zip, etc . Asism portegendo o Jogo de ripping Aqui está um exemplo de proteção com arquivo .cab e outras dll. mas não faço ideia de como usa-las. Se for possível eu injetar essas mesmas dll's no meu executavel e criar um Arquivo .cab como o da imagem seria ótimo Se alguém puder me ajudar eu agradeço muito!
  5. Se poderem dar uma olhada no código abaixo e me dizer o que está causando o erro, eu agradeço demais ! Aceitos dicas/sugestões para melhorar o código também ! Obs: Estou tentando fazer um jogo da velha. (Ignorem as bibliotecas inúteis .-. ) #include <iostream> #include <stdio.h> //Para função gets #include <stdlib.h> //Para função malloc #include <math.h> #include <iomanip> //JOGO DA VELHA using namespace std; bool x=false,o=false; int jogadas=0; bool verificaX(char *vetor); bool verificaO(char *vetor); int main(){ char casas[3][3]={' ',' ',' ',' ',' ',' ',' ',' ',' '}; int l=0,c=0; while(jogadas<9){ cout << "\t\t" << casas[0][0] << " | " << casas[0][1] << " | " << casas[0][2] << "\n"; cout << "\t\t_________\n"; cout << "\t\t" << casas[1][0] << " | " << casas[1][1] << " | " << casas[1][2] << "\n"; cout << "\t\t_________\n"; cout << "\t\t" << casas[2][0] << " | " << casas[2][1] << " | " << casas[2][2] << "\n\n\n"; cout << "Digite uma linha: "; cin >> l; cout << "Digite uma coluna: "; cin >> c; while(l<=0 || c <=0 || l>3 || c>3){ system("cls"); cout << "Linha ou Coluna não existe!"; cout << "Digite uma linha: "; cin >> l; cout << "Digite uma coluna: "; cin >> c; } system("cls"); if(jogadas%2==0){ casas[--l][--c]='X'; }else{ casas[--l][--c]='O'; } jogadas++; verificaX(&casas); verificaO(&casas); } if(verificaX){ cout << "Jogador X ganhou!"; }else if(verificaO){ cout << "Jogador O ganhou!"; }else{ cout << "Empate!"; } return(0); } bool verificaX(char *vetor){ int l,c; for(l=0;l<3;l++){ if(*vetor[l][0] && *vetor[l][1] && *vetor[l][2] == 'X'){ jogadas=10; return x=true; }else if(*vetor[0][c] && *vetor[1][c] && *vetor[2][c] == 'X'){ jogadas=10; return x=true; } c++; } } bool verificaO(char *vetor){ int l,c; for(l=0;l<3;l++){ if(*vetor[l][0] && *vetor[l][1] && *vetor[l][2] == 'X'){ jogadas=10; return o=true; }else if(*vetor[0][c] && *vetor[1][c] && *vetor[2][c] == 'X'){ jogadas=10; return o=true; } c++; } }
  6. Se poderem dar uma olhada no código abaixo e me dizer o que está causando o erro, eu agradeço demais ! Obs: Estou tentando fazer um jogo da velha. (Ignorem as bibliotecas inúteis .-. ) #include <iostream> #include <stdio.h> //Para função gets #include <stdlib.h> //Para função malloc #include <math.h> #include <iomanip> //JOGO DA VELHA using namespace std; bool x=false,o=false; int jogadas=0; bool verificaX(char *vetor); bool verificaO(char *vetor); int main(){ char casas[3][3]={' ',' ',' ',' ',' ',' ',' ',' ',' '}; int l=0,c=0; while(jogadas<9){ cout << "\t\t" << casas[0][0] << " | " << casas[0][1] << " | " << casas[0][2] << "\n"; cout << "\t\t_________\n"; cout << "\t\t" << casas[1][0] << " | " << casas[1][1] << " | " << casas[1][2] << "\n"; cout << "\t\t_________\n"; cout << "\t\t" << casas[2][0] << " | " << casas[2][1] << " | " << casas[2][2] << "\n\n\n"; cout << "Digite uma linha: "; cin >> l; cout << "Digite uma coluna: "; cin >> c; while(l<=0 || c <=0 || l>3 || c>3){ system("cls"); cout << "Linha ou Coluna não existe!"; cout << "Digite uma linha: "; cin >> l; cout << "Digite uma coluna: "; cin >> c; } system("cls"); if(jogadas%2==0){ casas[--l][--c]='X'; }else{ casas[--l][--c]='O'; } jogadas++; verificaX(&casas); verificaO(&casas); } if(verificaX){ cout << "Jogador X ganhou!"; }else if(verificaO){ cout << "Jogador O ganhou!"; }else{ cout << "Empate!"; } return(0); } bool verificaX(char *vetor){ int l,c; for(l=0;l<3;l++){ if(*vetor[l][0] && *vetor[l][1] && *vetor[l][2] == 'X'){ jogadas=10; return x=true; }else if(*vetor[0][c] && *vetor[1][c] && *vetor[2][c] == 'X'){ jogadas=10; return x=true; } c++; } } bool verificaO(char *vetor){ int l,c; for(l=0;l<3;l++){ if(*vetor[l][0] && *vetor[l][1] && *vetor[l][2] == 'X'){ jogadas=10; return o=true; }else if(*vetor[0][c] && *vetor[1][c] && *vetor[2][c] == 'X'){ jogadas=10; return o=true; } c++; } }
  7. Olá pessoal,sou novo aqui no fórum. Estou com um problema simples,porém essa é minha primeira experiência na criação de jogos.Não tenho ideia de como bolar um código para reiniciar o jogo quando o usuário perder.Vou deixar o código completo para alguém me dá uma dica de como fazer. Obs:To usando o Adobe Flash CS6. import flash.display.MovieClip; import flash.events.MouseEvent; Mouse.hide(); var Player1:MovieClip = new player1; var Tiro:MovieClip = new tiro(); var tempoTiro:Timer = new Timer(10); var atirar:Boolean = true; var varMISSEL:Number=3; var varKM:Number=0; var varGAS:Number=1000; txtGAS.text = String(varGAS); txtMISSEL.text = String(varMISSEL); txtKM.text = String(varKM); addEventListener (Event.ENTER_FRAME,subGas); addEventListener (Event.ENTER_FRAME,somKm); function subGas (event:Event) { varGAS-=3; txtGAS.text = String(varGAS); if (varGAS<=0) { fimdejogo(); {} } } function somKm (event:Event) { varKM+=1; txtKM.text = String(varKM); } addChild(Player1); addEventListener (Event.ENTER_FRAME, controlePlayer1); function controlePlayer1 (event:Event) { Player1.x = mouseX; Player1.y = mouseY; } stage.addEventListener(MouseEvent.CLICK, clique); function clique (event:MouseEvent) : void { if ((atirar=true) && (varMISSEL>0)){ atirar=false; varMISSEL-=1; txtMISSEL.text = String(varMISSEL); addChild (Tiro); Tiro.x = Player1.x; Tiro.y = Player1.y-60; tempoTiro.addEventListener(TimerEvent.TIMER, correTiro); tempoTiro.start(); } } function correTiro (event:TimerEvent) : void { Tiro.y-=5; Tiro.rotation-=5; } var tempoInimigo:Timer = new Timer(1500); tempoInimigo.addEventListener(TimerEvent.TIMER, iniciaInimigo); function iniciaInimigo (event:Event) { var Inimigo:Sprite = new inimigo(); Inimigo.x = Math.random() *550; Inimigo.y = -150; addChild(Inimigo); } tempoInimigo.start(); var tempoInimigo2:Timer = new Timer(1500); tempoInimigo2.addEventListener(TimerEvent.TIMER, iniciaInimigo2); function iniciaInimigo2 (event:Event) { var Inimigo2:Sprite = new inimigo2(); Inimigo2.x = Math.random() *550; Inimigo2.y = -150; addChild(Inimigo2); } tempoInimigo2.start(); var tempoInimigo3:Timer = new Timer(1500); tempoInimigo3.addEventListener(TimerEvent.TIMER, iniciaInimigo3); function iniciaInimigo3 (event:Event) { var Inimigo3:Sprite = new inimigo3(); Inimigo3.x = Math.random() *550; Inimigo3.y = -150; addChild(Inimigo3); } tempoInimigo3.start(); var tempoInimigo4:Timer = new Timer(1500); tempoInimigo4.addEventListener(TimerEvent.TIMER, iniciaInimigo4); function iniciaInimigo4 (event:Event) { var Inimigo4:Sprite = new inimigo4(); Inimigo4.x = Math.random() *550; Inimigo4.y = -150; addChild(Inimigo4); } tempoInimigo4.start(); var tempoMissel:Timer = new Timer(5000); tempoMissel.addEventListener(TimerEvent.TIMER, iniciaMissel); function iniciaMissel (event:Event) { var Missel:Sprite = new missel(); Missel.x = Math.random() *550; Missel.y = -150; addChild(Missel); } tempoMissel.start(); var tempoTanque:Timer = new Timer(5000); tempoTanque.addEventListener(TimerEvent.TIMER, iniciaTanque); function iniciaTanque (event:Event) { var Tanque:Sprite = new tanque(); Tanque.x = Math.random() *550; Tanque.y = -150; addChild(Tanque); } tempoTanque.start(); function fimdejogo() { removeEventListener (Event.ENTER_FRAME, subGas); removeEventListener (Event.ENTER_FRAME,somKm); removeEventListener (Event.ENTER_FRAME, controlePlayer1); stage.removeEventListener(MouseEvent.CLICK,clique); tempoMissel.removeEventListener(TimerEvent.TIMER, iniciaMissel); tempoTanque.removeEventListener(TimerEvent.TIMER, iniciaTanque); tempoInimigo.removeEventListener(TimerEvent.TIMER, iniciaInimigo); tempoInimigo2.removeEventListener(TimerEvent.TIMER, iniciaInimigo2); tempoInimigo3.removeEventListener(TimerEvent.TIMER, iniciaInimigo3); tempoInimigo4.removeEventListener(TimerEvent.TIMER, iniciaInimigo4); tempoTiro.removeEventListener(TimerEvent.TIMER, correTiro); fundo.stop(); varGAS=0; txtGAS.text="CABÔ"; Mouse.show(); tempoInimigo.stop(); tempoMissel.stop(); tempoTanque.stop(); tempoTiro.stop(); } var tempoEnd:Timer = new Timer(1500); tempoEnd.addEventListener(TimerEvent.TIMER, iniciaEnd); function iniciaEnd (event:Event) { var End:Sprite = new end(); End.x = Math.random() *550; End.y = -150; addChild(End); }
  8. Oi galera do scriptbrasil todo bem com vocês? comigo estou bem! Queria uma ajuda com você com um programa JAVA que to usando, infelizmente não sei nada de criar ou mesmo mexer para alterar uma coisa do JAVA, então vim aqui pedi ajuda para vocês, Estou usando um programa chamado AutoTojatta e ele me ajuda a click mas rápido, só que ele tem uma desvantagem grande. Vou deixa aqui uns imagem para ajuda a vocês entenderem! Logo aqui embaixo tem um print deste programa! http://prntscr.com/h1npey Vocês podem ver que ele é simples, só que eu queria alterar uma coisinha nele, Tipo: Queria de uma forma desativa ele com uma tecla do teclado, Explicando melhor Para eu ativa ele preciso click no botão ON e para eu desativa eu ia ter que click no OFF, e eu não queria fazer isto, porque o programa fica clicando nas coisas rápido e fica difícil de desativa ele. Queria saber se tem como coloca uma tecla para desativa ou ativa ele, no meu caso a tecla "R" ou mesmo F1, sei que este forum é para tirar duvidas etc... mas queria muito ajuda de alguém que mexesse esta aria do java! Vou deixa o link para o Download para alguém que possa edita para me e alterar o JAVA, ou se pode colocar uma aria onde eu posso escolher a tecla! Download: AutoTojatta Agradeço a quela pessoa que me ajuda! Fica em PAZ todo deste grupo
  9. Beleza galera?? Tenho que fazer um trabalho, mas não sei nem por onde começar, aceito dicas, soluções e tudo mais!! Tem duas imagens do enunciado do jogo. Valeu galera!!! Salva eu ai kkkk!!!
  10. tfdgomes

    Web Browser Game

    Bons dias, Bem, a ideia generalizada é a criação de um web browser game. já temos algo "palpável" como podem ver aqui Temos estado a desenvolver com os conhecimentos que temos (e com um outro jogo de "base" estamos so a editar na verdade), alem disso a equipa não contam com profissionais ou formados nas áreas de programação o que dificulta as coisas. Tudo o que esta a vista foi feito por amadores, mas as coisas começam a complicar hahaha Queria a vossa ajuda, comentem sobre o que viram, inscrevam-se. Alem disso, aos interessados em integrar a equipa de desenvolvimento (se é que há hahaha), tenho a dizer que o cargo de programador esta obviamente aberto e estamos a precisar mesmo de ajuda nesse campo, será um trabalho pago. Qualquer coisa apitem
  11. Eu estou iniciando ainda e para testar o que estudei até o presente momento, decidi brincar um pouco. Então pensei num "jogo" em que aparece o ano e o usuário tenta acertar o campeão da Copa do Mundo. A princípio não quis programar se o usuário errou ou acertou, só depois que rodar esse primeiro código, que é o seguinte: #include <iostream> #include <string.h> using namespace std; int main(void){ int ano; char time[15]; char i; printf("-----------------------------------------------------------\n"); printf(" J O G O D A S C O P A S D O M U N D O \n"); printf("-----------------------------------------------------------\n"); printf("A seguir, digite quem são os campeoes dos respectivos anos\n"); printf("\n"); for(ano = 1930 ; ano < 2015 ; ano = ano + 4){ printf("Quem foi o campeao de %d ?\n", ano); scanf("%s", &time[ i ]); setbuf(stdin, NULL); } for(ano = 1930 ; ano < 2015 ; ano = ano + 4){ printf("O campeao de %d foi o %s \n",ano, time[ i ]); } system ("pause"); return 0; } Quando tento executar, ele para de funcionar, mas não consigo achar o problema.
  12. Preciso de ajuda com meu jogo. Queria que, com base nesse código, pudesse criar um comando de colisão e assim pular com meu personagem. O site com download do projeto está abaixo, obrigado. https://sites.google.com/site/flashplataforma/arquivoflashjogo/Zero pronto 1.swf
  13. Preciso de ajuda com meu jogo. Queria que, com base nesse código, pudesse criar um comando de colisão e assim pular com meu personagem. O site com download do projeto está abaixo, obrigado. https://sites.google.com/site/flashplataforma/arquivoflashjogo/Zero pronto 1.swf
  14. Meu primeiro projeto de linguagem C é esse xadrez, fiz como uma realização pessoal, pois desde o começo do meu curso de engenharia de software queria fazer algo parecido em C. Para executar o xadrez basta copiar o arquivo para a área de trabalho do seu linux abrir o terminal e executar 2 comandos cd Área\ de\ Trabalho/ ./a.out A dinâmica do xadrez é bem simples, no arquivo anexado tem as instruções de entrada para jogar, consiste em um xadrez para 2 jogadores onde ambos jogam no mesmo teclado executando os movimentos alternadamente. Para o feedback e mais informações sobre, contate no e-mail gustavomarques.gml@gmail.com Disponibilizarei o código assim esse tópico tiver um bom feedback. Segue o link de download do xadrez. https://www.dropbox.com/s/isnjerj8ybonykh/Xadrex.zip?dl=0
  15. Olá, Se eu quisesse criar um jogo em Delphi que muitas pessoas poderiam jogar juntas ao mesmo tempo, um jogo de estratégia, semelhante à esse jogos Web Browser (MMO). O que precisaria pra manter o jogo funcionando. Precisaria de um servidor o tempo todo ou teria como fazer uma espécie de P2P? O jogo seria desses de conseguir recursos, montar exércitos e atacar outros reinos (outros jogadores). Alguém tem idéia de como eu poderia fazer ou link pra algum tutorial sobre o assunto? Obrigado.
  16. Bom dia Galera Estou criando um jogo de pacman no c++, totalmente em código, sem interface gráfica. Estou com dificuldade em abrir uma fase já feita em .txt e transforma-la numa matriz para ser usada como tabuleiro. Se alguém puder dar uma dica ou opinião eu agradeço muito =) Eis o código que tentei: #include <cstdlib> #include <iostream> #include <windows.h> #include <conio.h> #include <time.h> #include<fstream> #include <stdio.h> #include <string.h> #define C 20 #define L 20 using namespace std; int x, y, moedas,fase = 1, contaMoedas; char tabuleiro [C][L]; void abreFase() { ifstream fases; fases.open("fase1.txt"); char linha[20]; while (!fases.eof()) // enquanto não for (end of file) { fases.getline(linha,20); int j=1; for ( int i; i< 20; i++) { strcpy(tabuleiro,linha); } } fases.close(); } void exibeTabuleiro() { cout << " FASE " <<fase <<" " <<endl; for (int i = 0; i < 20; i++) { for (int j = 0; j < 20; j++) { cout << tabuleiro[j] << " "; } cout << endl; } } int main() { abreFase(); exibeTabuleiro(); return 0; } Ele está compilando, mas não retorna nada.
  17. olá, sera que alguém pode me ajudar? recentemente compilei um jogo que fiz com scratch em exe, quando é baixado por algum navegador em qualquer pc, o computador acusa como virus ( QVM42.0.Malware.Gen ),tambem no site (virus total), só que na realidade é só um jogo, alguém pode me dizer o que esta acontecendo, e como devo prosseguir para eliminar o erro ? usei o BYOB para compilação. agradeço a atenção.
  18. Bom, fiz um curso, e sei programar nas linguagens C (sei que não ajuda muito), e JavaScript , sei também HTML e CSS (que não são linguagens de programação) acham que com isso da pra criar um bom jogo, e ganhar dinheiro? Existe alguma engine para auxilar o desenvolvimento em JavaScript?
  19. Hey preciso de ajuda a fazer o jogo pedra, papel, tesoura em php via linha de comando, algo básico e o resultado seria dado ao final de 3 jogadas e o computador deveria escolher as mesmas, aleatoriamente a partir de um vector, obrigado, abraço!
  20. Faça um programa que simule um “dado virtual”. O programa pede ao usuário digitar o número de vezes que o dado será jogado e deve imprimir, para cada vez, a mensagem “O valor sorteado foi” seguido do número sorteado. To tendo Dificuldade nessa questao alguém poderia me ajudar? Acabei Conseguindo porem como faco para dar um loop?para vezes que eu queira que ele jogue, e porque %6+1 que eu não entendi muito bem . #include <stdlib.h> #include <time.h> #include <iostream> int main() { int semente,dado; semente=time(0); srand(semente); dado=rand()%6+1; std::cout<<"Numero Sorteado E " << dado ;
  21. Ola galera, To começando agora com um curso de programação mas quando cheguei em Visual Basic minha aula travou em um jogo simples onde não consigo identificar o erro. O jogo se chama invasores do espaço e na apostila pede pra inserir um Shape, uma imagem, copiar as imagesn e teal... Depois manda digitar o código abaixo e executar, só que aparecem alguns erros. Veja em negrito... Option Explicit Declare Function SndPlaySound Lib "MMSystem" (ByVal Ipsound As String, ByVal Flag As Integer) As Integer (1° Erro) Global Const SND_ASYNC = &H1 Private Sub form_Load() Dim Lugar As Boolean Dim Posicao As Integer Dim Matou As Byte Dim I As Integer (2° Erro) Private Declare Function SndPlaySound Lib "Winmm.dll" Alias "SndPlaySoundA" (ByVal IpszSoundName As String, ByVal uFlags As Long) As Long Private Declare Function mciSendString Lib "Winmm.dll" Alias "mciSendStringA" (ByVal IpstrCommand As String, ByVal IpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim rc As Integer If KeyCode = vbKeyF2 Then Inicia Jogo ElseIf KeyCode = vbKeyF3 Then Timer1.Enabled = False Timer1.Enabled = False MsgBox "Pausa", vcExclamation, "Jogo" Timer1.Enabled = True Timer1.Enabled = True ElseIf KeyCode = vbKeySpace And Line2.Visible = False Then rc = SndPlaySound(App.Path & "\Tiro.WAV", SND_ASYNC) Line2.Visible = True Line2.X1 = Image1.Left + 230 Line2.X2 = Image1.Left + 230 Line2.Y1 = Image1.Tpo - 360 Line2.Y2 = Image1.Top Timer2.Enabled = True ElseIf KeyCode = vcKeyRight Then If Image1.Left < 6600 Then Image1.Left = Image1.Left + 200 End If ElseIf KeyCode = vbKeyLeft Then If Image1.Left > 0 Then Image1.Left Image1.Left - 200 End If End If End Sub Private Sub form_Load() Inicia Jogo End Sub Private Sub Timer1_Timer() For I = 0 To 5 Posicao = Int(Rnd * 100) If Alien(I).Top < 6360 Then Alien(I).Top = Alien(I).Top + 100 If Lugar = False Then If Alien(I).Left < 4200 Then Alien(I).Left = Alien(I).Left + Posicao Lugar = True Else Alien(I).Left = Alien(I).Left - 2000 Lugar = True End If Else If Alien(I).Left > 120 Then Alien(I).Left = Alien(I).Left - Posicao Lugar = False Else Alien(I).Left = Alien(I).Left + 2000 Lugar = False End If End If Else Alien(I).Top = -30 End If If Alien(I).Left >= Image1.Left And Alien(I).Left <= Image1.Left + 480 Then If Alien(I).Top + 480 >= 5280 And Alien(I).Top + 480 <= 5760 Then rc = SndPlaySound(App.Path & "\Perdeu.WAV", SND_ASYNC) Image1.Picture = Image2.Picture Timer1.Enabled = False Timer2.Enabled = False If MsgBox("Você Perdeu", vbYesNo, "Jogo") = vbYes Then Inicia Jogo Else Exit Sub End If End If End If Next I End Sub Private Sub Timer2_Timer() Line2.Y1 = Line2.Y1 - 250 Line2.Y2 = Line2.Y2 - 250 Conta = Conta + 1 If Line2.Y1 < 0 Then Line2.Visible = False Line2.Enabled = False End If For X = 0 To 5 Pega = Alien(X).Left If Line2.X1 >= Alien(X).Left And Line2.X2 <= Alien(X).Left + 480 Then If Line2.Y1 >= Alien(X).Top And Line2.Y2 <= Alien(X).Top + 680 Then If Alien(X).Visible = True Then Line2.Visible = False Matou = Matou + 1 End If Alien(X).Visible = False End If End If Next X If Matou = 6 Then If MsgBox("Você Venceu", vbYesNo, "Jogo") = vbYes Then Timer1.Enabled = False Time2.Enabled = False Inicia Jogo Else Timer1.Enabled = False Time2.Enabled = False End If End If End Sub Private Sub IniciaJogo() For I = 0 To 5 Alien(X).Visible = True Alien(X).Picture = LoadPicture("C:Arquivos de programas\PREPARA\VB6MOD1\face04.ico") Next I Alien(0).Left = 3120 Alien(0).Top = 120 Alien(1).Left = 1800 Alien(1).Top = 120 Alien(2).Left = 840 Alien(2).Top = 1440 Alien(3).Left = 2160 Alien(3).Top = 1560 Alien(4).Left = 3480 Alien(4).Top = 480 Alien(5).Left = 600 Alien(5).Top = 720 Image1.Picture = LoadPicture("C:Arquivos de programas\PREPARA\VB6MOD1\arw03.ico") Timer1.Enabled = True Timer2.Enabled = True Matou = 0 End Sub 1° Erro >> Compile error: Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules. Ai eu removo o global e executo dinovo e aparece outro erro... 2° Erro >> Compile error: only comments may appear after end sub and function or end property Se alguém puder me ajudar e também explicar o porque dos erros, eu ficaria muito agradecido. To precisando passar logo pro Java pra concluir...
  22. viniBiavatti

    Ray Casting

    Olá Pessoal do Fórum ScriptBrasil! RayCasting, uma forma de gerar um ambiente 3d a partir de uma matriz 2d. Gostaria de saber se alguém do fórum tem algum tipo de tutorial em português, ou algum mina algoritmo bem BÁSICO sobre o assunto. Estou muito interessado porém tenho certas dúvidas que não acho a resposta na internet. As explicações são um pouco complicadas más estou procurando muito a respeito. Alguns requisitos que estou atrás é o conhecimento da trigonometria que é essencial para o desenvolvimento e lógica de rayCasting. Já estou me adaptando e tive algumas lógicas bem interessantes para um bom início. O que peço para vocês é que me mandem link de algum tutorial básico, algum exemplo como um programa java com o source disponível. Estou apenas atrás de conhecimento até conseguir desenvolver meu primeiro rayCasting. Procuro algo básico, pois o assunto trata diversas coisas como por exemplo, o "lighting" ou seja, a luminosidade de diversos pontos deste pseudo-3d. Más isto já vejo como avançado. O que quero é apenas construir uma matriz onde irei utilizar como mapa, criar um ângulo de raios para formar o campo de visão e renderizar os pontos onde estes raios entram em conflito com os pontos da matriz (paredes), e assim, criar o psudo-3d em um canvas (java). Sobre RayCasting: Posso dizer que é uma forma de tornar um mapa em uma visão 3d, ou melhor, com aparência 3d. digamos que tenhamos uma matriz de inteiros onde servirá como mapa: int[][] mapa = new int[][]{ {2,2,2,2,2}, {0,0,0,0,0}, {0,0,1,0,0}, {0,0,0,0,0}, {0,0,0,0,0}}; Os pontos 2 definimos como as paredes e o ponto 1, o personagem. O intuito é realizar o lançamento de raios em um certo ângulo de visão do personagem para verificar a distância de colisão da parede (2); Quando o raio entra em colisão com a parede, é calculada a distância entre a posição do personagem com a parede. Podemos utilizar a trigonometria para calcular esta distância com o teorema de pitágoras. (hipotenusa) Nesta imagem, percebe-se que existe algum efeito de luminosidade onde seria mais um complemento pro aprendizado. O que quero por exemplo é algo simples, como um algoritmo java tendo uma matriz, alguns métodos de calculo da distancia e etc e a renderização da matriz em um canvas. Algo básico como: Pode ver que é bem simples para um bom começo . Veja que não tem efeitos de luminosidade e textura, apenas o chateado raycasting. Não possui uma grid sendo "floor", teto ou chão, apenas as paredes. No caso, o cháo é apenas uma pintura verde até o centro da tela e o azul é mesma coisa. Após o conhecimento, irei aprimorar futuramente: Esta imagem já contém algumas sombras e etc... Já procurei muito na internet e achei na maioria tutoriais em inglês. Aprendi algo com eles, más é um tanto complicado de entender pelo volume de código que existe, pois os tutoriais na maioria das vezes ensinam a aplicar texturar e luminosidade e etc... Já outros utilizam outras linguagens como javascript e C++ porém gostaria de tratar isto com java. Já criei algum software para tentar entender um pouco do assunto e estou disponibilizando os métodos principais dele abaixo, junto com alguns comentários. É bem básico pois não existe algum tipo de angulação para movimentação e nova leitura de pontos para formação pseudo-3d. O algoritmo apenas realiza uma varredura da matriz (mapa) e procura por uma parede (2). Ao encontrar, ele calcula a hipotenusa das cordenadas da parede até com as cordenadas do personagem. Tendo esta hipotenusa, é definido o tamanho de um retângulo no canvas. Se a distancia é grande (longe), o retângulo é pequeno. Se a distancia é pequena (perto), o retângulo é grande. Aqui defino meus atributos e o mapa: public class Janela extends Canvas implements Runnable{ int[] pixelsFundo; private BufferedImage img; private int[][] mapa = new int[][]{ {0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}; private int jogadorX = 11; private int jogadorY = 11; public Janela() { this.img = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB); this.pixelsFundo = ((DataBufferInt)img.getRaster().getDataBuffer()).getData(); } Este é o método de renderização no canvas, onde ele irá desenhas os retângulos no componente: Os parâmetros são a largura, altura e posição x, y do retângulo gerado no método calcular: public void render(int x, int y, int xPos, int yPos) { BufferStrategy bs = this.getBufferStrategy(); if(bs == null) { this.createBufferStrategy(2); bs = this.getBufferStrategy(); } Graphics g = bs.getDrawGraphics(); g.drawRect(xPos,yPos,x, y); g.dispose(); bs.show(); } Este é o método de calculo. Ele que defini a distância da parede na matriz e gera um tamanho e posição para renderização dos retângulos: public void calcular() { int poxX = 0; for (int i = 0; i < mapa.length; i++) { poxX = 0; for(int j = 0; j < mapa.length; j++) { if(mapa[i][j] == 2) { double catetoAdj = this.jogadorX - i; double catetoOp = this.jogadorY - j; double hipotenusa = catetoOp / catetoAdj; if(hipotenusa < 0) { hipotenusa = hipotenusa * -1; } System.out.println(hipotenusa); render(37, (int)(200-(hipotenusa*50)),poxX, (int)(180+((hipotenusa*50)/2))); } poxX += 37; } } } Este é um exemplo de saida do programa: Isto é básico e programei para dar início. Pois bem gente um breve resumo: Gostaria de um bom tutorial ou algo que possa ensinar a programar o raycasting como por exemplo, um algoritmo pronto, básico onde so tenha a renderização das paredes e a lógica do raycasting, sem essas frescuras de luminosidade, sombra, texturas, chão, teto e etc... Como mencionei, BÁSICO. Sei que o assunto é um pouco avançado mais nem tanto quanto parece, aliás, estamos lidando com pseudo-3d, um 3d de mentira . Pessoal, espero que me ajudem, sou novo aqui no fórum e desculpe se publiquei algo incorretamente. Obrigado por tudo! Linguagem que utilizo: JAVA Cursando: Ciências da Computação. Curiosidades: O Ray casting foi utilizado no primeiro jogo em pseudo-3d da história, o Wolfstein 3d.
  23. Olá preciso de ajuda com o seguinte problema, preciso que uma função seja reexecutada infinitamente, essa função recebe um valor do teclado, porem preciso q ela sempre reexecute independentemente do usuario digitar algo ou não
×
×
  • Criar Novo...