Delphi a Lazarus — sterowanie strzalkami

Delphi a Lazarus — sterowanie strzalkami
Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0

Dzień dobry,
mam pytanie, przypomniałem sobie że kiedyś brałem z tego forum do Delphi 7 sterowanie obrazkiem w prawo lewo góra dół, teraz chciałem wkopiować to w lazarusa i zrobić coś podobnego i nie działa... Nie wiem czy późno i człowiek już zmęczony czy tam już jest inny kod klawiszy?

edytowany 1x, ostatnio: flowCRANE
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:Tuchów
  • Postów:12174
3

Najwyraźniej jest za późno, bo zamiast podać konkrety, Ty piszesz jakimś dziwnym szyfrem, nie podając żadnych kluczowych informacji. Wróć więc jutro, tym razem pisząc o co konkretnie chodzi.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0

ok przepraszam za sposób opisywania spraw. Nie mam wprawy.11jpg.jpg czego nie dopisałem do kodu bądź nie zaznaczyłem, że nie mogę skompilować, poza tym że jeszcze musi być to co się stanie po begin i przed end; Moja gramotność na forum wynika z powolnego oswajania. Głupio o wszystko pytać, to chyba banalne sprawy ale google nie rozwiązuje wszystkich problemów dlatego tu pytam o wszystko. Niedługo kupię jakieś książki do delphi może mi się coś rozjaśni.

flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:Tuchów
  • Postów:12174
3
Dodeq napisał(a):

czego nie dopisałem do kodu […]

Modułu LCLType w sekcji uses.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0

dziękuję bardzo!

Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0

mam problem zapisałem a dopiero skompilowałem znowu czy to może być błąd w lazarusie ze znów nie chodzi? tylko nie ma błędu wpisałem wszystko i tak jakby rusza się po jednym razie w prawo w lewo i dalej się nic nie da zrobić. czy to ""bug" jakiś może być?

GS
  • Rejestracja:ponad 14 lat
  • Ostatnio:około 13 godzin
1

@Dodeq:
opisz sensownie i zrozumiale problem, do tego pokaż kod.. nikt nie będzie wróżył z fusów

edytowany 1x, ostatnio: grzegorz_so
Dodeq
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 miesięcy
  • Postów:28
0
Kopiuj
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, LCLType ;

type

  { TForm1 }

  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );

  begin
if Key = vk_right then
begin
image1.show;
image1.left:=+2;
end;
if Key = vk_left then
begin
image1.Show;
image1.left:=-2;
end;
if Key = vk_up then
begin
image1.show;
image1.top:=+2;
end;
if Key = vk_down then
image1.show;
image1.top:=-2;
end;
end.      

Chodzi mi o to że obrazek może się poruszyć jednorazowo tylko o 2 pkt po kolejnym wciśnięciu np drugim pod rząd w prawo bądź lewo nie przesuwa się. Tak jest z każdą stroną. Jak zmienie cyfre z "2" na "5" to ruszy się o 5 pixeli ale też czynność mogę wykorzystać tylko o jeden ruch. LEWO-PUNKT WYJSCIA-PRAWO a LEWO-LEWO-PUNKT WYJŚCIA już nie mogę zrobić. Mam nadzieje że teraz lepiej napisałem. W delphi 7 to działało normalnie w Lazarusie nie chce dobrze działać.

edytowany 1x, ostatnio: cerrato
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:Tuchów
  • Postów:12174
1

Trudno żeby się przesuwał, skoro zdarzenie OnKeyDown jest generowane tylko wtedy, gdy się wciśnie przycisk, a że raz go wciskasz i trzymasz, to tylko raz się wywołuje.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
Marius.Maximus
  • Rejestracja:ponad 14 lat
  • Ostatnio:5 minut
  • Postów:2100
1

Tworzenie oprogramowania to czasami też proces badawczy ,
jak zrobisz sobie prosty eksperyment i pod każde zdarzenie formy które zawiera "Key" dodasz np. writeln('twoja nazwa zdarzenia') to w 30s odkryjesz jedną tajemnice wszechświata

Baw i ucz się ;)


--
Nie przyjmuję reklamacji za moje rady, używasz na własną odpowiedzialność.
Programowanie bez formatowania to jak chodzenie ze spodniami spuszczonymi na kostki. Owszem da się ale po pierwsze nie wygodne, po drugie nieprzyzwoicie wygląda.
Przed zaczęciem nowego wątku przeczytam problem XY

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.