Dexarz Napisano Grudzień 22, 2007 Zgłoś Share Napisano Grudzień 22, 2007 Oto jak załatwiłem grawitacje postaci ... Najpierw dodałem zmienną do Player (colground typu boolean) ,ktory informuje czy jest kolizja z podłożem czy nie .... Ten kod dałem do zegara gry : If GravityPlayer=true then begin If Player.colground=false then begin Player.ImageIndex:=1; Player.Y:=Player.y +1; end end else begin If Player.Y=Ybeg then begin GravityPlayer:=true; Player.colground:=false; end; Player.ImageIndex:=2; Player.Y:=Player.y -1; Player.colground:=false; end; Praktycznie jest grawitacja tzn postać idzie w dół dopóki nie ma kolizji z podłożem czy nie ma skoku ,wtedy postać idzie do góry zamiast w dół . Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
Spider100 Napisano Grudzień 22, 2007 Zgłoś Share Napisano Grudzień 22, 2007 CYTAT a ja nie mam 18 lat żeby sobie siedzieć i wam służyć .. Co to miało znaczyć ? My tobie służymy ? A tak w ogóle to jak w takim razie skakać w grach 2D z tą prawdziwą grawitacją ??I jak zrobić taką grawitacje ??Posłużyłbym się tamtym przykładem z artykułu ,ale nie mam OpenGL i prawdopodobnie kody ,jeśli tam w ogóle są (bo nie pamiętam:) ) ,nie działałyby (możliwe ,że się myle)Ale to tylko z ciekawości chce wiedzieć .. Jak nie masz opengla? W systemie powinna być dllka i ze sterownikami do grafy nowsza wersja się instaluje. O ile pamiętam dobrze to w Delphi nie trzeba niczego doinstalowywać by ogl działał na starcie. Sprawdź źródła jeśli się nie skompilują to napisz co się dzieje. Po to jest artykuł aby go przeczytać i zrozumieć treść a nie kopiować kod. Pozdrawiam! Spider ^*^ www.spider.dathox.com Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Grudzień 22, 2007 Autor Zgłoś Share Napisano Grudzień 22, 2007 Nie nie służycie .. Tzn mam opengl w systemie ale nie mam komponentów w Delphi ..A ostatnio co kompilowałem kod ,a nie miałem jakiegoś komponentu to Delphi się oto skarżyło ... Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
Spider100 Napisano Grudzień 22, 2007 Zgłoś Share Napisano Grudzień 22, 2007 Tzn mam opengl w systemie ale nie mam komponentów w Delphi Sprawdź lepiej kod zanim cokolwiek napiszesz... www.spider.dathox.com Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Grudzień 22, 2007 Zgłoś Share Napisano Grudzień 22, 2007 Dexarz: pisałem ci już o tym wcześnie ale napisze jeszcze raz stosuj kolorowanie składni (taki delphi) nie cytaty Link do komentarza Udostępnij na innych stronach More sharing options...
KaYou Napisano Grudzień 23, 2007 Zgłoś Share Napisano Grudzień 23, 2007 Dobrze ,będę kolorował ... To może edytuj?? [ post do usuniecia:] ] "(2b || !(2b)) == question" W. Shakespeare http://jakubniwa.pl - świat sztucznej inteligencji Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Grudzień 30, 2007 Autor Zgłoś Share Napisano Grudzień 30, 2007 Mam problem .. Zrobiłem klase Enemy ..zrobiłem grawitacje (taka sama co Player ,tylko że zamiast Player to dałem Enemy ..) Włączyłem program ,dałem ilość przeciwników na 2 i co wyszło ??Owszem wszystkie postacie się pojawiły ..Wszystko co dotyczyło gracza działało poprawnie ,ale tylko 1 wróg wpływał na grawitacje stworzoną przez mnie ...a tu chodzi oto żeby wszyscy wrogowie wpływali na grawitacje ...oto kod grawitacji wroga ... If Enemy.GravityEnemy=true then begin If Enemy.colground=false then begin If Enemy.Mode='Stand' then Player.ImageIndex:=2; If Enemy.Mode='jumpR' then Enemy.ImageIndex:=7; If Enemy.Mode='jumpL' then Enemy.ImageIndex:=31; Enemy.Y:=Player.y +3; end end else begin If (Enemy.Y<=Enemy.Ybeg) or (Enemy.ColBlock=true) then begin Enemy.GravityEnemy:=true; Enemy.colground:=false; end; If Enemy.Mode='Stand' then Enemy.ImageIndex:=1; If Enemy.Mode='jumpR' then Enemy.ImageIndex:=6; If Enemy.Mode='jumpL' then Enemy.ImageIndex:=30; Enemy.Y:=Player.y -3; Enemy.colground:=false; end; Pewnie winą jest to Enemy ,dlatego tylko 1 enemy wpływa na ten kod ...Próbowałem zmieniać to Enemy na Sprite ale wtedy byly bledy co to gravityenemy itd ... Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Grudzień 30, 2007 Zgłoś Share Napisano Grudzień 30, 2007 Nie wiem jak to zrobiłeś, ale enemy powinien dziedziczyć po player lub na odwrotnie albo po jednej wspólnej klasie (zależy jak wygląda reszta rzeczy w klasach) Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Nvm Napisano Grudzień 30, 2007 Zgłoś Share Napisano Grudzień 30, 2007 Nadal nie kolorujesz! Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Grudzień 30, 2007 Zgłoś Share Napisano Grudzień 30, 2007 Ehh dziwne ale grawitację powinineś mieć tak skodzoną, że "podpinasz" pod nią dowolną rzecz "obiekt" w grze i już na niego działa bez kombinowania czy to jest beczka, wróg czy player (zakładamy, że na niektóre elementy gry grawitacja nie działa UI etc.) Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Grudzień 30, 2007 Autor Zgłoś Share Napisano Grudzień 30, 2007 dziedziczyć tzn ?? Jutro dam wam tutaj kody ...teraz muszę kończyć Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
Brainer Napisano Grudzień 30, 2007 Zgłoś Share Napisano Grudzień 30, 2007 No dziedziczyć, czyli zrobić klasę pochodną od innej. Np.: type TGlowna = class(TObject) public { Public declarations } X1: Integer; end; TPochodna = class(TGlowna) public { Public declarations } X2: Integer; end; Klasa TPochodna ma te same właściwości co klasa TGlowna, a dodatkowo ma swoje własne. .: Brainer :. patrick.nusbaum@gmail.com Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Grudzień 30, 2007 Zgłoś Share Napisano Grudzień 30, 2007 Aa sora że nie pokolorowałem ,ale nie mam na to czasu (sprawy osobiste) masz aż tak mało czasu żeby nacisnąć ten jeden przycisk ?? jeszcze jeden taki numer i dostajesz ostrzeżenie Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Grudzień 31, 2007 Autor Zgłoś Share Napisano Grudzień 31, 2007 Wiecie ,że ja tego napisu/linku nawet nie widziałem ??A to pewnie daltego że piszę szybkie wiadomości a tu nie widze napisu Delphi Teraz bedę sie stosował do regulaminu ... Brainer ,rozumiem o co ci chodzi ... Oto kody : Klasa wroga i gracza TPlayer = class(TSprite) public Mode : String; YBeg : Single; colground : Boolean; Speed,Posx : Integer; ColBlock : Boolean; Gravity : boolean ; procedure CreatePlayer; procedure Move(const MoveCount: Single); override; procedure OnCollision(const Sprite: TSprite; const ColX, ColY: integer); override; end; TEnemy = class(TSprite) public Mode : String; YBeg : Single; colground : Boolean; Speed,Posx : Integer; ColBlock : Boolean; Gravity : boolean ; procedure CreateEnemy; procedure Move(const MoveCount: Single); override; procedure OnCollision(const Sprite: TSprite; const ColX, ColY: integer); override; end; Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Grudzień 31, 2007 Zgłoś Share Napisano Grudzień 31, 2007 Mówisz, że rozumiesz, ale nie posłuchałeś Brainera Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Grudzień 31, 2007 Zgłoś Share Napisano Grudzień 31, 2007 5corpio -jak zrobić taka grawitacje ,jak podpinać ??I ja zrobić skok postaci ? Zajmijmy się aspektem jak "podpiąć" tak by można było podpiąć dowolnie co xD. Sprawa implementacji grawitacji nas nie obchodzi bo spider napisał wystarczający art na początek xD Żebyś mógł zastosować tą fizykę do dowolnej rzeczy na scenie musisz odpowiednio skodzić sobie klasy i zrobić pewne zależności między nimi bo póki co twoje klasy TPlayer i Enemy są do wyrzucenia ponieważ ich wnętrze(pola, metody) się dublują i wyglądają,działają dokładnie tak samo a po co ? (hhmmm no nie ważne;p) Powiedzmy, że kodzisz sobie takie klasy: 1. TSimpleClass - jakaś najbardziej podstawowa i trywialna klasa w całej twojej hierarchii obiektów, która praktycznei gówno może ;p wrzucasz tam jakieś podstawowe pola którymi opisany będzie najbardziej prosty obiekt na scenie mogą to być: Pozycja, Obrót, Nazwa i jakieś ID. A z metod możesz dać: Przesuń, Obróć. I powiedzmy, że w projekcje nie zakładamy by obiekty tego typu były poddawane fizyce no bo i po co ? :/ ? 2. Teraz tworzymy coś fajniejszego: TSceneObj - ta klasa dziedziczy po TSimpleClass przejmując jej pola i metody (wrrrr) zakładamy, że to już nie jest w kasze dmuchał klasa wrzucamy do niej: Czy obiekt jest widoczny(czasem się przydaje:P), Siatkę 3d (jeśli to 3d) lub obrazek jeśli bawimy się w 2d. + dodajemy powiedzmy sobie jakiś rekordzik, który opisze nam stan fizyczny tego obiektu czyli wszystkie te siły etc. (WOW) czyli przyjeliśmy, że na te obiekty już możemy podziałać grawitacją, tarciem i innym dziadostwem co sprawi, że obiekt nie będzie stał bezczynnie, no extra. 3. Potem kodzimy coś ludzkiego powiedzmy klasę THuman - opisywać będzie nam wszystko humanoidalne na scenie: wroga, gracza, czy jakiegoś NPC. No tak to co posiada człowiek to już nie ważne może to być życie, dialogi i inne dziadostwa. A, że nasz malutki człowieczek dziedziczy po TSceneObj to na niego również zadziała grawiatacja jak go prześlemy do metod liczących całą fizykę xD. Teraz minimum co do fizyki. Powiedzmy, że kodzisz tą nieszczęsną fizykę i jako parametr musisz przesłać "coś na czym ona zadziała", mając już tak skodzone klasy przesyłasz do fizyki obiekt typu(właściwie wskaźnik, ale nie ważne) TSceneObj co pozwala Ci na działanie fizyką na dowolnie przez Ciebie wybranym obiekcie - zakładając, że postacie i ludzie są typu THuman a rzeczy na scenie jak beczki, granaty, skrzynie są typu TSceneObj. Chyba rozumiesz czemu przesyłając człowieka do metody, która przyjmuje TSceneObj to zadziała? Bo THuman dziedziczy po TSceneObj czyli posiada w swoim zanadżu pola takie jak to czego oczekujemy czyli nie jesteśmy przez przypadek się w stanie odwołać do czegoś czego nie posiadamy. (rzutowanie w góre, chociaż w javi-e można jeszcze pójśc w dół ale to co innego ;p) Wszystko sprowadza się do dobrego zapisania klas. Poza tym powyższy przykłąd jest szkieletem i pewnie jest niezbyt dobrze opisany ;p Dobra z racji, że mam chwilkę czasu to jak chcesz fizykę to tak: (stosując art. Spider-a i uproszczając pare rzeczy ew. wywalając na fast możesz tak): type TPhysicsMdl = class public Position : Vector2d; Force : Vector2d; Accel : Vecto2d; Velocity : Vector2d; Mass : Single; Collision : Boolean; MaxSpeed : Single; f : Single; Constructor Create; end; Procedure UseForcesOnBody(Body : TPhysicsMdl); Procedure Calculate(Body : TPhysicsMdl; const dT : Single); Procedure ResponseOnCollision(Body : TPhysicsMdl); Procedure ResponseOnCollision(Body : TPhysicsMdl); begin with Body do begin // Tymczasowe wykrywanie kolizji Collision := false; // Jesli obiekt spadnie ponizej jakiegos Y to jest kolizja if Position.y <= -50 then begin Velocity.y := -Velocity.y * 0.5; Position.y := Round(Position.y + 0.1); Collision := true; Velocity.x := Velocity.x - f * Velocity.x; Velocity.z := Velocity.z - f * Velocity.z; end; end; end; Procedure Calculate(Body : TPhysicsMdl; const dT : Single); begin with Body do begin Accel := VectorMul(Force, (1.0 / Mass)); // VectorMul - mnoży Wektor przez stałą i zwraca wektor - to musisz sam sobie skodzić Velocity := VectorAdd(Velocity, VectorMul(Accel, dT)); - VectorAdd - dodaje 2 wektory i zwraca wektor. Position := VectorAdd(Position, VectorMul(Velocity, dT)); end; end; // w tej nie ma co komentować Procedure UseForcesOnBody(Body : TPhysicsMdl); begin with Body do begin Force := VectorZero(); powiedzmy, żę VectorZero ustawia składowe wektora na 0,0 Force.y := -gravity * Mass; end; end; constructor TPhysicsMdl.Create; begin f := 0.09; end; Dokodzisz pare metod do działań na wektorach bierzesz taki kod tworzysz obiekt typu TPhysicsMdl i w jakimś update sceny wrzucasz: 1.UseForcesOnBody 2.Calculate 3. ResponseOnCollision i masz obiekt na który działa fizyka. Tyle, że ten obiekt jest nie materialny ;p czyli nie zobaczysz dopóki nie podepniesz jeszcze tego do swojego modelu czy czegokolwiek. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Grudzień 31, 2007 Zgłoś Share Napisano Grudzień 31, 2007 Wg mnie powinien być jakiś interfejs co się implementuje w klasie i silnik, który bawi się w kolizje i grawitacje dostawał liste klas co implementują ten interfejs. ale skoro dziedziczenie Ci nie wychodzi za bardzo to lepiej nic o implementacji interfejsów lepiej zapomnieć. Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Grudzień 31, 2007 Autor Zgłoś Share Napisano Grudzień 31, 2007 A poco to dziedziczenie ??Sprobowałem tego co mowil 5scorpio ale z tego co wyszło to ,że wróg robi to samo co gracz ... Zajmijmy się wrogiem ...Jak zrobić aby ten kod grawitacji wroga (wyżej w jakimś moim poście jest) działał na wszystkich wrogów a nie tylko na 1 ??Jak zrobić żeby wrogowie nie chodzili jak żołnierzyki ,czyli robili to samo ?? Aha silnik to przecież omega jest ...a silnika do grawitacji to nie znam ... A tak w ogóle to napisze wam o co chodzi w tej mojej wymyślonej grawitacji ... Jeśli Grawitacja gracza/wroga jest włączona ,a nie ma kolizji z podłożem (colground) to Jeżeli postać jest zwrócona w lewo to daj klatke np. 2 ,jeśli w prawo to 3 ,a jeśli stoi to 1 ,wartość Y postaci/wroga = jego wartość + 3...Jeśli jednak grawitacja wroga/gracza nie jest włączona ,nie ma kolizji z Layer2 Mapy (colblock) lub Wysokość postaci jest większa wartości Ybeg ,która została obliczona w procedurze Move ,podczas naciskania na strzałke w górę to Jeżeli postać jest zwrócona w lewo to daj klatke np. 4 ,jeśli w prawo to 5,a jeśli stoi to 6 , wartość Y postaci/wroga = jego wartość - 3...Jeśli jednak wartość Y postaci/wroga jest równa lub mniejsza od Ybeg lub jest kolizja z colblock to wtedy włącz grawitacje ... Myślę że teraz zrozumiecie moją grawitacje ... Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Styczeń 1, 2008 Zgłoś Share Napisano Styczeń 1, 2008 Strasznie kombinujesz oj strasznie... pewnie dlatego działa na 1 wroga bo pewnie: Enemy to jakiś globalny obiekt i sprawdzasz gdzieś w kodzie tylko jego stan a drugiego pewnie nie... jak już chcesz żeby na każdego działała grawitacja to wrzucasz wrogów w tablice lub listę(lepiej) i iterując po całej liście/pętli sprawdzasz grawitację dla Enemy i już. CYTATA tak w ogóle to napisze wam o co chodzi w tej mojej wymyślonej grawitacji ...Nie staram się zrozumieć nawet tego sposobu ale skoro masz cały plan (algorytm) tej swojej grawitacji już w swojej glowie potrafisz go ubrać w słowa to w czym problem w implementacji ? Zamień z polskiego na delphi przecież to proste jak już ma się sposób. Edit: Sprobowałem tego co mowil 5scorpio ale z tego co wyszło to ,że wróg robi to samo co gracz ... Po pierwsze co znaczy, że robi to samo, domyślam się, że chodzi tak jak gracz a to dlatego bo mają 1 metode wspólną do poruszania się to dziwi Cię to ? Na fast wprowadzasz do klasy jakiś typ wyliczeniowy powiedzmy : THumanEnum = (HUMAN_PLAYER, HUMAN_ENEMY, HUMAN_NPC); a potem na podstawie tego pola wybierasz metodę poruszania się. To najszybszy sposób i całkiem znośny jak mi się wydaje na początek. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Styczeń 2, 2008 Autor Zgłoś Share Napisano Styczeń 2, 2008 A jak do takiej listy wrzucić ?? Przecież grawitacja jest zrobiona ,chciałem wam tylko wytłumaczyć na jakiej zasadzie działa ... Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Styczeń 2, 2008 Zgłoś Share Napisano Styczeń 2, 2008 Dodajesz w uses: Classes a potem możesz korzystać z klasy TList, który ma masę fajnych metod xD w tym metodę Add, która dorzuca do listy Pointer. Dokładny opis metod znajdziesz w helpie. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Styczeń 3, 2008 Zgłoś Share Napisano Styczeń 3, 2008 wiemy jak działa grawitacja, ta w życiu, ta zaimplementowana normalnie i ta zaimplementowana przez Ciebie. My ci mówimy dlaczego tylko na jednego wroga wpływa, wpływa na jednego bo tak to napisałeś, powinny byc oni albo w tablicy albo na liście i pętla na nich chodzić i wywoływać grawitacje Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Styczeń 6, 2008 Autor Zgłoś Share Napisano Styczeń 6, 2008 no dodalem to classes ,zadeklarowałem zmienna Enlist typu Tlist i jak teraz sprawdzac ??/ Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Styczeń 6, 2008 Zgłoś Share Napisano Styczeń 6, 2008 ale co chcesz sprawdzać ? Ogólnie działanie na liście jest tak: Lista : TList; Lista := TList.Create(); //Dodawanie: Lista.Add(jakis_obiekt); //A potem przelatujesz przez obiekty w pętli rzutując je na tam odpowiednie sobie obiekty np.: for i := 0 to Lista.Count - 1 do begin TEnemy(Lista[i]).Jakas_metoda_lub_pole; // Ta linijka wyzej moze rowniez wygladać: TEnemy(Lista.Items[i]).Jakas_metoda_lub_pole end; Zadaj konkretne pytanie bo nie rozumiem. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Dexarz Napisano Styczeń 8, 2008 Autor Zgłoś Share Napisano Styczeń 8, 2008 Rozumiem ...Sprobuje i napiszę czy działa (musi działać) ... EDIT Mój błąd zamiast nawiasu dałem [] .. Aktualnie piszę 32 bitowy system operacyjny. ASE2.0 100% ,DME (Dynamic Motion Engine) v2.0 10% ,32 bit PumaOS - 40% Stick's Adventure 3 - 0% Komp nr.1 AMD Duron 1,3 Ghz ,256 MB Ram DDR PC133 (na eBoostr mam jeszcze 1 GB) ,Nvidia GeForce FX 5500 256MB DDR Komp nr.2 (laptop) AMD Athlon XP 2,0 Ghz , 192 MB Ram DDR PC2700 (na eBoostr mam jeszcze 3 GB) , Via S3 Unichrome IGP Przykład programu w ASE2.0: <?arg #CreateProcs; $i:?; #For('$i,10,1,@Lab');@Lab; #Sleep(100); #Message("Ten komputer ulegnie autodestrukcji za $i sekund"); #Retf; #Message('Dead'); arg?> Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.