Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
ricafilipe

EDITADO - Ajuda PAP Arkanoid

Recommended Posts

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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other sites
ricafilipe

Esqueçam, já consegui meter a dar finalmente.

Podem fechar.

Obrigado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.