nock Ierakstīts Janvāris 5, 2005 Share Ierakstīts Janvāris 5, 2005 Nu tad tā. Man tūlīt no klaviatūras pogas birs! Nevaru sataisīt animāciju iekš Delphi! Taisu spēli un tur jāstaigā cilvēciņam. Par piemēru lieku savu zombiju, kaut arī tas nav spēles satāvdaļa: Nu pieņemsim, ka te ir 3 kadri. Man vajag, lai nospiežot uz pogu, tas sāk kustēties. Nu lai viņš iet es izdarīt varu, bet animācija man nesanāk. Lūdzu pasakiet, kas man jādara, lai tie stulbie kadri mainītos? Man jau galīgi spēka nav domāt! Man smadzenie iestīgst šajā momentā: procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin Case Key of 37: if <<<Un šite es jau nezinu ko jāraksta!>>> varbūt man vispār kautkas ir nepareizi darīts? Lūdzu palīdziet! Link to comment Share on other sites More sharing options...
Guest Janvāris 5, 2005 Share Janvāris 5, 2005 Nu gan tev veciit probleemas )) Mhhh Ka atteelot vienu bildi tu zini..a kaa panaakt lai ir kustiiga nespeej iedomaaties? )) Link to comment Share on other sites More sharing options...
nock Janvāris 5, 2005 Author Share Janvāris 5, 2005 Nu gan tev veciit probleemas ))Mhhh Ka atteelot vienu bildi tu zini..a kaa panaakt lai ir kustiiga nespeej iedomaaties? )) Kas smieklīgs? *.gif bildes Delphi nepieņem! A kā izdarīt, lai tās bildes mainās es tiešām nezinu! Vot pastāsti kā, tad zināšu! Link to comment Share on other sites More sharing options...
Birdy Janvāris 5, 2005 Share Janvāris 5, 2005 nu pasaki lai ielaadee naakamo bildi ... kaa ta tu to pirmo dabuuji uz formas ??? pasaki imagei - lai ielaadee naakamo bildi, kur tavs zombijs jau i pakusteejies ... Link to comment Share on other sites More sharing options...
VIL Janvāris 5, 2005 Share Janvāris 5, 2005 *.gif varbūt arī neņem, bet kas Tev liedz izmantot *.bmp, kas windows videi ir ļoti draudzīgs formāts? Link to comment Share on other sites More sharing options...
nock Janvāris 5, 2005 Author Share Janvāris 5, 2005 *.gif varbūt arī neņem' date=' bet kas Tev liedz izmantot *.bmp, kas windows videi ir ļoti draudzīgs formāts?[/quote']Es vēl nekad neesmu redzējis animētu *.bmp :? Tie bmp man ir. 3 kadri! Jautājums ir tāds: Kā nospiežot pogu likt tos kadrus mainīties? T.i. Es nospiežu pogu (Nu tad sanāk ne KeyUp, bet KeyDown) un tas zombis sāk kustēties uz priekšu(to es protu) un tie zīmējumi sāk mainīties! Man vajaga paskaidrot, kā likt nepārtraukti mainīties pirmajam, otrajam un trešajam kadram pēc noteiktas secības!!!!!! Understand? Un to man jāzina pēc iespējas ātrāk! Savādāk jau galva vārās! Pats jau neko nesajēdzu... Man vajag kautko līdzīgu šitam: Image1.Visible:=true; Image2.Visible:=false; un tā bez apstājas Link to comment Share on other sites More sharing options...
VIL Janvāris 5, 2005 Share Janvāris 5, 2005 Oho, pēc iespējas ātrāk Tev ir TCanvas objekts. Uz šī objekta Tu vari izvadīt ko Tev vajag un kad Tev vajag. Rēķini, ka cilvēka acij pilnīgi pietiek ar 24 kadriem sekundē. Tātad Tev bilde jāmaina ne biežāk par šo vērtību. Praksē mācību nolūkos to var darīt retāk. P.S. Delphi nāk līdzi tāds Samples folderītis. Tur ir paraugi, kā izvadīt attēlus uz formas. Link to comment Share on other sites More sharing options...
nock Janvāris 5, 2005 Author Share Janvāris 5, 2005 Oho' date=' pēc iespējas ātrāk Tev ir TCanvas objekts. Uz šī objekta Tu vari izvadīt ko Tev vajag un kad Tev vajag. Rēķini, ka cilvēka acij pilnīgi pietiek ar 24 kadriem sekundē. Tātad Tev bilde jāmaina ne biežāk par šo vērtību. Praksē mācību nolūkot to var darīt retāk. P.S. Delphi nāk līdzi tāds Samples folderītis. Tur ir paraugi, kā izvadīt attēlus uz formas.[/quote'] Uhh... bildi ielikt es protu! Un manā delphi nekāds folderītis iekšā nav gājis! T.i. man ir neoficiālā versija un nezinu kāpēs, ja instalē ar sampliem, delfiks neiet. Link to comment Share on other sites More sharing options...
nock Janvāris 5, 2005 Author Share Janvāris 5, 2005 Eh' date=' ka Paskālu loti ilgu laiku neesmu cilājis...Pseidokods: ciklasakums: Ja ir jākustās, tad turpināt, ja nav jākustās, tad iziet no cikla Parādīt 1. kadru pauze Parādīt 2. kadru pauze parādīt 3. kadru pauze ietuz ciklasakums beigas: Tas ir tev ir 3 atsevišķas bildes, kurās katrā ir pa vienam kadram.[/quote'] Paskālā pauze saucās Delay, bet kā pauze saucas Delphi? Link to comment Share on other sites More sharing options...
VIL Janvāris 5, 2005 Share Janvāris 5, 2005 Kad es taisīju dzīvnieku bara simulācijas mājas darbu, pieturējos pie pieejas: sadalīt programmu divās daļās: 1) lietotāja inputs un objektu savstarpējā mijiedarbība 2) spēles laukuma izmešana uz ekrāna Ar vienkāršu ciklu problēma būs tur, ka ar laiku saradīsies daudz objektu, bet cikls neatbrīvos resursus. Pieņemu, ka mūsu koders abus HT pročus izmantot nemācēs, līdz ar to visas desmit figūriņas savu animāciju veiks secīgi nevis paralēli Ja vēl ņem vērā, ka var rasties objektu pārklāšanās... Link to comment Share on other sites More sharing options...
Guest Janvāris 5, 2005 Share Janvāris 5, 2005 Mans domaat ka dzeks nav dzimis programmists.. un diezvai pa taadu kljuus... :O) VIL: tiiri tehniski protams seciigi. tachu cilveeks to uztvers kaa paraleelas darbiibas. Cita lieta ka shitik prasti taisot rodas probleema ka uz dazhaadiem datoriem zombiji bizo dazhaados aatrumos )) Link to comment Share on other sites More sharing options...
gathis Janvāris 5, 2005 Share Janvāris 5, 2005 sleep() Link to comment Share on other sites More sharing options...
kasini Janvāris 5, 2005 Share Janvāris 5, 2005 Viselementaaraakais variants ir uzlikt uz formas 4 objektus timage. Trijos no tiem ielādē iekšā bildēti un uzstādi visible false. Pieliec klāt taimeri, uzstādi kaut kādu intervālu un enabled = true. Taimera apstrādātājā raksti kaut ko šādu var i: integer; begin case i of 1: Image1.picture:= Image2.picture; 2: Image1.picture:= Image3.picture; 3: Image1.picture:= Image4.picture; end; inc(i); if i >= 3 then i:=1; Nu ar sho 1 min sacereeto kodu vareetu pietikt, lai ieguutu kaut kaadu raustiiigu animaaciju. Ja kaut kur truukst kaadi ; vai end; , tad saliec pats. Link to comment Share on other sites More sharing options...
nock Janvāris 5, 2005 Author Share Janvāris 5, 2005 Kuuminsh: Un kad tu Delphus zinājis tikai dažus mēnešus visu prati??? Link to comment Share on other sites More sharing options...
Vilx- Janvāris 5, 2005 Share Janvāris 5, 2005 Shaadas lietas parasti dara ar Taimeri. Ja to visu ieliks ieksh pogas spiediena Handlera, tad animaacijas laikaa neko citu vairs nevarees dariit... Uztaisi vienkaarshi Taimer objektu, ar vajadziigo animaacijas intervaalu, un pie vajadziibas aktivizee. Veel labaak - Taimeris lai iet visu laiku, un uz ekraana raada shobriideejo speeles staavokli. Tas buus tas, ko VIL teica - sadala 2 daljaas. Pogas spiedieni tikai updeitos infu par to, kas notiek - kjipa, uzliks mainiigo, ka Zombijs kustas, taadaa un taadaa virzienaa. Taimeris tad ik pa laicinjam apskatiisies, un, secinaajis, ka Zombijs kustas, saaks raadiit seciigi 3 dazjaadus .bmp failus... Protams, kaut kur arii jaapieglabaa, kursh .bmp fails buus naakamais, lai naakamajaa Taimera funkcijas izpildee notiktu tas... utt. Link to comment Share on other sites More sharing options...
monZy Janvāris 5, 2005 Share Janvāris 5, 2005 iesaku labu maaciibu prasiit dev.gamez.lv Link to comment Share on other sites More sharing options...
assaulter Janvāris 6, 2005 Share Janvāris 6, 2005 Man domāt jātaisa procedūra, kas pieņem globālo mainīgo ar nozīmi vai vispār jākustas. Tad šī procedūra jāieliek taimerī. { pie globālajiem mainīgajiem } var jakustasUp: boolean; procedure animeeUp; begin while jakustasUp do begin for i to 4 do begin if i=1 then begin Image1up.picture.visible:=False; Image2up.picture.visible:=True; Image3up.picture.visible:=True; Image4up.picture.visible:=True; end; if i=2 then begin Image1up.picture.visible:=True; Image2up.picture.visible:=False; Image3up.picture.visible:=True; Image4up.picture.visible:=True; end; if i=3 then begin Image1up.picture.visible:=True; Image2up.picture.visible:=True; Image3up.picture.visible:=False; Image4up.picture.visible:=True; end; if i=4 then begin Image1up.picture.visible:=True; Image2up.picture.visible:=True; Image3up.picture.visible:=True; Image4up.picture.visible:=False; end; { pie Uses jāiekļauj SysUtils, lai sleep strādātu } { ja taisa ar taimeri, tad nākamā rinda lieka } sleep(200); end; inc(i); if i>=3 then i:=1; end; end; { NOTIKUMS OnTimer } procedure TForm1.Timer1Timer(Sender: TObject); begin animeeUp; animeeDown; animeeLeft; animeeRight; end; { NOTIKUMS OnFormCreate } procedure TForm1.FormCreate(Sender: TObject); begin jakustasUp:=false; end. procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin Case Key of 37: if <<<Un šite es jau nezinu ko jāraksta!>>> begin jakustasUp:=true; { šajā gadījumā taimera notikums var iestāties } { pēc kāda laika vai arī uzreiz atkarībā no } { noteiktā intervāla tāpēc labāk pašam to ielēgt } { ar programmas kodu līdz ar attiecīgās pogas } { nospiešanu } end; end; end; { vēl jābūt apstrādātam notikumam par pogu atlaišanau un } { šajā gadījumā jāveic: "jakustas:=False" un taimers jāatslēdz } :!: Nedrīkst aizmirst arī par notikumu Update, kas iestājas brīdī, kad kādu logu uzliek virs spēles formas (jāpārzīmē laukums - no jauna jāparāda šobrīdējais stāvoklis). http://delphi.about.com/od/graphics/a/delphigif.htm te ir dažas komponentes, kas var uzņemties gif attēlošanu Link to comment Share on other sites More sharing options...
Vilx- Janvāris 6, 2005 Share Janvāris 6, 2005 Manupraat "korektaak" (mazaak probleemu) vareetu buut, ja Timer1Timer neizsauktu veselu 4 kadru ziimeeshanu, bet tikai 1. Katru reizi citu, protams (statusu glabaajam globaalajos mainiigajos). Citaadi shitaa buus raustiita animaacija. Sleep nav taa preciizaakaa funkcija, un, ja jau ir Timer1, lai meeriitu laiku, izmantot veel Sleep() prieksh tam ir... nelogjiski. Nu, manupraat, vareetu buut probleemas. Link to comment Share on other sites More sharing options...
assaulter Janvāris 6, 2005 Share Janvāris 6, 2005 Vilx- Sleep nav taa preciizaakaa funkcija, un, ja jau ir Timer1, lai meeriitu laiku, izmantot veel Sleep() prieksh tam ir... nelogjiski. Nu, manupraat, vareetu buut probleemas. Sad tāpēc jau nokomentēju atrunu par sleep! { pie Uses jāiekļauj SysUtils, lai sleep strādātu } { ja taisa ar taimeri, tad nākamā rinda lieka } sleep(200); Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!