Larfis 0 Posted November 30, 2019 Report Share Posted November 30, 2019 Boa tarde, venho hoje pedir ajuda a resolver um problema que tenho no meu programa. O programa é um jogo simples de Pong, no qual eu tenho uma função para User Input (mexer as barras para cima e para baixo). Ela está assim de momento: Procedure TeclaPressionada; begin if keypressed then begin case upcase(readkey) of #0:Begin case upcase(readkey) of #80: desenhoBar('B', 1); #72: desenhoBar('B', 0); end; end; #56: desenhoBar ('B', 0); #50: desenhoBar ('B', 1); 'W': desenhoBar ('A', 0); 'S': desenhoBar ('A', 1); 'P': while (upcase(readkey) <> 'P') do ; 'R': reseter(); 'F': Ajogar:= false; end; end; end; O problema é que ao usar uma função deste tipo, com readkeys, é que apenas uma tecla pode ser pressionada ao mesmo tempo. A minha professora não me deixa fazer o trabalho noutra lingua, e, visto que o público-alvo do dia da apresentação é a turma de sexto ano da professora, é provável que eles joguem sujo e nao deixem o oponente jogar (premindo as suas próprias teclas, o que impede o adversário de jogar). Gostaria de saber se há alguma maneira de usar eventos no pascalzim, de modo a evitar este problema. (E, já agora, se há alguma maneira de rodar executáveis atráves do pascalzim). Obrigado! Link to post Share on other sites
passarito 58 Posted December 5, 2019 Report Share Posted December 5, 2019 Há muitos, muitos anos, fiz um jogo do mesmo género e tive 2 problemas com teclas. Esse que referes, mas pior ainda, era o delay entre a primeira movimentação e as seguintes. Para resolver esses problemas tive de usar uma rotina de leitura de teclas em assembley que vinha numa revista chamada Spooler. Hoje à noite vou vasculhar as minhas velharias e procurar o programa, se encontrar o programa eu passo-te a solução para os teus problemas. Entretanto também podes "googlear" ou perguntares aqui no forum na area de assembley 1 Report Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now