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

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.

LN
"odejmnie" ? Chyba "odejmie" ;p
flowCRANE
Nowa tibia...? :)
LN
  • Rejestracja:około 16 lat
  • Ostatnio:12 miesięcy
  • Postów:1398
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

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

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


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
PoziomeQ
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 8 lat
  • Postów:133
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$.

LN
  • Rejestracja:około 16 lat
  • Ostatnio:12 miesięcy
  • Postów:1398
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:

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

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

Kopiuj
silaLabel.caption := 'Sila: ' + inttostr(poziomSily);
Riddle
on nawet nie wie co to procedura.
PoziomeQ
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 8 lat
  • Postów:133
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

Zobacz pozostałe 5 komentarzy
Riddle
no ale Tag już jest... to jedna z wartości obiektu TLabel. Po co tworzyć dodatkową klasę?
LN
Bo logikę trzymasz w jednym miejscu a nie rozrzucasz po milionie labeli ? Poczytaj lepiej o tym wzorcu MVC.
Riddle
czytałem, wyobraź sb. Ale to ma być jakaś laicka gra, niby 'z nudów i dla podszkolenia'...
LN
Kluczowe slowo "podszkolenia". Uczenie sie zlych nawykow jest na tyle zle, ze lepiej sie juz w ogole nie uczyc... Bo potem tacy ludzie zapelniaja dzial Newbie pytaniami "Trzymam sile w tagu ale nie wiem, jak mam zrobic profesje gracza. Chcialbym "Maga", "Wojownika" i "Zlodzieja". Zrobcie mi to, pls." :/
Riddle
jego problem. Akurat Tag tutaj jest moim zdaniem najlepszym wyjściem.
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 :=....

LN
Michał, nie rezygnuj. Na serio bez podstaw nie ruszysz. Jak masz konkretne problemy, to pisz do mnie na PM. Dawno w Delphi nie pisałem, ale idee wszędzie są te same, więc myślę, że będę mógł Ci pomóc. Ale poczytaj podstawy - choćby na 4p jest chyba artykuł dotyczący tego.
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Laska, z Polski
  • Postów:10056
0

coś bardziej przystosowanego do twoich potrzeb.

Kopiuj
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';
edytowany 2x, ostatnio: Riddle
Zobacz pozostałe 5 komentarzy
Riddle
nie wiem, Write Even Thousands (of lines)?
Riddle
ahaa..... to DRY znałem, a myślałem że WET też coś znaczy...
Riddle
i nawet wymyśliłem rozwinięcie skrótu. Można jakoś oficjalnie potwierdzić to że jestem twórcą nowej zasady? :D
LN
Ja dam Ci za to AntyNobla ;)
Riddle
może być ;D
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

LN
bo nie "intToStr" tylko "strToInt".
Riddle
edytowałem posta, który na pewno w Twoim wypadku zadziała.
LN
  • Rejestracja:około 16 lat
  • Ostatnio:12 miesięcy
  • Postów:1398
0

W odpowiedzi na Twoje pytanie:

Kopiuj
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:

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

a w kodzie "powiekszania sily" daj:

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

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

Riddle
musiałeś mu mówić? chciałem sprawdzić czy posłuchałby mojego rozwiązania z poprzedniej strony.
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

LN
  • Rejestracja:około 16 lat
  • Ostatnio:12 miesięcy
  • Postów:1398
0

Michał, masz "pełen" kod:

Kopiuj
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);
M1
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 13 lat
  • Postów:1
0

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

Zobacz pozostałe 4 komentarze
LN
Dlatego napisałem "praktycznie". Stąd ten dowcip: "W tym roku konferencja programistów Delphi nie odbyła się. Jeden zachorował na grypę a drugiemu nie chciało się jechać samemu" ;p
Riddle
Ha, Ha, Ha, kurde... Macie coś do Delphi? Gdyby ktoś używał IDE Borland Delphi 7 i Borland C++ Builder 6, praktycznie nie zauważyłby różnicy oprócz składni.
Riddle
btw... Ciekawe ilu zapalonych "programistów" zaczęło od delphi, mając w perspektywie napisanie super gry 3D na wzór metina czy innego gówna, a kończąc po kilku miesiącach nauki.
Riddle
Nie chodziło o mi odpowiedź tylko o wyrażenie aluzji do pytającego.
LN
  • Rejestracja:około 16 lat
  • Ostatnio:12 miesięcy
  • Postów:1398
0

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

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)