Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

ricafilipe

EDITADO - Ajuda PAP Arkanoid

Mensagens Recomendadas

ricafilipe

walluz.png

Desculpem o título, mas é mesmo importante. A PAP é para entregar segunda-feira e não consigo acabar isto.

O projecto é um jogo de Arkanoid, em que o programa cria um mapa nos meus documentos e depois lê na form, para criar os níveis. (acho que nesta versão não está a fazer isto, porque é uma versão de teste)

Já tenho isso, a barra a funcionar com o rato e a bola a bater na barra e a ir para várias direcções. A bola também bate nas paredes.

O que não consigo fazer, é mesmo a parte mais importante do jogo, as colisões.

Já tentei de 1000 e uma maneiras, agora esta ultima maneira, que me parece mais plausivel, dá-me um erro na thread se tentar meter as colisões com o tijolo(i,j).

Ou seja, preciso de ajuda para arranjar uma maneira de criar colisões, basta fazerem uma que depois faço o resto.

Deixo em baixo o Projecto, porque é mais facil verem o código apartir dai.

(nota: podem ver um bocado de spam, mas mais tarde vou passar o código para um novo programa, assim que funcione tudo)

Programa: http://www.mediafire.com/?t5kwkydwzzy --- novo link

(desculpem o host, não encontrei nenhum de jeito sem grandes tempos de espera)

Obrigado desde já.  :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Já tentei de 1000 e uma maneiras, agora esta ultima maneira, que me parece mais plausivel, dá-me um erro na thread se tentar meter as colisões com o tijolo(i,j).

E que erro é? Algo como "Cross thread operation not valid"? Sem sim, podes estar a tentar aceder a um controlo do form a partir de uma thread. Nesse caso, tens de usar o invoke:

http://msdn.microsoft.com/en-us/library/ms171728.aspx


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rjota

Nesse projecto não da nenhum erro ainda, pois nos apagamos o código que não funcionava a interagir com a matriz de blocos...

Por exemplo, nos temos uma Bola que é uma picturebox, e queremos fazer-la destruir os blocos da matriz que também são picturebox, mas sempre que tentamos algo do género:

'  "Obj" é a bola picturebox

'  "Tijolos(n_linhas,n_colunas)" é a picturebox dos blocos que estão numa matriz

If obj.Left = tijolos(n_linhas, n_colunas).Right Or obj.Right = tijolos(n_linhas, n_colunas).Left Or obj.Top = tijolos(n_linhas, n_colunas).Bottom Or obj.Bottom = tijolos(n_linhas, n_colunas).Top Then

tijolos(n_linhas, n_colunas).enable = False

End If

tipo uma cena destas, mas dá erro ao executar.

Obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ricafilipe

Tipo, tenho o código para ler os blocos no loading da form.

Depois tenho uma thread com o movimento da bola e as colisões.

Eu queria que nas colisões, ele com este código:

Se a localização da bola for igual a posição do bloco na parte de baixo, então batia nele.

Ou seja, algo como isto:

        For a As Integer = 1 To 10

            For b As Integer = 1 To 10

                If obj.Location.Y = tijolos(a, :) .Location.Y + 70 Then

                    MsgBox("ola")

                End If

            Next

        Next

O a e o b são para ele estar sempre a percorrer a matriz para saber os blocos que ainda tem etc.. ( 10 x 10 )

Mas dá erro se meter o for. Mas sem for já dá.

Ajuda?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.