View previous topic :: View next topic |
Author |
Message |
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Sun Feb 14, 2010 10:27 pm Post subject: Pārlecoš Spraits(Gariņš) |
|
Radās jautājums kā uztaiīt pārlecošu spraitu
Piemēram: Uzspiežot Taustiņu down tas pārlektu 1 rūtiņu zemāk.
Nevis nobrauktu.
Code: | if (klaviatura.IsKeyDown(Keys.Down))
laukumaPozicija.Y -= atrums; |
|
|
Back to top |
|
|
DeRatizators
Joined: 27 Apr 2006 Posts: 492
|
Posted: Sun Feb 14, 2010 10:50 pm Post subject: |
|
Šis labs. Pirmo reizi redzu, ka jau tēmā ir iekļauta atbilde ... vai arī kaut ko smagi pārpratu ?
Piezīmē lauciņam zaļas kājas un antenas... pfff _________________ Any PANCAKE has to be long and thin and short and fat. Not to mention being an excellent insulator and a superb conductor. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Feb 14, 2010 10:56 pm Post subject: |
|
Viņš nobrauc tikai tāpēc, ka tu "pārmet" viņu bieži mazos attālumos.
Viss ir atkarīgs no tā, kā tu gribi, lai tas "pārlec" - vai nu tad, kad spiež pogu (lieto attiecīgo eventu), vai nu pogu turot (lieto taimeri).
Es tev ieteiktu pacensties saprast precīzi, kā viss strādā. Šāds jautājums nerastos, ja to zinātu. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Sun Feb 14, 2010 11:10 pm Post subject: |
|
nē atbildes tur nav tas kods ir tāds kā tagad.Tadu kodu man nevajag :D
Tas nav antēnas tie ir virzieni kuros būtu iespējams nokļūt :D
iedomāimies ka ir divi taisnstūri un pa starp tiem ūdens.
es negribu lai cilvēciņš pedētu. Gribu lai tas tiek tā kā teleportēts.
lab varbūt izklauas smieklīgi...
ņemšu citu piemēru
pozicija 0
P 0 0
0 0 0
0 0 0
nospiežot pogu tas nokļūst 1 rindiņu zemāk
0 0 0
P 0 0
0 0 0
|
|
Back to top |
|
|
serioussam909
Joined: 15 May 2006 Posts: 92
|
Posted: Sun Feb 14, 2010 11:47 pm Post subject: |
|
Tev vajag kkur saglabāt klavieres iepriekšējo pozīciju - lai vēlreiz var pārlekt tikai tad kad poga ir atlaista un nospiesta atkal.
Otrs variants ir pēc katra pārlēciena ielikt nelielu laika aizturi.
Un atrums vietā jāliek attālums starp rūtiņu centriem. |
|
Back to top |
|
|
Kamazs Guru
Joined: 17 Jan 2003 Posts: 829 Location: The glorious ancient city of Loja
|
Posted: Mon Feb 15, 2010 9:51 am Post subject: |
|
Code: |
if (klaviatura.IsKeyDown(Keys.Down))
laukumaPozicija.Y -= atrums;
|
Tev šitas kods ir kur aplikācijā? Tajā funkcijā, kas tiek izpildīta katrreiz pārzīmējot kadru (pamatciklā)?
Tad noliec no šo pašu kodu tajā funkcijā, kas apstrādā klaviatūras taustiņu nospiešanu (KeyUp). Un mainīgā "atrums" vietā ieliec mainīgo "rutinjas_platums".
Kādā vidē tu vispār darbojies? _________________ ...un es uzskatu, ka Fallout ir etalons |
|
Back to top |
|
|
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Mon Feb 15, 2010 7:07 pm Post subject: |
|
Vide: c# XNA jau kādu laiciņu.
Code: | Vector2 laukumaPozicija = Vector2.Zero;
const float atrums = 5; |
Code: | KeyboardState klaviatura = Keyboard.GetState();
if (klaviatura.IsKeyDown(Keys.Right))
laukumaPozicija.X -= atrums;
if (klaviatura.IsKeyDown(Keys.Left))
laukumaPozicija.X += atrums;
if (klaviatura.IsKeyDown(Keys.Down))
laukumaPozicija.Y -= atrums;
if (klaviatura.IsKeyDown(Keys.Up))
laukumaPozicija.Y += atrums; |
Tas man tāds kā defaultais spraitu pārvietošanas kods |
|
Back to top |
|
|
Tenjou
Joined: 22 Nov 2005 Posts: 275
|
Posted: Mon Feb 15, 2010 7:14 pm Post subject: |
|
ātrums = rūtiņas izmērs |
|
Back to top |
|
|
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Mon Feb 15, 2010 7:22 pm Post subject: |
|
bet nav mazliet par ātru ? rutiņas izmeri ir 200x200 un tādā kā pa vidu šaubos vai izdotos trāpīt |
|
Back to top |
|
|
Tenjou
Joined: 22 Nov 2005 Posts: 275
|
Posted: Mon Feb 15, 2010 7:42 pm Post subject: |
|
pieskaiti ātrumu, kad nospied taustiņu, vai arī, kad ir pagājis noteikts laiks kopš iepriekšējās, pieskaitīšanas reizes. |
|
Back to top |
|
|
Arrovs
Joined: 10 Mar 2007 Posts: 96 Location: Saldus
|
Posted: Tue Feb 16, 2010 1:15 pm Post subject: |
|
Ir vairāki veidi. Piemēram apakšā glabāt masīvu, kas satur kvadrātu bildītes.
Šādā gadījumā nospiežot pogu objekts pārleks uz citu masīva vērtību noskenēs tajā esošā kvadrāta atrašanās vietu un nocentrēsies uz tā.(Šis, ja veido, ko sarežģītu visā būtībā, piemēram necaurejami kvadrāti utt.).
Citkārt pie šāda paša veida koda pieliekot pārbīdi uzreiz lauciņa platumā ieliec vienu papildus mainīgo, kura nospiešanas brīdī kļūst false un atlaižot true vai ar fiksē taustiņa nospiestības stāvokli izmantojot tos pašus downus.
Ja kādu laiku nespēsi atkost, ko teicu ieliekšu postu ar abiem variantiem. _________________ Arrovs komanda |
|
Back to top |
|
|
snwlv
Joined: 10 Jan 2010 Posts: 86
|
Posted: Tue Feb 16, 2010 2:41 pm Post subject: |
|
njam tikai vakar sapratu vnk pirmtam nejiebraucu
uzpiežot atri (neturot tautiņ) viņš pārlec par 200px jeb tā kā man vajag,bet ja patur ilgkāk aizbrauc par tālu.. itka izveidoju taimeri bet nezinu ko man tajā ievietot.
Code: | taimerisLauks += (float)gameTime.ElapsedGameTime.TotalMilliseconds;
if (taimerisLauks > taimInt)
{
//nav ne jausmas ko lai šeit ievieto...
taimerisLauks = 0f;
} |
|
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Tue Feb 16, 2010 2:55 pm Post subject: |
|
Vajag pavisam citādāku taimeri.
Kad uztaisa:
Time=0
Katru kadru:
if( Time > 0 ) Time -= 1; // vai Time -= delta_time; vai vēl kaut ko tādu..
Kad nostrādā kaut kāds IFs:
if( Time <= 0 ){ ierakstām_kodu_šeit; Time = cik_ilgi_aizliegt_izpildīt; } _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Tenjou
Joined: 22 Nov 2005 Posts: 275
|
Posted: Tue Feb 16, 2010 3:25 pm Post subject: |
|
Iesaku, labāk, ko tādu:
Code: |
float tCurrent = getCurrentTime();
if(tCurrent - tStart > tWait)
{
if(taustinjsh_nospiests)
{
speed = rutinjas_izmers;
tStart = tCurrent;
}
// utt
}
|
|
|
Back to top |
|
|
Kamazs Guru
Joined: 17 Jan 2003 Posts: 829 Location: The glorious ancient city of Loja
|
Posted: Tue Feb 16, 2010 4:14 pm Post subject: |
|
Vai arī izpildīt pārlecienu nevis onKeyPressed, bet onKeyReleased. Tad tas izpildīsies tikai atlaižot klaviatūras taustiņu - tikai vienreiz par katru nospiedienu. _________________ ...un es uzskatu, ka Fallout ir etalons |
|
Back to top |
|
|
|