05. maj 2003 - 23:38Der er
5 kommentarer og 1 løsning
Canvas prob...
Jeg er igang med et lille spil og har stødt ind i et problem... det er en slags rum strategi ting... jeg har oprettet en klasse til mine "stjerner" med navn osv.
jeg maler dem så på canvas.. problemet ligger i at når jeg trykker på på canvas'et på en af de stjerner jeg har malet ønsker jeg at få tilgang til den stjerne jeg trykker på.. dvs. at stjernen har en position på canvas'et og jeg kan også få det til at virke hvis jeg bruger en grid inddeling, altså hvor jeg deler canvas'et op i felter af f.eks 20 (X div 20) fordi Bitmap's er 20x20... men jeg ønsker at kunne vælge dem når de er i en tilfældig position ala 230x123 f.eks.. men jeg skal ramme det punkt HELT præcist for at få det til at virke... kan man lave en slags vælge firkant inden for 4 punkter????
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Du kan jo løbe dine stjerner igennem og spørge på: (musX > stjerneX-4) and (musX < stjerneX+4) and (musY > stjerneY-4) and (musY < stjerneY+4) Det er en rimelig simpel løsning, men hvis der er alt for mange stjerner (dvs. >1000 eller sådan noget) er det måske ikke den hastigheds mæssige mest optimale.
Hvis stjenerne har forskellige farver (Rod, Gron, Gul, Blaa osv.) og det univers (baggrund er helt sort) saa kan du jo bare skrive folgende i den OnMouseDown property:
if Canvas.Pixels[X,Y] = clRed then ShowMessage('Welcome to Mars'); if Canvas.Pixels[X,Y] = clBlue then ShowMessage('Welcome to Earth');
type TStar = class(TObject) public FStar: String; FPic: TBitmap; property name: String read FStar write FStar; privat end;
Stars = array[0..400,0..400] of TStar
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.