2 ting rære hianden

Tags:    delphi

<< < 12 > >>
Er igang med et spil, men har et lille problem.

Har et Image1, og som ik må rørere Image2, vis det sker skal der komme et besked frem hvor der står "Game Over".

Nogle der kan en lille kode for det ? :)



12 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Så får du lige en fuldt testet udgave.

Fold kodeboks ind/udKode 




Der findes ingen event som hedder "right". Den skal du selv udregne. image1.left+image1.width svarer til width


Ellers er nørden inde på det rigtige. Som sagt har jeg ikke lige delphi kørende. Men jeg kan vært fald lige finde ud af at rette lidt i Nørdens koder:

Fold kodeboks ind/udKode 


Jeg ved ikke helt om "OR" kan bruges sådan.



Jo du gør nedenstående 2 linier er taget fra din kode, jeg har fjernet resten af koden:

(Image1.Left >= Image2.Left) AND (Image1.Left <= Image2.Left+Image2.Width)

(Image1.Left >= Image2.Left) AND (Image1.Left <= Image2.Left+Image2.Width)


Jeg ved godt at de er 2 forskellige OR blokke men det retter ikke på at du spilder cpu på at teste på det samme 2 gange.

Det kunne spare ved at teste om den var sandt om om et af de 2 andre kriterier var sande.
noget i retning af:
Fold kodeboks ind/udKode 

Og synes stadigvæk ikke du har argumenteret for hvad logikken skulle vøre i at sige at de billeder overlapper hvis det hvis afstanden fra billed 1 top ned til billed 2 top er mindre end billed 2 højde.

Så vidt jeg kan se ville den påstå at nedenstående firkanter
overlapper, A left er tydeligvis over B left men under B left + B width, og eftersom at B er 4 linier høj men a kun er 3 linier over B top er A top altså mindre end 4 linier fra B top.
Fold kodeboks ind/udKode 


Og bare fordi man får point for noget betyder altså ikke at det du har skrevet er korrekt, betyder kun at det ikke fejlede i posterens tests hvilket jo kunne bestå i noget så simpelt som at teste om din kode faktisk siger der er overlap når der er det, hvilket jo ikke vil fange at den siger overlap hvis der ikke er overlap.



Lav en timer, og gør noget ala dette (utestet):

Fold kodeboks ind/udKode 




Ahh.. Morten vi skal vært fald lægge Image1.width og image1.left sammen, så vi også kan få de højre kanter. Jeg tør ikke lige komme med nogle koder (har ikke lige delphi installeret. Men det må være noget ed at at du skal lave en if -else for både venstre side og højre side.



Den virker ik :(

Vis i ik lige test den og skrive koden :)



Det her er en omskrivning af en c++ kode der testede 3d cuber for overlap, så det er muligvis ikke korrect delphi kode.
Fold kodeboks ind/udKode 




Der er noget galt med den kode :)

Der stå i delphi: "Undeclared identifier: 'Right'"

Hva kan det være :)





han glemte at rette X.Rigth til X.Left+X.Width og X.Bottom til X.Top+X.Height, hvor X er A og B.



Vil du ik lige skrive den færdig kode :)



<< < 12 > >>
t