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

ložu sistēma šaušanas spēlē - kā?
Goto page Previous  1, 2, 3, 4, 5  Next
 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Nov 14, 2007 7:41 pm    Post subject:

Kurš atmiņu atbrīvos, kas izdalīta Bullet objektiem? Atceries, ka uz ikkatru new izsaukumu programmā ir jābūt precīzi vienam delete izsaukumam.

if (it == itend) nosacījums nekad neizpildīsies, jo ja it==itend, tad while (it != itend) nosacījums ir false un cikla iterācija neizpildās.
STL konteineros beigu iterators vienmēr norāda uz vienu elementu aiz pēdējā elementa. Tāpēc beigu iteratoru end() nekad nedrīkst dereferencēt.

Kā arī varbūt drusku par citu tēmu, jo nezinu kā tev tur tā lodes kustība tiek simulēta - vai ir pareizi katrā iterācijā tev skaitīt klāt pozīcijai ātrumu? Jo kā labi zināms S = V*t. Tāpēc vai pareizāk nebūtu pos += vel * deltaT, kur deltaT ir laikš kopš iepriekšējās iterācijas.
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Wed Nov 14, 2007 8:28 pm    Post subject:

bubu:
prikols ir tāds, ka man neskatoties ne uz ko tā lietotā atmiņa nepalielinās!
par to it==itend... jā tā kkāda lieka koda daļa, kura man tur vairs neatceros kādas domas pēc tur iemetās Laughing
to, ka end iter'u nevar dereferencēt, uzzināju jau agrāk pēc kļūdas paziņojumiem Laughing no kļūdām jāmācās, pat no programmas izpildes kļūdām Wink

lodes kustība: nu pagaidām atkarīgs viss no fps = 60, tāpēc tāds kods..
mana galvenā problēma bija tas ložu kods, un tāpēc updeita un renderēšanas atdalīšanas revolūcija vēl nav sākusies :wink:

nu labi es iesāku pārdalīšanu, galvenais spēlētājs dalās pirmais, bet ir problēma tāda...

nu man visi atkarīgie lielumi tiek pareizināti ar "float T", kuram būtu jānorāda, cik laika pagājis, BET es īsti nesaprotu, kāpēc sāk spēlētājs lekt cauri sienām, bet kadri raustās..
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Fri Nov 16, 2007 12:35 pm    Post subject:

nu es sataisīju tā, ka updeits notiek biežāk nekā renderēšana un sapratu 2 lietas:
ap karti vajag salikt ierobežotājus, kuri iznīcinās lodes, lai tās neaiziet pārāk tālu
mana doma par updeita un renderēšanas vienādību bija patiesa...
es spēlēju savu spēli, sašāvu daudzas lodes tā, lai tās iziet ārpus kartes un fps = ~20
tad es redzu, ka spēlētājs iet kā parasti, bet bilde tik bieži netiek pārzīmēta un spēle vairs nav spēlējama!
bet man vajag, lai spēle būtu spēlējama uz veciem datoriem!
tāpēc es palikšu pie vecā..
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Fri Nov 16, 2007 1:25 pm    Post subject:

Ja drīkst jautāt, Snake5, ko tavā izpratnē nozīmē vecs dators?
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Nov 16, 2007 2:03 pm    Post subject:

snake5 wrote:
ap karti vajag salikt ierobežotājus, kuri iznīcinās lodes, lai tās neaiziet pārāk tālu

Tas tak dabiski un tav nav nekāda sakara ar updeita/rendera atdalīšanu.
Nav nekādas jēgas lieki tērēt resursus - piemēram renderēšanā: renderēt objektus aiz muguras, citās istabās, vai pazemē, ja tu esi virs zemes, un tml... Arī fizikas aprēķinos var mānīties, un tos objektus, kurus neredzi vai ir ļoti tāli, tiem vienkāršot aprēķinus.

Ja būs liekas darbības, kuras bremzē spēles gaitu (dara nevajadzīgas lietas), tad vienmēr būs bremze (vai nu renderēšanā, vai arī slo-mo iestāsies).
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Fri Nov 16, 2007 3:28 pm    Post subject:

snake5 wrote:

ap karti vajag salikt ierobežotājus, kuri iznīcinās lodes, lai tās neaiziet pārāk tālu


Kaut kaads diivains piegaajiens tev... GM redzami visu domaasanu ir sabojaajis <.< Kaadus veel ierobezotaajus? Oo Kapeec vnk lodei neiedot lielumu, kas nosaka kaads ir maksimaalais nolidotais attaalums un kad tas attaalums ir sasniegts -> izniicini lodi..
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Fri Nov 16, 2007 5:55 pm    Post subject:

EDDY:
vecs dators ir tāds, kuram ir lēns procesors (~zem P3)
ar vecu videokarti, kurai flash spēles tikai iet
nu apmēram tā..
bubu:
ar tādu loopu, kurš updeito biežāk kā renderē slo-mo neiestājas! viss iet tādā pašā ātrumā, tikai apraustīti renderējas.. un tas lūk nav labi..
Storm:
visātrāk lode iznīcinās ja saduras ar bboxu.. un ja tas ir tuvu...
Code:

