04. maj 2002 - 17:51Der er
14 kommentarer og 1 løsning
Netspil
Jeg har i længere tid forsøgt at få to applikationer til at kommunikere med hinanden i mit eget interne netværk, men jeg kan ikke få det til at virke. Forsøget går ud på, at få et lille spil jeg har lavet i Delphi til at fungere over net. Det er et actionspil som komunikationen skal helst gå hurtigt.
Jeg efterspørger en lille demo-applikation som viser princippet. Man skal kunne oprette sig selv som host og andre brugere på nettet skal kunne logge sig på.
Netspil kan laves ved at indtaste figurernes positioner i spillet, derefter lægges positionerne over i f.eks. en memo1, hvorefter du gemmer indholdet i en memo1 på en anden computer, f.eks.:
var x,y : string; begin x := inttostr(Figur1.left); y := inttostr(Figur1.top ); memoX.text := x; memoY.text := y; memoX.lines.savetofile('computernavn/c/figurens_navnX.pos'); memoY.lines.savetofile('computernavn/c/figurens_navnY.pos'); end;
start med at lave en record aom kan indeholde de data, som du gerne vil overføre, og prøv at holde den til nede til et minimalt nivue, da det ellers æder for meget kostbar båndbrede. Derefter skal du finde ud af hvor ofte det er nødvendigt at opdatere dine data fx. ingen grund til at sende data, som ikke har opdateret sig. ;) Til sidst sender du så dine data ved hjælp af fx. indy componentet, som Martin Lind forslår. Du kan enten sende den ved hjælp af UDP komponentet eller TCP, de fleste ville nok vælge at bruge UDP komponentet til denne slags opgaver, da gamle data ikke er så vigtige og derfor ikke behøver at blive sendt igen hvis der sker en fejl i overførelsen.
et lille exempel på hvordan din record kunne se ud.
record WhatToDo : char; //angiver hvad programmet skal gøre(rykke en spiller, visse en explosion osv. WichObject: integer; //angiver hvilken ting vi snakker om fx. (hvilken spiller, kugle, bil osv. x : integer; //angiver hvor hændelsen tog sted. y: integer; //angiver hvor hændelsen tog sted.
du kan selvfølgelig have flere eller mindre, men det kommer helt an på hvordan dit spil er bygget op ;)
cpig > min kommentar var, at jeg ville undgå at skrive på harddisken.
Det jeg prøver at opnå, er præcis det som siz23 forslår. Problemet er bare at jeg ikke kan finde ud at lave det. Derfor håbede jeg på at der var en som kunne lave et fuldstændigt eksempel - med alle delphi filer. Nu er jeg ikke nogen super programmør, men jeg har alligevel lavet et ret fedt spil (jeg sender det gerne til evt. interesserede). Derfor har jeg brug for hjælp, og hvis 100 point er for lidt så skriv hvor meget der er rimeligt for eksemplet.
(jeg ved ikke hvad en UDP komponent er, men det lyder som den rigtige efter som gamle data ikke er vigtige)
men tag lige et kig på din nedluknings rutine. Hos mig lukker den ikke programmet ned ved alt+f4. Det ser ud som om den lukker men den står stdig i baggrunder og suger alt min cpu kraft.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.