::: WICHTIG! Zuweisung von Koordinaten :::

yo leutz!

sitze hier grade mit nem kumpel an nem rollenspiel.
wir ham da so ne stadtkarte. in dieser stadt stehen natürlich auch häuser.nun soll dort folgendes passieren: der spieler wird auf der karte bewegt. es gibt also tasten mit der der spieler nach norden,osten,süden und westen gehen kann. gut nehmen wir mal an der spieler steh auf den koordinaten x3y3 und von das haus hat jeweil die korrdinaten x1y1 x2y1 x2y2 und x1y2. das heisst, das haus ist 4 koordinaten groß. nun soll aber, wenn der spieler die koordinate x2y1 betreten will ein hinweis kommen, das man dort dann das haus betreten kann.
nun will ich aber nich, das wenn das haus größer is das ich dann jedes mal den sourcecode für jede einzelne kooridinate proggen muss. kann man das nich irgendwie so machen das ich die für das haus auftreffenden, o.g. variablen einen ganzen bereich markieren kann und damit sagen kann: WENN HAUS DANN FRAGE NACH EINTRETEN?
geht das nich irgendwie?

thx schon im voraus für eure hilfe.
mfg
scorp
 
Das ist eigentlich gar nicht so schwer! Du prüfst halt einfach, ob die Koordinaten vom Spieler, sich mit den Koordinaten vom Haus überschneiden:
Code:
Private Sub ActionPerformed()  'Dein Sub, wo du eben die Funktion aufrufst
   Dim CurPlayerX As Integer
   Dim CurPlayerY As Integer

   Dim CurHouseX1 As Integer
   Dim CurHouseY1 As Integer
   Dim CurHouseX2 As Integer
   Dim CurHouseY2 As Integer
   
   CurHouseX1 = 90
   CurHouseY1 = 150
   CurHouseX2 = 150
   CurHouseY2 = 200
   
   CurPlayerX = 100
   CurPlayerY = 170
   
   If IsInHouse(CurHouseX1, CurHouseY1, CurHouseX2, CurHouseY2, CurPlayerX, CurPlayerY) Then
      MsgBox "In da house!"
   Else
      MsgBox "Not in da house!"
   End If
End Sub

Private Function IsInHouse(houseX1 As Integer, houseY1 As Integer, houseX2 As Integer, houseY2 As Integer, playerX As Integer, playerY As Integer) As Boolean
   IsInHouse = False
   
   If playerX >= houseX1 And playerX <= houseX2 And playerY >= houseY1 And playerY <= houseY2 Then
      IsInHouse = True
   End If
End Function

mfG,
MAN
 
naja also die lösung war ganz in ordnung hat aber irgendwie nich nachher gefunzt es war dann doch zu kompliziert. mein kumpel und ich haben für jede himmelsrichtung eine sperre mit koordinaten eingeschaltet. das war zwar ein bisschen mehr, aber übersichtlicher.
 

Neue Beiträge

Zurück