/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Mysql - Hvordan ska recordset'et se ud ?
Fra : Matthiessen


Dato : 12-03-02 17:21

MySQL problem.....

Jeg er igang med at lave et online multiplayer spil i ASP. Man flyver rundt
på en større bane men man skal kun se 3*3 felter i nærheden, hvor man selv
er i den midterste. Det skal være i form af et kryds ( 0 ka ik ses, 1 ka
ses ) :
O1O
1 1 1
O1O

banen er 3 * 3 felter ind til videre, skal dog være ca 15*15 senere, så
RS'et ska være uaghængig af størrelsen. Jeg er på posx 2 og posy 2, så jeg
skal altså ha valgt de 5 felter, og ikke andet.

Min DB ser sådan ud :
posx = int
posy = int

posx | posx
1|1
1|2
1|3
2|1
2|2
2|3
3|1
3|2
3|3

Værdierne som jeg henter min position fra er playerposy og playerposx



Kan nogen finde ud af at lave en recordset der kan det ? - jeg er lige
begyndt på MySQL ( Access før det ), så det er ik liiige at finde ud af.
Håber jeg har forklaret problemet forståeligt ;)



Hilsen
Anders Matthiessen
web@dioder.dk




 
 
Nis Jorgensen (12-03-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 12-03-02 17:51

On Tue, 12 Mar 2002 17:20:33 +0100, "Matthiessen"
<matthiessen@tdcadsl.dk> wrote:

>banen er 3 * 3 felter ind til videre, skal dog være ca 15*15 senere, så
>RS'et ska være uaghængig af størrelsen. Jeg er på posx 2 og posy 2, så jeg
>skal altså ha valgt de 5 felter, og ikke andet.
>
>Min DB ser sådan ud :
> posx = int
> posy = int
>
>posx | posx
> 1|1
> 1|2
> 1|3
> 2|1
> 2|2
> 2|3
> 3|1
> 3|2
> 3|3
>
>Værdierne som jeg henter min position fra er playerposy og playerposx
>
>
>
>Kan nogen finde ud af at lave en recordset der kan det ? - jeg er lige
>begyndt på MySQL ( Access før det ), så det er ik liiige at finde ud af.
>Håber jeg har forklaret problemet forståeligt ;)

Tjoo, det skulle vel nok kunne lade sig goere. Jeg gaar ud fra at du
har to variable playerx og playery, som du paa en eller anden maade
faar ind i SQL'en. Så er her to muligheder:


SELECT *
FROM table
WHERE
(posx = playerx AND posy = playery)
OR
(posx = playerx AND posy = playery - 1)
OR
(posx = playerx AND posy = playery + 1)
OR
(posx = playerx - 1 AND posy = playery)
OR
(posx = playerx + 1 AND posy = playery)

eller

SELECT *
FROM table
WHERE
Abs (posx-playerx) + Abs(poy-playery) <= 2


--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Matthiessen (12-03-2002)
Kommentar
Fra : Matthiessen


Dato : 12-03-02 18:35

"Nis Jorgensen" <nis@dkik.dk> skrev i en meddelelse
news:k5bs8u8q3paspsn1qrp00o4uo2jqmheq9t@4ax.com...
> SELECT *
> FROM table
> WHERE
> Abs (posx-playerx) + Abs(poy-playery) <= 2

Takker Nis

Nr. 1 virker perfekt, dog ville det være en fordel at få nr 2 til at virke.
Jeg får en SQL streng der lyder : SELECT * FROM feltindex WHERE
Abs(xpos-2) + Abs(ypos-2) <= 2

Problemet med den er, at jeg får alle records ud fra databasen




Nis Jorgensen (12-03-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 12-03-02 19:21

On Tue, 12 Mar 2002 18:34:59 +0100, "Matthiessen"
<matthiessen@tdcadsl.dk> wrote:

>"Nis Jorgensen" <nis@dkik.dk> skrev i en meddelelse
>news:k5bs8u8q3paspsn1qrp00o4uo2jqmheq9t@4ax.com...
>> SELECT *
>> FROM table
>> WHERE
>> Abs (posx-playerx) + Abs(poy-playery) <= 2
>
>Takker Nis
>
>Nr. 1 virker perfekt, dog ville det være en fordel at få nr 2 til at virke.
>Jeg får en SQL streng der lyder : SELECT * FROM feltindex WHERE
>Abs(xpos-2) + Abs(ypos-2) <= 2
>
>Problemet med den er, at jeg får alle records ud fra databasen

Maaske fordi jeg vaklede mellem at skrive "< 2" og "<= 1" - proev en
af dem.

--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Matthiessen (12-03-2002)
Kommentar
Fra : Matthiessen


Dato : 12-03-02 20:14

>>> Maaske fordi jeg vaklede mellem at skrive "< 2" og "<= 1"

"<2" virkede. Takker mange gange !! Genialt må jeg sige, havde sku ikke
tænkt på at det kunne gøres på den måde :) For lige at opressumere min
færdige streng ( hvis andre ska bruge den ) :

SELECT * FROM feltindex WHERE Abs(xpos-" & playerposx & ") + Abs(ypos-" &
playerposy & ") < 2

Nu må jeg se om den virker når jeg udvider min bane, ellers vender jeg lige
tilbage i morgen.

Hilsen
Anders



Matthiessen (14-03-2002)
Kommentar
Fra : Matthiessen


Dato : 14-03-02 21:29

Jeg har fundet ud af at det ikke var så brugervenligt med kun 3*3 felter i
form af et kryds.
Jeg ku tænke mig 5*5 ( uden kryds ). Hvordan skal det se ud så ?

Hilsen
Anders



Nis Jorgensen (15-03-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 15-03-02 19:17

On Thu, 14 Mar 2002 21:28:57 +0100, "Matthiessen"
<matthiessen@tdcadsl.dk> wrote:

>Jeg har fundet ud af at det ikke var så brugervenligt med kun 3*3 felter i
>form af et kryds.
>Jeg ku tænke mig 5*5 ( uden kryds ). Hvordan skal det se ud så ?

Nu har jeg givet dig "metoden" - saa kan du vel selv lave om naar der
er brug for det ...

(men jeg ville nok bruge noget med abs(x-px) < 3 AND Abs(y-py) < 3 )


--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Matthiessen (15-03-2002)
Kommentar
Fra : Matthiessen


Dato : 15-03-02 19:57

> Nu har jeg givet dig "metoden" - saa kan du vel selv lave om naar der
> er brug for det ...

Ja det sku jeg nok ha gjordt. Den nemmeste løsning er ikke altid den bedste
;)

Takker



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste