Jump to content
Larfis

Eventos no Pascalzim

Recommended Posts

Larfis

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!

Share this post


Link to post
Share on other sites
passarito

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

  • Vote 1

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

×
×
  • Create New...

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.