Ich versuche gerade mit PB eine Art Warcraft3-Tower-Defense zu realisieren.
Ich habe einen Screen in mehrer Reihen unterteilt. Auf einer Reihe laufen die Gegner und auf der anderen kann man frei Türme platzieren. Nun laufen die Monster von rechts nach links und wenn sie links angekommen sind, werden sie wieder nach rechts 'gebeamt' aber eine Reihe tiefer. Das funktioniert alles schonmal zufriedenstellend. Nun wollte ich aber einbauen, dass mit einem Klick auf einen bereits gebauten Turm dessen Stärke angezeigt wird. Dabei hat sich herausgestellt, dass immer nur der Turm 'aktiviert' wird, der als letztes gebaut wurde und ich weis nicht warum
ich hoffe ihr könnt mir helfen
Der Code der LL's:
Code: Alles auswählen
Structure Gegner
x.w
y.w
Width.w
Height.w
Speed.w
Sprite.w
HP.w
HPVOLL.w
boni.w
EndStructure
NewList Gegner.Gegner()
Structure Tower
x.w
y.w
width.w
height.w
delay.w
rate.w
range.w
image.w
dmg.w
EndStructure
NewList Tower.Tower()
;--------------------------------------------------------------------------------
;ab hier steht alles in der Repeat-Schleife
;--------------------------------------------------------------------------------
;---------Collisions::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------Collisions::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------Collisions::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
ResetList(Tower())
While NextElement(Tower())
ResetList(Gegner())
While NextElement(Gegner())
IncludeFile "Include_hpleiste.pb"
If SpriteCollision(Gegner()\Sprite,Gegner()\x,Gegner()\y,4,Tower()\x-75,Tower()\y-75) And Tower()\delay <= 0
Gegner()\HP - Tower()\dmg
Tower()\delay = 100
EndIf
If Tower()\delay > 0
Tower()\delay - 1
EndIf
If SpriteCollision(2,MouseX(),MouseY(),Tower()\image,Tower()\x,Tower()\y)
Coll + 1
Else
Coll = 0
EndIf
;hier will ich die Turmdaten später checken
If MouseX() > Tower()\x And MouseX() < Tower()\x+Tower()\width
infomer = 1
Else
infomer = 0
EndIf
If MouseY() > Tower()\y And MouseY() < Tower()\y+Tower()\height
infomer2 = 1
Else
infomer2 = 0
EndIf
If infomer = 1 And infomer2 = 1
info = 1
Else
info = 0
EndIf
;____________________________________________
Wend
Wend
;---------Collisions::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------Collisions::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------Collisions::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------DisplayGegner:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------DisplayGegner:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------DisplayGegner:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
ResetList(Gegner())
While NextElement(Gegner())
DisplayTransparentSprite(Gegner()\Sprite,Gegner()\x,Gegner()\y)
Gegner()\x - Gegner()\Speed
If Difficulty = 0
boni = Gegner()\boni
ElseIf Difficulty = 1
boni = Gegner()\boni/2
ElseIf Difficulty = 2
boni = 0
EndIf
If Gegner()\x <= 0 - Gegner()\width And Gegner()\y = 10
Gegner()\x = 1024 - Gegner()\width
Gegner()\y = 210
ElseIf Gegner()\x <= 0 - Gegner()\width And Gegner()\y = 210
Gegner()\x = 1024 - Gegner()\width
Gegner()\y = 410
ElseIf Gegner()\x <= 0 + Gegner()\width And Gegner()\y = 410
DeleteElement(Gegner())
If Difficulty = 0
Leben - 1
ElseIf Difficulty = 1
Leben - 3
ElseIf Difficulty = 2
Leben - 5
EndIf
ElseIf Gegner()\HP <= 0
Gold + Gegner()\boni
DeleteElement(Gegner())
EndIf
Wend
;---------DisplayGegner:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------DisplayGegner:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;---------DisplayGegner:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;-----DisplayTower::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;-----DisplayTower::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;-----DisplayTower::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
ResetList(Tower())
While NextElement(Tower())
Start3D()
DisplaySprite3D(1,Tower()\x-75,Tower()\y-75,5)
Stop3D()
DisplayTransparentSprite(Tower()\image,Tower()\x,Tower()\y)
Wend
;-----DisplayTower::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;-----DisplayTower::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;-----DisplayTower::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
mfg
Machete@PB