FuJi wrote:Miten saisin viholliset liikkumaan pelaajaa päin?
Olen tätä yrittänyt miettiä ja kokeillutkin, mutta en ole saanut onnistumaan.
Tuli myös toinen ongelma noiden vihujen luonnissa.
Mikä tässä koodissa ob vikana:
Code: Select all
ukko = LoadObject("Media/soldier.bmp",72)
ShowObject ukko, OFF
PositionObject 10,10
vihu = LoadObject("Media/guy.bmp",72)
ShowObject vihu, OFF
Repeat
Type VIHUT
Field obj
End Type
vihu.VIHUT = New (VIHUT)
vihu\obj = CloneObject (ammus)
CloneObjectPosition vihu\obj, pelaaja +50
CloneObjectOrientation vihu\obj, pelaaja +50
ResetObjectCollision vihu\obj
For vihu.VIHUT = Each VIHUT
MoveObject vihu\obj, 1
If ObjectX ukko = ObjectX vihu\obj And ObjectY ukko = ObjectY vihu\obj Then
DeleteObject vihu\obj
Delete vihu
EndIf
Next vihu
DrawScreen
Forever
Koodi oli virheitä täynnä.
Code: Select all
Type VIHUT
Field obj
End Type
ukko = LoadObject("Media/soldier.bmp",72)
PositionObject ukko, 0,10
vihuobj = LoadObject("Media/guy.bmp",72)
ShowObject vihuobj, OFF
vihu.VIHUT = New (VIHUT)
vihu\obj = CloneObject (vihuobj)
CloneObjectPosition vihu\obj, ukko
CloneObjectOrientation vihu\obj, ukko
TranslateObject vihu\obj, 50, 50
Repeat
TurnObject ukko, ( LeftKey() - RightKey())*4
MoveObject ukko,( UpKey() - DownKey() )*3
For vihu.VIHUT = Each VIHUT
PointObject vihu\obj, ukko
MoveObject vihu\obj, 1
If ObjectsOverlap(vihu\obj, ukko, 2) Then
DeleteObject vihu\obj
Delete vihu
EndIf
Next vihu
DrawScreen
Forever
Tätä varmaan hait. Mutta kerronpa siis, mitä teit väärin:
Pistit pelaajan hahmon näkymättömiin =S, määrittelit tyypin loopissa (repeatin ja foreverin välissä), käytit objektille ja tyypin instanssille samaa nimeä, yritit kloonata objektin, jota ei ole (ammus? O.o), yritit asettaa vihun pelaaja-objektin kohdalle, vaikka kyseistä objektia ei ollut olemassakaan, lisäksi laitoit tuonne molempiin +50, vaikka tässä pyydetään objektia, jolloin yritettiin hakea jotain randomobjektia, jota ei tietenkään ollut olemassa, käytit purkkametodia päällekkäisyyksien tarkistamiseen etkä tietenkään sisentänyt looppia. Eli nyt vähän huolellisuutta ;D