Bullet* bbb = Bullets.back();
if (bbb->Active == false)
{
   *it = bb;
   Bullets.pop_back();
   return;
}

tik tuvu, lai lode iznīcinātos pirms tiek izšauta jauna...
tagad btw es salaboju, man jau bija lodes dzīvības laiks, tikai nestrādāja...
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
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: Fri Nov 16, 2007 5:57 pm    Post subject:

snake5 wrote:
ar tādu loopu, kurš updeito biežāk kā renderē slo-mo neiestājas! viss iet tādā pašā ātrumā, tikai apraustīti renderējas.. un tas lūk nav labi..

Un kas tad ir labi vecam datoram, kas nespēj pavilkt spēli? Tu to tā arī tajā otrā topikā neizskaidroji.
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Fri Nov 16, 2007 6:40 pm    Post subject:

labi ir tas, ka spēlētājs redz to, kas notiek uz ekrāna!
kautvai 10 fps, bet vismaz ir saprotams katrs kadrs!

bet tagad...
es saliku fontus...
un redzēju, ka šī ložu aizvākšanas sistēma ir diezgan nepilnīga...
es piemēram šāvu ātri daudzas reizes (250), un tik arī ložu palika!
un kautkāpēc tikai pēc laika lodes sāka pazust...
itkā timeleft mainīgais netraucē, bet lodes pazūd, kad nekas nav šauts 30 kadru laikā - manis uzliktā ložu inaktivizēšanas laika mainīgajā..

Code:

void BulletSystem::OnFrameMove(float TIME)
{
   std::vector<Bullet*>::iterator it = Bullets.begin();
   std::vector<Bullet*>::iterator itend = Bullets.end();
   while (it != itend)
   {
      Bullet* bb = *it;
      bb->Position+=bb->Velocity;
      if (bb->TimeLeft > 0)
      {
         bb->TimeLeft -= 1;
         for (int i = 0;i<SceneBoxCnt;i++)
         {
            bool bcol = PointBoxCollision(&SceneBoxes[i],bb->Position.x,bb->Position.y);
            if (bcol)
            {
               bb->Active = false;
               //break;
            }
            
         }
      }
      else
      {
         bb->Active = false;
      }
      Bullet* bbb = Bullets.back();
      if (bbb->Active == false)
      {
         *it = bb;
         Bullets.pop_back();
         return;
      }
      it++;
   }
}

te pilna f-ja, jo esmu sliņķis Very Happy
nē joks..
vnk ielieku, jo varbūt kādam (un droši vien tā arī būs) ir skaidrāka galva par manējo pašlaik...
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
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: Fri Nov 16, 2007 7:36 pm    Post subject:

jopcig... un 10fps neskaitās "apraustīti renderējas" (citēju tevi):
Quote:
viss iet tādā pašā ātrumā, tikai apraustīti renderējas.. un tas lūk nav labi..
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Fri Nov 16, 2007 10:30 pm    Post subject:

bet viss neiet tādā pašā ātrumā!
tad vairs nav apraustīti, bet gan vienkārši lēnāk!
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Tenjou



Joined: 22 Nov 2005
Posts: 275

PostPosted: Fri Nov 16, 2007 11:37 pm    Post subject:

Kapēc nelieto vienkārši -> ātrums * frame intervāls(laiks delta) ?
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Fri Nov 16, 2007 11:57 pm    Post subject:

tas ir tas, no kā es izvairos..
vēl ir atstāts spēlē, bet nav ieslēgts..

bet vispār - man līnijas nerādās!
es te zīmēju parastu līniju (ar DrawPrimitiveUP), bet man tā līnija neparādās, ja es zīmēju punktus, tad tie arī neparādās, bet trijstūri gan! kur problēma???
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Tenjou



Joined: 22 Nov 2005
Posts: 275

PostPosted: Sat Nov 17, 2007 12:06 am    Post subject:

Kādēļ gan no tā izvairīties? Ja iemesls ir "lai strādātu uz veciem pc bez raustīšanas", tad uztaisi vnk tadu kā intervāla statistiku un izvelc vidējo pēctam pielāgo attiecīgi ātrumu.
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Sat Nov 17, 2007 12:14 pm    Post subject:

nu tad jau labāk es pie sava palieku..
statistiku no katra līmeņa vilkt ir nedaudz par traku...

starpcitu, dēļ tāda loopa es vienreiz šausmu lietas redzēju, kad spēlēju spēli "Stranglehold"!

viņš lec uz priekšu, slīd pa grīdu, šauj sliktos
spēle ieķērās lādējot tekstūras..
un pēkšņi viņš ir 6 pēdas zem zemes ārpus kartes un beigts!
šitā nav labi..
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
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
Goto page Previous  1, 2, 3, 4, 5  Next
Page 4 of 5

 
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