Jump to content

Search the Community

Showing results for tags 'colisão'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 7 results

  1. Galera, estou fazendo um jogo e estou pegando de exemplo um código que vi na internet, e adaptando no meu conforme as necessidades, quando chegou na colisão ( a ultima parte do meu jogo já) estou com um problema, eu simplesmente nao consigo colocar ele no meu codigo pois da erro no if Gameover, gostaria que me explicassem o que acontece nessa parte do código para que eu possa adaptar ele em meu jogo function Sprite(caminhoDaImagem, xInicial, yInicial) { //restante do código... this.colidiu = function(outro){ var colidiuNoXTopo = outro.x >= this.x && outro.x <= (this.x + this.largura); var colidiuNoYTopo = outro.y >= this.y && outro.y <= (this.y + this.altura); var colidiuNoXBase = (outro.x + outro.largura) >= this.x && (outro.x + + outro.largura) <= (this.x + this.largura); var colidiuNoYBase = (outro.y + outro.altura) >= this.y && (outro.y + outro.altura) <= (this.y + this.altura); return (colidiuNoXTopo && colidiuNoYTopo) || (colidiuNoXBase && colidiuNoYBase); } } Desde já, muito obrigado
  2. Galera, estou tentando fazer um sistema de colisões eficiente no canvas com javascript. A forma mais básica seria adicionar todos os objetos em uma lista e sempre que o personagem se movesse, a lista seria varrida comparando a posição de cada objeto com a do personagem, levando em conta o espaço que os dois ocupam. Se algum objeto da lista se intersectar com o personagem, o tratamento de colisão seria realizado. Mas percebemos que se tivermos um grande número de objetos no cenário. Este não seria uma forma inteligente de se fazer a coisa. Pois a busca de todos os objetos da lista incluindo a comparação realizada seriam muito custos. Eu gostaria de verificar sempre se à um outro elemento na área do personagem sem ter que varrer todos os elementos da tela. Algo semelhante ao onmouseover, mas para elementos. Alguém conheceria alguma (se possível, a melhor) forma de se fazer isso? Grato desde já....
  3. Não estou conseguindo fazer com que o "enemy", que no caso é o asteroide, colida com a nave e a mesma executar a função de destruir.. Alguém tem alguma ideia do que está dando errado?? Se está faltando algo, etc?! Screenshots:
  4. Pablo Goulart Nogueira

    Detecção de colisão. (Allegro 5)

    Minha pergunta é, como faz e como funciona a detecção de colisão.
  5. Esse é o código que eu fiz para testar a detecção da colisão, mas a janela fecha antes de eu poder ve se está funcionando. if (personagem.x + personagem.bx > blocos.x - blocos.bx && personagem.x - personagem.bx < blocos.x + blocos.bx && personagem.y + personagem.by > blocos.y - blocos.by && personagem.y - personagem.by < blocos.y + blocos.by ) { return 1; } else return 0;
  6. jadsonlucena

    Detecção de colisão eficiente

    Galera, estou tentando fazer um sistema de colisões eficiente no canvas com javascript. A forma mais básica seria adicionar todos os objetos em uma lista e sempre que o personagem se movesse, a lista seria varrida comparando a posição de cada objeto com a do personagem, levando em conta o espaço que os dois ocupam. Se algum objeto da lista se intersectar com o personagem, o tratamento de colisão seria realizado. Mas percebemos que se tivermos um grande número de objetos no cenário. Este não seria uma forma inteligente de se fazer a coisa. Pois a busca de todos os objetos da lista incluindo a comparação realizada seriam muito custos. Eu gostaria de verificar sempre se à um outro elemento na área do personagem sem ter que varrer todos os elementos da tela. Algo semelhante ao onmouseover, mas para elementos. Alguém conheceria alguma (se possível, a melhor) forma de se fazer isso? Grato desde já....
  7. #include <allegro5\allegro.h> #include <allegro5\allegro_native_dialog.h> #include <allegro5\allegro_image.h> const float FPS = 60; const int SCREEN_W = 850; const int SCREEN_H = 640; const int BLUE = 64; enum TECLADO { CIMA, BAIXO, DIREITA, ESQUERDA, END }; int main() { //_______VARIAVEIS DO JOGO________ ALLEGRO_DISPLAY *display = NULL; ALLEGRO_BITMAP *blue = NULL; ALLEGRO_BITMAP *Cenario = NULL; ALLEGRO_EVENT_QUEUE *event_queue = NULL; ALLEGRO_TIMER *timer = NULL; float bouncer_x = SCREEN_W / 2.0 - BLUE / 2.0; float bouncer_y = SCREEN_H / 2.0 - BLUE / 2.0; bool key[] = { false, false, false, false }; bool redraw = true; bool doexit = false; bool desenha = true; bool fim = false; //________INICIALIZAÇÃO DO ALLEGRO 5__________ if (!al_init()) { al_show_native_message_box(display, "Error", "Error", "Failed to initialize allegro!", NULL, ALLEGRO_MESSAGEBOX_ERROR); return 0; } if (!al_init_image_addon()) { al_show_native_message_box(display, "Error", "Error", "Failed to initialize al_init_image_addon!", NULL, ALLEGRO_MESSAGEBOX_ERROR); return 0; } //al_set_new_display_flags(ALLEGRO_FULLSCREEN); display = al_create_display(800, 600); if (!display) { al_show_native_message_box(display, "Error", "Error", "Failed to initialize display!", NULL, ALLEGRO_MESSAGEBOX_ERROR); return 0; } blue = al_load_bitmap("Blue.bmp"); Cenario = al_load_bitmap("Cubo.bmp"); if (!Cenario) { al_show_native_message_box(display, "Error", "Error", "Failed to load image!", NULL, ALLEGRO_MESSAGEBOX_ERROR); al_destroy_display(display); return 0; } event_queue = al_create_event_queue(); if (!event_queue) { al_show_native_message_box(display, "Error", "Error", "Failed to create event_queue!", NULL, ALLEGRO_MESSAGEBOX_ERROR); al_destroy_display(display); return 0; } timer = al_create_timer(1.0 / FPS); if (!timer) { al_show_native_message_box(display, "Error", "Error", "failed to create timer!", NULL, ALLEGRO_MESSAGEBOX_ERROR); al_destroy_display(display); return 0; } al_set_target_bitmap(al_get_backbuffer(display)); //______INSTALAÇÃO________ al_install_keyboard(); //________REGISTRO___________ al_register_event_source(event_queue, al_get_display_event_source(display)); al_register_event_source(event_queue, al_get_timer_event_source(timer)); al_register_event_source(event_queue, al_get_keyboard_event_source()); al_flip_display(); al_start_timer(timer); //_________LOOP PRINCIPAL__________ while (!doexit) { ALLEGRO_EVENT ev; al_wait_for_event(event_queue, &ev); if (ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) { fim = true; } if (ev.type == ALLEGRO_EVENT_TIMER) { desenha = false; if (key[CIMA] && bouncer_y >= 4.0) { bouncer_y -= 4.0; } if (key[bAIXO] && bouncer_y <= SCREEN_H - BLUE - 4.0) { bouncer_y += 4.0; } if (key[ESQUERDA] && bouncer_x >= 4.0) { bouncer_x -= 4.0; } if (key[DIREITA] && bouncer_x <= SCREEN_W - BLUE - 4.0) { bouncer_x += 4.0; } if (key[END]) redraw = true; } else if (ev.type == ALLEGRO_EVENT_KEY_DOWN) { switch (ev.keyboard.keycode) { case ALLEGRO_KEY_W: key[CIMA] = true; break; case ALLEGRO_KEY_S: key[bAIXO] = true; break; case ALLEGRO_KEY_A: key[ESQUERDA] = true; break; case ALLEGRO_KEY_D: key[DIREITA] = true; break; } } else if (ev.type == ALLEGRO_EVENT_KEY_UP) { switch (ev.keyboard.keycode) { case ALLEGRO_KEY_W: key[CIMA] = false; break; case ALLEGRO_KEY_S: key[bAIXO] = false; break; case ALLEGRO_KEY_A: key[ESQUERDA] = false; break; case ALLEGRO_KEY_D: key[DIREITA] = false; break; case ALLEGRO_KEY_ESCAPE: doexit = true; break; } } if (redraw && al_is_event_queue_empty(event_queue)) { redraw = false; al_clear_to_color(al_map_rgb(255, 255, 255)); al_draw_bitmap(Cenario, 80, 0, 0); al_draw_bitmap(blue, bouncer_x, bouncer_y, 0); al_flip_display(); } } while (1); //________DESTRUIR_________ al_destroy_display(display); //al_destroy_bitmap(Correndo); al_destroy_bitmap(Cenario); al_destroy_event_queue(event_queue); al_destroy_timer(timer); al_destroy_bitmap(blue); return 0; }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.