Gra... Dodawanie Skili i zabieranie pieniędzy.

0

Witam wszystkich Forumowiczów/programistów a więc dzisiaj postanowiłem troszkę odświeżyć swoją lekką wiedzę w delphi 7 i postanowiłem napisać małą gierkę lecz mam problem a więc w oknie jest label w którym mam pokazane ile mam pieniędzy a poniżej skile (siła,poziom,magia...) i miałem fajny plan żeby można było dodawać sobie dany skill za ileś tam $ tylko nie mam pojęcia jak to zrobić że po kliknięciu buttona doda mi +1 skila i odejmnie tam dajmy 100$. Zwracam się tutaj o pomoc ponieważ sam już nie daje rady ^^ może ktoś będzie miał czas i mi pomorze z góry dziękuje.

0

Przeczytaj cokolwiek o podstawach... hasło klucz: zmienne.

0

ogólnie to ja już przeczytałem część kompendium ale i tak połowa mi nie wchodzi do głowy tak więc dlatego zwracam się tutaj :D Sorka za te błędy ale pisałem na szybko ;p

3

Nic z tego. Najpierw uczymy się programować. Potem piszemy gry. W innej kolejności się po prostu nie da i już.

0

chcesz odejmować kasę w grze czy pobierać komuś 100$ z konta za wbicie skilla? -.-

0
PoziomeQ napisał(a)

chcesz odejmować kasę w grze czy pobierać komuś 100$ z konta za wbicie skilla? -.-
tak chce odejmować kase w mojej grze ... Klikam button i np. na labelu jest skill: 67 to jeżeli kliknę to będzie tam skill: 68 i odejmie mi z labela2 np. 100$.

0

Więc ogólnie robisz tak: zmienna "kasa" typu integer, zainicjowana np. wartością 1000. Zmienna np "poziomSily" typu integer, zainicjowana np. 10. Po kliknięciu przycisku robisz tak:

poziomSily := poziomSily + 1;
kasa := kasa - 100;
odswiezLabele();

a odswiezLabele to procedura, ktora dla kazdego labela, ktory wyswietla skille i kase robi:

silaLabel.caption := 'Sila: ' + inttostr(poziomSily);
0

no to przypisujesz temu buttonowi takie funkcje: po kliknięciu odejmujesz w labelce2 100, a w labelce ze skilem dodajesz 1
proste operacje matematyczne. jeśli np. chcesz żeby wraz ze wzrostem poziomu odejmowało więcej kasy zrób ifami
np.
jeśli skill < 10 to odejmij 100
jeśli skill < 20 i skill > 10 odejmij 200
jeśli skill < 30 i skill > 20 odejmij 300
i tak dalej

0

Dobra tam ;d i tak tego nie ogarnę... zrobię gre bez tego i dzięki za pomoc.

sory za ten post ale może mi ktoś poda kod na to że jeżeli w label1 będzie większa liczba od 1000 to label2 wykona coś... chodzi o to; if label1.caption = (nie wiem właśnie co tutaj) then label2.caption :=....

0

coś bardziej przystosowanego do twoich potrzeb.

if Label1.Caption = '0' then Label2.Caption := 'nie jest większe';
if Label1.Caption = '1' then Label2.Caption := 'nie jest większe';
if Label1.Caption = '2' then Label2.Caption := 'nie jest większe';
if Label1.Caption = '3' then Label2.Caption := 'nie jest większe';
  //i tak jeszcze 995 razy...
if Label1.Caption = '999' then Label2.Caption := 'nie jest większe';
if Label1.Caption = '1000' then Label2.Caption := 'jest równe';
if Label1.Caption = '1001' then Label2.Caption := 'jest większe';
  //i tak jeszcze 995 razy
if Label1.Caption = '1997' then Label2.Caption := 'jest większe';
if Label1.Caption = '1998' then Label2.Caption := 'jest większe';
if Label1.Caption = '1999' then Label2.Caption := 'jest większe';
0

nie wiem dlaczego ale wyskoczył ten błąd:
[Error] Unit1.pas(30): There is no overloaded version of 'IntToStr' that can be called with these arguments

0

W odpowiedzi na Twoje pytanie:

if (strToInt(label1.caption) > 1000) then 
begin
  label2.caption := 'Wykonalem cos';
end;

Ale powinienes to zrobic na zmiennych !!!
W kodzie masz taka sekcje "var". Wpisz tam:

var // to juz jest, wiec tego nie wpisuj ;p
  sila : integer;

a w kodzie "powiekszania sily" daj:

  sila := sila + 100;
  label1.caption := intToStr(sila);

I kliknij kilka razy przycisk, ktory to wykonuje i obserwuj, co sie zmienia.

0

już działa dzięki.

tylko jest ta lipa że nie zabiera kasy ^^ ale dobra dam sobie rade :D bo to wygląda tak jak wy byście pisali za mnie tą grę. Bardzo wielkie dzięki :D

0

Michał, masz "pełen" kod:

var
  kasa : integer;
  sila : integer;
// coś tam, coś tam

w onCreate formy daj:
kasa := 1000;
sila := 10;

w kodzie obslugi przycisku:
kasa := kasa - 100;
sila := sila + 10;
labelKasa.caption := intToStr(kasa);
labelSila.caption := intToStr(sila);
0

[losowa nazwa] Dzięki że pomagasz :D Kod działa a jeżeli będę miał jakiś problem to napisze. ^^

0

Ok, to ja już nie zaglądam do tego tematu. Będziesz miał problem, to daj znać na PM.

1 użytkowników online, w tym zalogowanych: 0, gości: 1