Überlappen

Mister master

Erfahrenes Mitglied
Hallo erst einmal und frohe Ostern!

ich will eine Art zweispieler capture the flag programmieren. (nich über i-net sondern am gleichen computer)

die figuren bewegen geht schon, aber wie mache ich es, dass jetzt wenn man über die flage (vorerst ein shape mit dem namen "f") drüber fährt, also dass sich die beiden überlappen, die flage in der mitte des capturers ist, bis der gegner den capturer abknallt und die flage dort liegenbleibt wo sie gerade war, der capturer ist aber weg.

ich brauch nur die überlappungsfunktion, den rest kann ich eh, aber zur erklärung des beispiels hab ich den rest hergeschrieben.
 
hi!

also mit dem überlappen kann ich dir leider nicht weiterhelfen
ich weiß zwar jetzt nicht genau wie du das gemacht hast (anscheinend shapes als figuren). aber wie wärs wenn du image boxes als figuren und flagge nimmst und dann das tragen der fahne damit realisierst dass du da ein anderes bild (figur mit flagge im arm oder so änhlich) reinsetzt?

alternativ wär mir jetzt noch eingefallen die fahne einfach in den vordergrund zu holen (in der entwicklung rechtsklick drauf und dann "in dne vordergrund")...
 
Zuletzt bearbeitet:
mhm, das geht aber eigentlich nur, wenn die Flagge immer wieder an den gleichen Koordinaten ist... ich will aber, dass die flagge auch fallengelassen werden kann.

das mit den Images ist aber ne gute idee!
 
sry...war im urlaub :(

das mit den images war so gedacht dass du beim aufnehmen der flagge die image box mit dem bild der flagge unsichtbar machst und dafür das bild der figur änderst, so dass dann die figur samt flagge zu sehen ist.
wenn die flagge nun fallen gelassen wird setzt du einfach die image box mit der flagge an die stelle wo die figur gestorben ist und machst sie wieder sichtbar ;).
 
jau, das versteh ich eh, aber anderes problem: damit ich das aufnhemen kann, muss ich genau im oberen eck, also von dem die koordinaten angegeben sind, berühren. also is es ned so gut und löst nicht mein problem....
 
Es ist eigentlich nicht mehr als eine komplexe If-Abfrage.

Shape: Flagge
Shape: Spieler

Code:
if Spieler.Left >= Flagge.Left And Spieler.Left <= Flagge.Left + Flagge.Width then
 if Spieler.Top >= Flagge.Top And Spieler.Top <= Flagge.Top + Flagge.Height then
 ' Linke obere Ecke berührt Flagge
 End if
End if
Die beiden If-Abfragen kann man natürlich auf verbinden, aber ich finde es so übersichtlicher.
Das für die restlichen drei Ecken auch noch und es sollte gehen.
Der Nachteil hierbei ist, dass das Shape Spieler maximal so groß sein darf wie die Flagge, sonst liefert die IF-Abfrage False, wenn Shape Spieler Shape Flagge mit einer Seite und nicht mit einer Ecke berührt.

Das würde ich bevorzugen:
Du könntest auch einfach den Mittelpunkt der Flagge bestimmen und abfragen, wann Spieler den Mittelpunkt des Shapes Flagge berührt.
1. Nur eine If-Abfrage
2. Wirkt meiner Meinung nach realistischer, als wenn man nur den Rand der Flagge berühren muss um diese aufzunehmen.

Code:
dim MittelpunktX as integer = Flagge.Left + Flagge.Width / 2
dim MittelpunktY as integer = Flagge.Top + Flagge.Height / 2

if MittelpunktX >= Spieler.Left And MittelpunktX <= Spieler.Left + Spieler.Width then
 if MittelpunktY >= Spieler.Top And MittelpunktY <= Spieler.Top + Spieler.Height then
 ' Mittelpunkt liegt im Bereich des Shapes Spieler
 End if
End if

MfG,

chrstn
 
Zurück