Avatar billede zub-zero Nybegynder
24. september 2003 - 19:21 Der er 12 kommentarer og
1 løsning

musens position

hejsa, hvordan finder jeg musens position?
jeg har allerede musens position når jeg trykker på en knap, men jeg skal bruge den hele tiden, altså - så snart musen bevæger sig det mindste skal min musposx, musposy variabler opdateres.
Avatar billede martin_moth Mester
24. september 2003 - 19:38 #1
Musesn position er som regel på bordet - prøv at kik omkring musemåtten ;o)

Nej, se på

http://www.eksperten.dk/spm/152367
og
http://www.eksperten.dk/spm/255094

Der er alt hvad du behøver vide om cursorpositioner :o)
Avatar billede zub-zero Nybegynder
24. september 2003 - 20:21 #2
Private Sub form_MouseMove(Button As Integer, Shift As Integer, X3 As Single, Y3 As Single)
Text1 = X3
Text2 = Y3

i timer:
rndx = Int(((X3 + 20) - (X3 - 20) + 1) * rnd) + (X3 - 20)
rndy = Int(((Y3 + 20) - (Y3 - 20) + 1) * rnd) + (Y3 - 20)

Dim a As Long
a = SetCursorPos(rndx, rndy)

har declared alle mine var.

musen ryster som den skal, men den vil kun være øverst i venstre hjørne..
bare slå mig.. hvor dum har jeg været? =)
Avatar billede themepark Nybegynder
25. september 2003 - 07:08 #3
Lige en kommentar fra en matematik nørd som mig ;)

Det er et lidt underligt regnestykke, i og med, at uanset hvad både X3 og Y3 er, vil du altid få 41*rnd.

(X3 + 20) - (X3 - 20)
X3 + 20 - X3 + 20
20+20
40

Og når du så lægger 1 til...voila 41 :) Egentlig burde det være 2, så vi fik svaret på alle livets store spørgsmål, nemlig 42 ;)

Nå, men nok pjat fra mig. Jeg tror måske det skyldes, at du ikke har linjen Randomize i din timer. Hvis den ikke er tilstedet, vil rnd give det samme tal hver evig eneste gang (så meget for tilfældigheder ;).

Men indrømmet...cursoren burde vel stadigvæk flytte sig, hvis din mus flytter sig, i og med at du lægger (X3 - 20) til hver gang :(

Er jeg nu kommet ud i noget værre vrøvl? :(
Avatar billede martin_moth Mester
25. september 2003 - 08:41 #4
Svaret på dit første spørgsmål står i de links jeg gav. Nu har du rodet en timer ind i det, og hvad den bruges til ved jeg ikke - skal programmet selv flytte rundt med cursoern?

Hvorfor skrive

((X3 + 20) - (X3 - 20) + 1)*md
  i stedet for bare
41*md
  - det er præcis det samme
Og hvad er "md"?
Avatar billede themepark Nybegynder
25. september 2003 - 08:47 #5
martin_moth der står ikke MD men RND ;)
Avatar billede themepark Nybegynder
25. september 2003 - 08:55 #6
Hov...der gik lige et lys op for mig. En del af problemet skyldes måske også måden, du skriver rnd på. Jeg mener da, det skal skrives Rnd, altså med stort R.
Avatar billede martin_moth Mester
25. september 2003 - 09:57 #7
Doh!!! rnd ligner altså md i små typer...

Hvis VB ikke retter rnd til Rnd, er der en fejl. Sikkert fordi det hedder Rnd() eller lignende. En fejltype, du for altid fremover kan undgå ved at KRÆVE variabelerklæring (et sted under options).
rnd vil som du har det nu blot blive opfattet som en variabel med værdien nul. Havde du krævet variabelerklæring, ville VB brokke sig over at variablen rnd ikke var erklæret, og du ville se at der var noget galt, fordi VB opfatter rnd som en variabel og ikke som en randomfunktion... :o)

Det er pissefarligt ikek at kræve variabelerklæring, for staver du en variabel forkert, bliver den blot opfattet som en ny ikke-erklæret variabel med værdien nul... Og sådan en fejl kan være svær at finde gemt et sted i 1000 linier kode :o(
Avatar billede themepark Nybegynder
25. september 2003 - 10:12 #8
Bortset fra den første linje, kan jeg kun være enig ;)
Avatar billede martin_moth Mester
26. september 2003 - 14:12 #9
sub-zero..?
Avatar billede zub-zero Nybegynder
26. september 2003 - 15:09 #10
hej, sorry jeg først svare nu, mit system crashede 100% (når både win og lin dør så er det altså slemt)

skriver:
((X3 + 20) - (X3 - 20) + 1)*md
  i stedet for bare
41*md

fordi at x3 og y 3 er (prøver ihvertfald på at få det til at være) musens position. er igang med datalogi project - et skydespil. skyd på en skydeskive og få point. når man så vælger det "svære" niv. så skal musen ryste - lige som man gør hvis man står med en riffel i hænderne.

har sat Randomize i form load

om den skriver rnd eller Rnd ved jeg ik pt. min com med programmet ligger nemlig på gulvet i 1000 stykker. - regner med at den er oppe igen lørdag aften.

endnu engang beklager vente tiden.

= musens position + et random tal (her sat til +/- 20)
Avatar billede martin_moth Mester
26. september 2003 - 15:16 #11
Ta og kræv variabelerklæring som jeg har beskrevet :o)
Avatar billede martin_moth Mester
26. september 2003 - 20:19 #12
PS:
((X3 + 20) - (X3 - 20) + 1)

vil ALTID give 41 UANSET hvad X3 er....

Lidt ligesom 1 + X - X altid giver 1 :o)
Avatar billede zub-zero Nybegynder
28. september 2003 - 15:33 #13
martin, takker for de links =)
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