Grade hexadecimal clicável em c # .net

7

Quero criar um jogo de aventura baseado no Windows Form, em que o jogador clica em um hexágono em um mapa estático para abrir seu próximo encontro. Já tenho o mapa e pretendo digitalizá-lo e convertê-lo em um arquivo .bmp. Meu problema é que não tenho certeza de como vincular a imagem do mapa ao código do jogo. A menos que eu esteja enganado, acho que preciso usar algum tipo de controle de mapa de imagem. Se for esse o caso, preciso plotar cada hexadecimal individualmente ou existe uma maneira de plotar todo o mapa em massa? Encontrei este artigo, mas não tenho certeza se é relevante para o que quero ou não fazer. Estou apenas procurando informações gerais ou links para artigos relevantes. Obrigado.

Raven13
fonte
Acho que o link que você postou explica tudo muito bem. Com a matemática explicada lá, você poderá descobrir em qual hexágono o usuário clicou no seu mapa. Desenhar os blocos individuais pode oferecer mais flexibilidade do que usar uma imagem digitalizada enorme. Basta pensar nos casos em que você precisa trocar um gráfico de ladrilhos?
precisa saber é o seguinte
Esqueci de mencionar que o mapa já tem uma grade hexagonal. Na verdade, é apenas um pequeno mapa - apenas cerca de 25 x 10 hexágonos, e possui terrenos desenhados à mão, nomes de lugares etc. Não tem certeza se isso muda alguma coisa ou não.
Raven13

Respostas:

15

Eu realmente gosto das informações de programação de jogos do Amit , e ele tem uma seção inteira sobre grades hexagonais . Talvez você ache algum desses links informativos?

Aqui está a lista de links que ele fornece:

Peço desculpas se isso não for útil. O Windows Form não é a plataforma ideal para desenvolver um jogo, mas presumo que você tenha uma imagem por quadrado da grade e forneça um evento OnClick. Porém, haveria a questão de sobrepor cantos ... (os cantos transparentes da imagem quadrada em que a imagem da grade está). Em um jogo tradicional, você usaria as informações acima para descobrir como converter coordenadas de clique (espaço na tela) para as coordenadas da grade hexagonal (que o link detalha detalhadamente) e, em seguida, manipulá-las adequadamente.

Ricket
fonte
Esse site foi inestimável para mim quando eu estava implementando uma grade hexadecimal em C # / WPF. Muitas informações boas lá.
Mike Strobel
Uau, Amit ainda está indo! Eu usei isso há mais de 10 anos para aprender A * na escola.
tenpn
+1 por uma explosão do passado. Lembro-me de olhar para esses tutoriais no final dos anos 90. Ótimo link!
Larry Smithmier