Ok…eu sei que não estava quase acabando! Não o jogo inteiro, mas pelo menos toda a infra-estrutura necessária. Eis mais algumas imagens dele:
Acho que houve um significativo progresso entre a primeira versão e esta! E talvez até entre a anterior e esta.
Mas como nem tudo são flores, ontem finalmente fui testar o jogo efetivamente no N900. Pois é….até agora os meus testes eram todos no emulador. Somente algumas poucas coisas eu coloca no aparelho para testar. E claro que surgiram vários problemas!
Dois deles darão um pouco de trabalho. O primeiro é com o menu. Na imagem acima já dá pra vê-lo, mas na prática ele deveria ficar deste jeito:
Não sei porque o N900 não está desenhando a transparência corretamente. Na verdade, ele não está desenhando nada transparente no menu!
E o outro problema é na movimentação dos blocos. Existe um temporizador interno que faz com que as peças “caiam” automaticamente. Mas quando isso ocorre junto a um movimento do jogador (movendo a peça para os lados, por exemplo), o desenho na tela fica bagunçado.
O motivo disso acontecer eu sei: para evitar que o jogo consuma muita energia desnecessária, e às vezes até fique lento, eu não redesenho a tela inteira a todo instante, mas apenas o pedaço que sofreu uma alteração. Acontece que com dois movimentos acontecendo ao mesmo tempo, na hora de redesenhar um deles irá sobrepor o outro, deixando “sujeira” na tela.
A solução eu também sei qual adotar, mas pode não ser tão simples: precisa ser um sistema de “pilha”, onde os movimentos são colocados numa fila, e sempre tratados 1 a 1, nunca simultaneamente. Em algumas linguagens isso seria facilmente resolvido com métodos sincronizados (o método não pode ser executado mais de uma vez simultaneamente, sendo que o segundo que o chamou espera até que o primeiro tenha terminado). Mas o Python não possui isso.
Fora tudo isso também notei que o sistema para fazer a peça ser fixada no tabuleiro também não está muito bom. Às vezes o pressionamento mais longo do botão não é reconhecido.
Ainda falta um bocado pro jogo poder ir pros repositórios, mas resolver esses problemas já permitirá pelos menos que ele possa entrar em alpha (mais gente jogue, além de mim).