Avatar billede SilenceWar Nybegynder
17. januar 2011 - 23:07 Der er 6 kommentarer og
1 løsning

Placering af landsbyer i BrowserSpil

Hejsa Eksperter!

Jeg er ved, at være færdig med mit browserspil.
Jeg er dog lige løbet ind i nogle slutspurts-problemer.

Hvis man kigger på et verdenskort fra fx TribalWars (link nedenfor) ses det, at landsbyerne efterhånden som verdenen bliver fyldt ud - bliver fyldt ud indefra og ud. Den danner en cirkel rundt (ligesom en alm. verden :))
Koordinaterne ligger på 500|500 som midtkoordinat og derefter bliver de højere og lavere udad.....

Link til billede: http://br31.twmaps.org/archive/1281592682.png


Jeg har noget lignende med hensyn til koordinater netop i mit spil - og når brugeren opretter sig, skal en by selvfølgelig også oprettes. Det vil sige, at jeg har brug for at regne ud hvorhenne byen skal placeres.
Jeg kan ikke sætte den til en random placering på kortet - da spillere derved kommer til at ligge laaaaaaangt væk fra hinanden.

Er der nogen som helst der har en idé?? Det har været mit ypperste problem længe - og håber I kan hjælpe.
Jeg udlover 200 point til den der kan.

På forhånd tak - og spørg endelig! :)

Hilsen
SilenceWar
Avatar billede ksoren Nybegynder
17. januar 2011 - 23:38 #1
Er det sådan noget her du fisker efter?

Randomize
randomRadian = Rnd()*6.28 'vinkel

distanceFraMidten = 5

kortBredde = 500
kortHojde = 500

x = Int(Cos(randomRadian)*distanceFraMidten)+kortBredde/2
y = Int(Sin(randomRadian)*distanceFraMidten)+kortHojde/2
Avatar billede SilenceWar Nybegynder
18. januar 2011 - 14:42 #2
Du er genial - TUSIND tak :)

Lig et svar, så får du point.
Avatar billede SilenceWar Nybegynder
18. januar 2011 - 14:45 #3
Forresten - kun hvis du lige har en idé til det også.

I tilfælde af, at man som bruger skulle kunne vælge, at være placeret mod nord, syd, øst eller vest..

Hvordan kan jeg så integrere det ind i den kode du lige har givet mig? :)
Avatar billede SilenceWar Nybegynder
18. januar 2011 - 19:33 #4
Nu har jeg sat og arbejdet på koderne i omkring 2-3 timer nu.. hm.. Jeg har stadig et lille problem hvis du engang får tid..

Jeg prøver, at få den til at tjekke for match i en MySQL database.
Altså, jeg har følgende kode:

' Bestem et x og et y koordinat til byen
Randomize
randomRadian = Rnd()*6.28 'vinkel

distanceFraMidten = verdenInfo("radius")

kortBredde = 500
kortHojde = 500

max=2
min=-2

Randomize
xRandom=int((max-min+1)*rnd+min)
Randomize
yRandom=int((max-min+1)*rnd+min)

x = Int(Cos(randomRadian)*distanceFraMidten)+kortBredde/2 + (xRandom)
y = Int(Sin(randomRadian)*distanceFraMidten)+kortHojde/2 + (yRandom)

Men... Hver gang jeg har prøvet, at få den til at tjekke for, at der ikke findes en række i databasen hvor x=x og y=y - går der et eller andet galt.

Er der ikke en måde hvorved vi kan tjekke om det findes - og i tilfælde af, at det gør (not .eof or .bof then) så sendes koden op øverst igen og starter koden forfra.
Indtil den selvfølgelig har fundet det koordinatsæt der kan bruges..

Jeg vil kæmpe videre med det - men ethvert input vil være dejligt.

Med Venlig Hilsen
SilenceWar
Avatar billede ksoren Nybegynder
21. januar 2011 - 01:39 #5
Jeg ville nok gøre det lidt anderledes. Jeg ville starte med at oprette samtlige byer i databasen. Når de er oprettet, kan man så løbende plukke byerne ud, når spillerne får dem tildelt/indtager dem.

Lidt a la

tabel: alleByer
id
x
y
blabla

tabel: tildelteByer
id
idBy
idUser
blabla
Avatar billede ksoren Nybegynder
21. januar 2011 - 01:41 #6
Det med de fire verdenshjørner... der skal du kigge på enhedscirklen. Radiantal er bare en anden måde at angive en vinkel på

http://da.wikipedia.org/wiki/Enhedscirklen
Avatar billede SilenceWar Nybegynder
29. marts 2011 - 16:11 #7
k
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB