@Matti3.
Code: Select all
FrameLimit 40
SCREEN 800,600
map=LoadMap("media\map1.til","media\tileset.bmp")
ukko=LoadObject("media\guy.bmp",32)
target=MakeObject()
'Scannataan montako eri data numeroa on
maxdata=19
way=19
i=0
For y=1 To MapWidth()
For x=1 To MapWidth()
If GetMap2(3,x,y)>19 Then maxdata+1
'way=maxdata
Next x
Next y
'päälooppi
Repeat
'Käännenään ukko katsomaan kohdetta ja liikutetaan se sinne
CurvePointObject(ukko, target,5)
MoveObject ukko,3
CloneCameraPosition ukko
If ObjectsOverlap(ukko,target) Then way+1 Then aa+1'jos ukko ja kohde törmää niin kohde vaihtaa paikkaa
'Katsotaan mihin kohtiin kohde voi asettua
For x=1 To MapWidth()
For y=1 To MapWidth()
If GetMap2(3,x,y)=way Then PositionObject target,x*32-(ObjectSizeX(map)/2),-y*32+(ObjectSizeY(map)/2)
Next y
Next x
'Jos Astutaan viimeiseen data kerrokseen niin aloitetaan lenkki alusta
If way>maxdata Then way=20
Text 10,10,"way "+way
Text 10,20,"max "+maxdata
DrawScreen
Forever
Function CurvePointObject(_obj1, _obj2, _smoothness = 10)
angle# = ObjectAngle(_obj1)
newangle# = GetAngle2(_obj1, _obj2)
angle# = CurveAngle(newangle, angle, _smoothness)
RotateObject _obj1, angle
EndFunction
Siinä olisi aikaa sitten tekemäni waypointhomma. Lisäsin siihen curvepoinobject funktion hienontamaan.
Tarvitset tilekartan ja datakerroksiin merkitset waypointit 20 alkaen.
Susittelen kuitenkin kehittelemään tekoälyä pidemmälle, tuommoisena voi käydä tylsäksi.
Oma autopeli kehitteillä, jos valmistuu saat kovan kilpailijan
EDIT:Siis eka data onkin 20, mutta sitähän voi vaihtaa. No datakerrokset ovat tilekartan kerroksia, joihin voidaan asettaa jotain numeroita/dataa, ja ainakun objekti koskee tiettyä datanumero kerrosta tehdään jotain. Tässä tapaukessa otetaan uusi suunta. Suosittelen selaamaan manualin kohtia tilekartoista. Autopeli on aika hankala tehdä, mutta onnea yritykseen.