Duvida de como programar a parte de arrebentar linhas do tetris - Visual Basic .NET - Portugal-a-Programar
Duvida de como programar a parte de arrebentar linhas do tetris
By neves92, March 26, 2011 in Visual Basic .NET
neves92 0
O que se passa é o seguinte eu estou a fazer o jogo do tétris para a minha prova de final de curso (12º ano). Mas encontrei um problema quando faz linha e a linha deve arrebentar (isso já faz) e devia mover todas as linhas que estão a cima para baixo e não tou a conseguir...
Ai esta o meu projecto se alguém me poder ajudar agradecia imenso.
http://www.megaupload.com/?d=IQPBZ7WX
Dá uma vista de olhos neste Link : http://www.macoratti.net/10/01/vbn_trt.htm
ja tinha visto isso mas ele usou uma forma bastante complicada cujo a matéria que eu recebi e o tempo que tenho nao me permite estar a estudar aquilo tudo.
Tens de fazer algo tipo assim:
Quando uma linha estiver completa:
1-Fazer o timer(motor de jogo) parar;
2-Fazer as peças dessa linha desaparecerem;
3-Para cada quadrado que esteja acima da posição da linha (a começar na linha acima da que rebentou, e a acabar no topo):
1-Posição(y) += 1;
4-Recomeçar o timer(motor de jogo);
Não peças ajuda por msg privada, mete como um post, para que toda a gente possa saber as respostas.
Muda o sub arrebenta_linhas para:
Sub arrebenta_linhas()
For i = linhas - 1 To 0 Step -1
For y = 0 To colunas - 1
If matriz(i, y) <> 0 Then
If conta = colunas Then
For w = 0 To colunas - 1
matriz(i, w) = 0
tabuleiro(i, w).BackColor = Color.Black
For w = 0 To (colunas - 1)
matriz(a, w) = matriz(a - 1, w)
tabuleiro(a, w).BackColor = tabuleiro(a - 1, w).BackColor
Me.Text = conta
Mas esse não é o teu unico erro no código.
Devias meter tudo em animações usando timers, e usares threads, para poderes pausar a aplicação.
Alem disso, às vezes os blocos param de descer antes de chegarem ao fim.
Cria tambem graficos melhores. Em vez de usares backcolor usa imagens de blocos.
Falta-te um bloco (T):
obrigado por me estarem a ajudar...
agora se me pudessem dizer como meto mais que uma musica ao mesmo tempo e como posso melhor então o design dos blocos agradecia imenso. Mas desde já o meu muito obrigado!
Para melhorares o design, em vez de usares backcolor nos blocos, usa backgroundimage e mete imagens de blocos no projecto.
Para a musica só tenho tempo de te dizer no proximo fim-de-semana. Vou ter teste de ciencias e tenho de estudar.
vou fazer isso espero conseguir apagar as imagens secalhar vou deixar estar o fundo em backcolor e uso imagem só para as peças
Ok. Aconselhe-te tambem a se mudares o fundo para alguma cor, pores a opacidade das casas pretas(sem nada) em 0%, de modo a se ver sempre a cor do fundo.
Estou com dois problemas que é quando se faz mais que uma linha só a primeira linha é que aparece a imagem da explosão o outro problema é que durante o jogo tenho a musica do tetris a tocar e quando explode queria uma musica de uma explosão mas a musica do tetris não devia parar mas para... Alguém me pode ajudar em algum destes problemas?
Dim arrebentou As Integer = 0
For e = 0 To colunas - 1
If matriz(i, e) <> 0 Then
arrebentou += 1
tabuleiro(i, w).BackgroundImage = explosao
'tabuleiro(i, w).Update()
tabuleiro(i, w).Refresh()
If arrebentou <> 0 Then
score += 30 * arrebentou
lbscore.Text = score
SomGeral.Load()
tabuleiro(a, w).BackgroundImage = tabuleiro(a - 1, w).BackgroundImage
arrebenta_linhas()
posy = Int(colunas / 2)
alguém me sabe ajudar nisto please ?
Volta a fazer o upload do código atualizado. Sff.
http://www.megaupload.com/?d=ASHEMC03 [88.4 MB]
tenho 2 semanas para acabar isto! O meu stor já esta a dizer que vou ter grande pap
YA. acabo este ano o 12 ano do curso de gestão e programação de sistemas informáticos e tinha que fazer uma prova de aptidão profissional (PAP). E escolhi fazer o bomberman mas o stor disse que era preciso muitas horas e mudei para o 4 em linha mas em dezembro ja tinha quase feito e ele desafiou me a fazer o tetris e aqui ando eu.