dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Ir kaads kas labi parvalda Pascal valodu?

 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
erros
Guest





PostPosted: Tue Aug 23, 2005 3:12 pm    Post subject: Ir kaads kas labi parvalda Pascal valodu?

Man ir probleema! Kaada vareetu but Pascal sintakse, lai vareetu nolasiit pogas nospieshanas ilgumu(cik ilgi sekundees vinja ir nospiesta) un izvadiit to uz ekraana?
Back to top
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Aug 23, 2005 5:59 pm    Post subject:

Nezinu par kādu paskālu iet runa (turbo/free/object), lai pateiktu ko sīkāk, bet vispārīgi jādara tā:
* kad poga tiek nospiesta, atceries tekošo laika brīdi kautkādā mainīgajā start,
* kad poga tiek atlasita, atņemt no tekošā laika brīža to start vērtību un tad arī dabūsi ilgumu.
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Tue Aug 23, 2005 6:00 pm    Post subject:

Nu es tev ieteiktu (un diezvai buus kaads savaadaaks ieteikums) katru ciklu paarbaudiit vai poga ir nospiesta. Ja poga ir nospiesta, tad uznjemt laiku cik ilgi ir nospiesta poga. Tiko poga vairs nav nospiesta tad apstaadinaat laika uznjemshanu un izvadiit uz ekraana.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Tue Aug 23, 2005 6:14 pm    Post subject:

nee tomeer ir veelviens veids kuru tiko atcereejos. Sen atpakalj kad programmeeju ar Pascal tad biju atradis veelvienu veidu:

Code:

Uses dos;

var
int9_old:procedure
LastKey:byte

Procedure MyInt9; interrupt; {shitaa proceduura tiek izsaukt katru reizi kad tiek nospiesta vai atlaista poga}

Begin
LastKey:=Port[60];
... {shijaa vietaa saac/beidz laika uznjemshu}
End;

begin
GetIntVec(9,@Int9_old);
SetIntVec(9,@MyInt9);

while(LastKey and $7F) <>1 do {1 noziimee escape poga}
begin
... {galvenais cikls}
end;

SetIntVec(9,@Int9_old);
end.


Ja tev ir jautaajumi par sho kodu (taadi noteikti ir) tad suuti PM.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Aug 23, 2005 6:47 pm    Post subject:

Nu ja lieto Turbo Paskālu, tad šis ir vispareizākais veids.
Bet nav labi lietot šāda veida lastkey. Tā var daudzu pogu nospiedienu pazaudēt. Labāk lietot masīvu no 256 baitiem (katrs vienai pogai), un tad uzstādīt tā masīva elementu true, kuram atbilst tā Port[60] vērtība.
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Tue Aug 23, 2005 8:06 pm    Post subject:

Nu bet protams, ka izmantot masiivu. Vienkaarshi shis bija kaa showcase nejau izmantojams kods.

Ja tomeer veel kaads nesaprata tad sheit buus arii kods ar array
Code:

Uses dos;

var
int9_old:procedure
Key:array [0..20] of bool {var gadiities ka sheit ir kljuuda, jo ar paskaalu jau kaadu laiku neprogrammeeju}
Procedure MyInt9; interrupt; {shitaa proceduura tiek izsaukt katru reizi kad tiek nospiesta vai atlaista poga}

Begin
Key[Port[60] and $7F]=true; {es jau vairs neatceros kaa vareeja uzzinaat vai poga tiek atlaista vai nospiesta - tev to buus jaasagooglee}
... {shijaa vietaa saac/beidz laika uznjemshu}
End;

begin
GetIntVec(9,@Int9_old);
SetIntVec(9,@MyInt9);

while not Key[1] do {1 noziimee escape poga}
begin
... {galvenais cikls}
end;

SetIntVec(9,@Int9_old);
end.

_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group