Tyhmät kysymykset (II/2009)
Re: Tyhmät kysymykset (II/2009)
Siihen on erillinen komento. Nimeä en muista eikä ole CoolBasicia tällä koneella mutta etsi manuaalista (objektit)
Re: Tyhmät kysymykset (II/2009)
Objektit piirretään siinä järjestyksessä missä ne on ladattu (ensin ladattu alimmaisena). Tätä järjestystä voi muuttaa ObjectOrderilla. Oletuksena objektit piirretään kuvien päälle, ellet käytä DrawGamea.
Edit. Sanoin ObjectInteger, tarkoitin ObjectOrder
Edit. Sanoin ObjectInteger, tarkoitin ObjectOrder
Last edited by Jonez on Tue Jul 21, 2009 12:05 am, edited 1 time in total.
-
- Tech Developer
- Posts: 545
- Joined: Sun Aug 26, 2007 2:43 pm
- Location: Liminka
Re: Tyhmät kysymykset (II/2009)
Tarkoitat kai ObjectOrderia?Jonez wrote:Objektit piirretään siinä järjestyksessä missä ne on ladattu (ensin ladattu alimmaisena). Tätä järjestystä voi muuttaa ObjectIntegerillä. Oletuksena objektit piirretään kuvien päälle, ellet käytä DrawGamea.
CoolBasic henkilökuntaa
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Re: Tyhmät kysymykset (II/2009)
Saanko mitenkään ylhäältäpäinkuvatussa räiskintäpelissä luodit pysyvästi lähtemään aseen kohdalta? Yritin jo liikuttaa luotia sen latauksen jälkeen aseen kohdalle, ja se toimi, kunnes käänsin ukkelia.
We see the lines in chalk
The warning signs in where we walk
In the shadows of the cities maze
To try and fight for better days
The warning signs in where we walk
In the shadows of the cities maze
To try and fight for better days
-
- Advanced Member
- Posts: 281
- Joined: Sat Jun 28, 2008 5:19 pm
- Location: Hämeessä miä
Re: Tyhmät kysymykset (II/2009)
Asetat vain luodin samaan kohtaan ukon kanssa CloneObjectPosition komennolla ja katso oppitunti 18.
Re: Tyhmät kysymykset (II/2009)
Ja aseta luodille myös sama lähtökulma kuin ukolla komennolla CloneObjectOrientationNassi_Setä wrote:Asetat vain luodin samaan kohtaan ukon kanssa CloneObjectPosition komennolla ja katso oppitunti 18.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset (II/2009)
Öh, minulla on funktio jossa pistetään yhet x- ja y-paikat alku paikkoihin, funktion sisällä, mutta niitä kuitenkin vielä muutetaan fuktiossa hiiren paikan mukaa. Miten saan nämä alkupositiot laitettua vain alussa. Kun tällä hetkellä se laittaa koko ajan ne sinne alku paikkaan eikä niitä voi siirtää hiirellä...
Re: Tyhmät kysymykset (II/2009)
Tietysti teen niin mutta ku se panos lähee ukon vatsastaVesQ wrote:Ja aseta luodille myös sama lähtökulma kuin ukolla komennolla CloneObjectOrientationNassi_Setä wrote:Asetat vain luodin samaan kohtaan ukon kanssa CloneObjectPosition komennolla ja katso oppitunti 18.
We see the lines in chalk
The warning signs in where we walk
In the shadows of the cities maze
To try and fight for better days
The warning signs in where we walk
In the shadows of the cities maze
To try and fight for better days
Re: Tyhmät kysymykset (II/2009)
Noitte cloneobjectorientation, jne. juttujen jälkeen sano sille MoveObejct obj,12. siirtä sitä 12 piskeliii ettenpäin, tai sitte vähän vaikeempi:
PositionObject kuti,ObjectX(ukko)+Cos(ObjectAngle(ukko))*12,ObjectY(ukko)+Sin(ObjectANgle(ukko))*12
Jotenki näin...
PositionObject kuti,ObjectX(ukko)+Cos(ObjectAngle(ukko))*12,ObjectY(ukko)+Sin(ObjectANgle(ukko))*12
Jotenki näin...
Re: Tyhmät kysymykset (II/2009)
Pitäs saada noille vihollisille ampuminen..ei ei millää mene, vaikka kaikkea olen kokeillut.. kerran sain toimimaan, että ampui vain oikeaan päin ja joka vihu ampu eri nopeudella (ja iha oikein sen minä luulin tehneeni)
jote pieni apu olisi tarpeellista
jote pieni apu olisi tarpeellista
Code: Select all
viikatemies:
ClearKeys
ClearText
ClearObjects
Type AMMUKSET
Field obj
Field dmg
Field speed
Field hp
Field id
End Type
Type BULLETS
Field obj
Field hp
Field dmg
Field speed
Field id
End Type
Type VIHUT
Field obj
Field hp
Field dmg
Field speed
Field id
EndType
Const PAINOVOIMA = -0.1
yPlus#=0
SetWindow "Viikatemies 2",3
FrameLimit 40
//PUHELAATIKOT
viikatemiespuhe = LoadImage ("puheloota1.png")
MaskImage viikatemiespuhe,cbmagenta
tonttupuhe = LoadImage ("puheloota2.png")
MaskImage tonttupuhe,cbmagenta
//PELINULKOASU
tausta = LoadImage ("tausta2.png")
kenttä=LoadMap("testmap.til","malli tileset.png")
MaskObject kenttä,cbmagenta
PositionObject kenttä,0,50
PlayObject kenttä,0,0,0.5
hiiri = LoadObject("hiiri.png")
//ITSE PELI
pallo=LoadObject("ammus2.png",72)
ShowObject pallo,OFF
nuoli=LoadObject("ammus1.png",72)
ShowObject nuoli,OFF
//PELAAJA
oikea=LoadAnimObject("Viikatemiesjuoksu1.png",47,51,0,13)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,30,51
vasen=LoadAnimObject("Viikatemiesjuoksu2.png",47,51,0,13)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51
pelihahmo=CloneObject(oikea)
health=100
For x=1 To MapWidth()
For y=1 To MapWidth()
If GetMap2(3,x,y)=1 Then PositionObject pelihahmo,x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
Next y
Next x
SetupCollision pelihahmo,kenttä,1,4,2
ObjectRange pelihahmo,30,51
//lyöntianimatiot
vasenlyö=LoadAnimObject ("viikatemieslyö1.png",52,51,0,4)
MaskObject vasenlyö,cbMagenta
ShowObject vasenlyö,OFF
ObjectRange vasenlyö,30,51
oikealyö=LoadAnimObject ("viikatemieslyö2.png",52,51,0,4)
MaskObject oikealyö,cbMagenta
ShowObject oikealyö,OFF
ObjectRange oikealyö,30,51
PositionCamera -160,-120
////VIHOLLISET
oikeajousi=LoadObject("oikeajousi.png")
MaskObject oikeajousi,cbMagenta
ShowObject oikeajousi,OFF
ObjectRange oikeajousi,30,51
vasenjousi=LoadObject("Vasenjousi.png")
MaskObject vasenjousi,cbMagenta
ShowObject vasenjousi,OFF
ObjectRange vasenjousi,30,51
vihu=CloneObject(oikeajousi)
ShowObject vihu,OFF
Dim vihuja(50) As integer
For X=1 To 50
vihuja(x) = CloneObject(oikeajousi)
SetupCollision vihuja(x),kenttä,1,4,2
PaintObject vihuja(x),oikeajousi
Next X
For X=1 To 50
For x=1 To MapWidth()
For y=1 To MapWidth()
If GetMap2(3,x,y)=50 Then PositionObject vihuja(1),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=51 Then PositionObject vihuja(2),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=52 Then PositionObject vihuja(3),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=53 Then PositionObject vihuja(4),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=54 Then PositionObject vihuja(5),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=55 Then PositionObject vihuja(6),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=56 Then PositionObject vihuja(7),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=57 Then PositionObject vihuja(8),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=58 Then PositionObject vihuja(9),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=59 Then PositionObject vihuja(10),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=60 Then PositionObject vihuja(11),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=61 Then PositionObject vihuja(12),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=62 Then PositionObject vihuja(13),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=63 Then PositionObject vihuja(14),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=64 Then PositionObject vihuja(15),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=65 Then PositionObject vihuja(16),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=66 Then PositionObject vihuja(17),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=67 Then PositionObject vihuja(18),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=68 Then PositionObject vihuja(19),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=69 Then PositionObject vihuja(20),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
If GetMap2(3,x,y)=70 Then PositionObject vihuja(21),x*32-(ObjectSizeX(kenttä)/2),-y*32+(ObjectSizeY(kenttä)/2)
Next y
Next x
Next X
Repeat
DrawImage tausta,0,0'Piirrämmä tausta nyt heti
If KeyHit(cbkeyp) Then Gosub tauko'painappa p niin tauko
////HIIRI
PositionObject hiiri,MouseWX(),MouseWY()
ShowMouse OFF
PointObject pelihahmo,hiiri
////AMPUMINEN
If MouseHit (1) And reload<0
newBullet.AMMUKSET= New(AMMUKSET)
newBullet\obj=CloneObject(pallo)
CloneObjectPosition newBullet\obj,pelihahmo
CloneObjectOrientation newbullet\obj,pelihahmo
MoveObject newBullet\obj,24
reload=15
SetupCollision newbullet\obj,kenttä,1,4,2
EndIf
reload-1
For iBullet.AMMUKSET= Each AMMUKSET
If CountCollisions(ibullet\obj) Then ibullet\hp-32
MoveObject iBullet\obj,6
If Distance2(iBullet\obj,pelihahmo)>600 Or ibullet\hp<0 Then
DeleteObject iBullet\obj
Delete iBullet
EndIf
Next iBullet
//KÄVELEMINEN ,HYPPÄÄMMINEN JNE...
kulma=GetAngle2(pelihahmo,hiiri)
If kulma<90 Or kulma>270 Then
PaintObject pelihahmo,oikea
'If KeyHit(cbkey) Then PlayObject
ElseIf kulma>90 Or kulma<270 Then
PaintObject pelihahmo,vasen
EndIf
//tappeleminen
If MouseDown (3) Then
tappelu=GetAngle2(pelihahmo,hiiri)
If tappelu<90 Or tappelu>270 Then
PaintObject pelihahmo,oikealyö
If maassa and keydown (cbkey1)Then LoopObject pelihahmo,0,4,0.15,ON
ElseIf tappelu>90 Or tappelu<270 Then
PaintObject pelihahmo,vasenlyö
Else
PlayObject pelihahmo,0
EndIf
EndIf
vauhti=0
If KeyDown(cbkeyD) Then
'juokse oikealle
PaintObject pelihahmo,oikea
If maassa Then PlayObject pelihahmo,0,11,0.25
vauhti=2 'vauhtia oikealle
ElseIf KeyDown(cbkeyA) Then
'juokse vasemmalle
PaintObject pelihahmo,vasen
If maassa Then PlayObject pelihahmo,0,11,0.25
vauhti=-2 'vauhtia vasemmalle
Else
PlayObject pelihahmo,0
EndIf
TranslateObject pelihahmo,vauhti,yPlus#
yPlus=yPlus+PAINOVOIMA
UpdateGame
CloneCameraPosition pelihahmo
maassa=0
törmäykset=CountCollisions(pelihahmo)
For i=1 To törmäykset
If GetCollision(pelihahmo,i)=kenttä
If CollisionAngle(pelihahmo,i)=90 Then
yPlus#=-1
maassa=1
EndIf
If CollisionAngle(pelihahmo,i)=270 Then
yPlus#=-1
EndIf
EndIf
Next i
If törmäykset=0 Then PlayObject pelihahmo,12,0
////HYPPÄÄMINEN
If KeyHit(cbKeyW) And maassa Then
yPlus#=2.5
EndIf
If KeyHit (cbkeyq) And powerhyppy>1 And maassa Then
yPlus#=5.0
powerhyppy-1
EndIf
////VIHOLLISET
For X=1 To 50
kulmavihu=GetAngle2(pelihahmo,vihuja(x))
If kulmavihu<90 Or kulmavihu>270 Then
PaintObject vihuja (x),vasenjousi
'If KeyHit(cbkey) Then PlayObject
ElseIf kulmavihu>90 Or kulmavihu<270 Then
PaintObject vihuja (x),oikeajousi
EndIf
Next x
DrawGame
If health > 49 Then Color 0,210,0
If health > 24 And health < 50 Then Color 200,200,0
If health < 25 And health > 17 Then Color 220,105,0
If health < 18 Then Color 215,0,0
If health = 0 Then MakeError "ei mitään vielä.."
Box 100,23,health,15
Color cbwhite
Text 110,25,"HP:"+health
If KeyHit (cbkeyf12) Then ScreenShot "c:\viikatemies2\capture.bmp"
DrawScreen
Until EscapeKey()
TAUKO:
ClearKeys
ClearText
Repeat
DrawGame
Color cbwhite
Text 300,300,"TAUKO, PAINA P"
If KeyHit(cbkeyp) Then Return
DrawScreen
Forever
Re: Tyhmät kysymykset (II/2009)
Miten saisin tehtyä niin, että ase vaihtuu hiiren rullalla? Sain ammunnan yhdelle aseelle tehtyä hiiren ykköselle, mutta aseen vaihto ei onnistunut... :/
"Baby," I said. "I'm a genius but nobody knows it but me."
Re: Tyhmät kysymykset (II/2009)
Hene: Teet muuttujan joka määrää mikä ase on käytössä: esim. Aktiivinen_ase = 1, päivittää vain pistoolin ampumis koodin. Käytä numeroiden sijasta vakioita, niin aseen vaihtaminen on selkeämpää.
Rullan käsittely: muuttaa Aktiivinen_ase muutujan arvoa, ja pitää sen välillä 0-MAX_ASEITA.
Siten vain:
Muista tehdä jokaiselle aseelle omat muuttujat (ja tyypit), niin ne eivät mene sekaisin. Kokeile koota muuttujat myös yhteen paikkaan koodissa, niin tiedät paremmin missä "tilassa" ase on.
Rami: Koodi on aivan hiriviää .. varmaan 60% kopioitu copypaastella oppitunneista. (suositelisin koodin uudelleen kirjoittamista, korjaa mm. vihu ongelman siinä sivussa. ) Vihollisille on tyyppi mutta teet vihut taulukkoon??? mitään ampumis koodia vihollisille ei näytä olevan antamassasi koodissa. Tee vihu typeen reload muuttuja ja käytä sitä vihujen aseen lataamiseen. tee vaikka vihujen ammus-typeen field joka kertoo mikä vihu ampui sen.
Rullan käsittely: muuttaa Aktiivinen_ase muutujan arvoa, ja pitää sen välillä 0-MAX_ASEITA.
Code: Select all
Aktiivinen_ase = Aktiivinen_ase + MouseMoveZ()
if Aktiivinen_ase < 0 then Aktiivinen_ase = MAX_ASEITA
if Aktiivinen_ase > MAX_ASEITA then Aktiivinen_ase = 0
Code: Select all
If AmmuJollainAseella then
If Aktiivinen_ase = ASE_PISTOOLI and Pistooli_Ammukset > 0 and Pistooli_reload < 0
'Pistoolin ampumis koodi tänne
ElseIf Aktiivinen_ase = ASE_PLASMA_LAZER and Plamalazer_ylikuumentuminen < 50
'Plasmalazer ampumis koodin tänne
Elseif 'jne...
Endif
Rami: Koodi on aivan hiriviää .. varmaan 60% kopioitu copypaastella oppitunneista. (suositelisin koodin uudelleen kirjoittamista, korjaa mm. vihu ongelman siinä sivussa. ) Vihollisille on tyyppi mutta teet vihut taulukkoon??? mitään ampumis koodia vihollisille ei näytä olevan antamassasi koodissa. Tee vihu typeen reload muuttuja ja käytä sitä vihujen aseen lataamiseen. tee vaikka vihujen ammus-typeen field joka kertoo mikä vihu ampui sen.
-On selkeästi impulsiivinen koodaaja joka...
Re: Tyhmät kysymykset (II/2009)
Thänksit. Pitääkin alkaa sovitella omaan koodiin
Ja sitten vielä toista kysymystä pukkaa;
Miten ohjelmaan voi tehdä "oikean" latausikkunan? Noita addtexteillä tehtyjä, feikattuja latausikkunoitahan nyt näkee jokaisen amatöörin tekeleissä, mutta miten saisi oikeasti liitettyä tekstiä pelin ladatessa? Tällä hetkellä kehitteillä eräs peli, johon tulee vähän enemmän objekteja ym, joten pelin lataaminenkin taitaa kestää jonkin aikaa.
Ja sitten vielä toista kysymystä pukkaa;
Miten ohjelmaan voi tehdä "oikean" latausikkunan? Noita addtexteillä tehtyjä, feikattuja latausikkunoitahan nyt näkee jokaisen amatöörin tekeleissä, mutta miten saisi oikeasti liitettyä tekstiä pelin ladatessa? Tällä hetkellä kehitteillä eräs peli, johon tulee vähän enemmän objekteja ym, joten pelin lataaminenkin taitaa kestää jonkin aikaa.
"Baby," I said. "I'm a genius but nobody knows it but me."
-
- Tech Developer
- Posts: 545
- Joined: Sun Aug 26, 2007 2:43 pm
- Location: Liminka
Re: Tyhmät kysymykset (II/2009)
Ihan vaikka addTextillä, eli lataat mediaa, päivität prosentit, lataat taas mediaa, päivität prosentit jne.Hene wrote:Thänksit. Pitääkin alkaa sovitella omaan koodiin
Ja sitten vielä toista kysymystä pukkaa;
Miten ohjelmaan voi tehdä "oikean" latausikkunan? Noita addtexteillä tehtyjä, feikattuja latausikkunoitahan nyt näkee jokaisen amatöörin tekeleissä, mutta miten saisi oikeasti liitettyä tekstiä pelin ladatessa? Tällä hetkellä kehitteillä eräs peli, johon tulee vähän enemmän objekteja ym, joten pelin lataaminenkin taitaa kestää jonkin aikaa.
Jos ei tekstimuotoinen kiinnosta niin sitten piirrät palkin, drawscreen off, lataat, piirrät, drawscreen off, jne, jne
CoolBasic henkilökuntaa
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Re: Tyhmät kysymykset (II/2009)
Minulla on isometrisen kentän pohja, joka on tehty taulukoilla. Pelihahmoni on piirretty taulukkoon, Koska sen pitää piirtyä välillä esim. sohvan taakse. Kysymys kuuluu miten voin tehdä pelihahmolleni liukuvan liikkumisen, ettei pelaaja jokaisella napin painalluksella liiku tökerösti ruudun kerrallaan.
-
- Tech Developer
- Posts: 545
- Joined: Sun Aug 26, 2007 2:43 pm
- Location: Liminka
Re: Tyhmät kysymykset (II/2009)
Tekemällä pelihahmolle jonkinlaiset xoffset ja yoffset muuttujat ja piirrät pelaajan sen verran pois ruudusta.Guest Mr_noob wrote:Minulla on isometrisen kentän pohja, joka on tehty taulukoilla. Pelihahmoni on piirretty taulukkoon, Koska sen pitää piirtyä välillä esim. sohvan taakse. Kysymys kuuluu miten voin tehdä pelihahmolleni liukuvan liikkumisen, ettei pelaaja jokaisella napin painalluksella liiku tökerösti ruudun kerrallaan.
CoolBasic henkilökuntaa
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Kehittäjä
cbFUN Kello
cbSDL
Whale.dy.fi
<@cce> miltäs tuntuu olla suomen paras
Re: Tyhmät kysymykset (II/2009)
Suunnittelin tekoälylle kisaus tyyliä, mutta saavuin ongelmaiseen pieneen.
Meinasin tehdä niin, että rata on täynnä "kiinto pisteitä" joihin muut kuljettajat yrittävät, mutta ongelmaksi tulee, että koodi oli melkoista purkkaa.
Eli olisiko jotain helppoa ratkaisua, että tekoäly ajaisi tietä pitkin rataa ympäri?
Meinasin tehdä niin, että rata on täynnä "kiinto pisteitä" joihin muut kuljettajat yrittävät, mutta ongelmaksi tulee, että koodi oli melkoista purkkaa.
Eli olisiko jotain helppoa ratkaisua, että tekoäly ajaisi tietä pitkin rataa ympäri?
Business manager - companys mini pack
Re: Tyhmät kysymykset (II/2009)
Ja eikun paintilla piirtämään!
Code: Select all
SCREEN 800,600
FrameLimit 40
Type CARS
Field x#
Field y#
Field speed#
Field angle
Field r
Field g
Field b
EndType
maa = LoadImage("map.png")
addcar(395,530,0)
Repeat
If MouseDown(1) Then
DrawToImage maa
Color cbwhite
Circle MouseX() - 20,MouseY() - 20,40,40
DrawToScreen
EndIf
DrawImage maa,0,0
Movement()
DrawCars()
DrawScreen
Forever
Function DrawCars()
For uusi.CARS = Each CARS
Color uusi\r,uusi\g,uusi\b
DrawShip(uusi\x,uusi\y,uusi\angle)
Next uusi
EndFunction
Function AddCar(x,y,angle)
uusi.CARS = New(CARS)
uusi\x = x
uusi\y = y
uusi\angle = angle
uusi\r = Rand(255)
uusi\g = Rand(255)
uusi\b = Rand(255)
EndFunction
Function DrawShip(X#,y#,Angle)
Circle x-5,y-5,10,10
Line x + Cos(Wrapangle(angle)) * 15 , y - Sin(wrapangle(angle)) * 15,x + Cos(wrapangle(angle - 125)) * 15 , y - Sin(wrapangle(angle - 125)) * 15
Line x + Cos(Wrapangle(angle)) * 15 , y - Sin(wrapangle(angle)) * 15,x + Cos(wrapangle(angle + 125)) * 15 , y - Sin(WrapAngle(angle + 125)) * 15
Line x + Cos(WrapAngle(angle + 180)) * 1 , y - Sin(WrapAngle(angle + 180)) * 1,x + Cos(WrapAngle(angle - 125)) * 15 , y - Sin(WrapAngle(angle - 125)) * 15
Line x + Cos(WrapAngle(angle + 180)) * 1 , y - Sin(WrapAngle(angle + 180)) * 1,x + Cos(WrapAngle(angle + 125)) * 15 , y - Sin(WrapAngle(angle + 125)) * 15
EndFunction
Function Movement()
For uusi.CARS = Each CARS
For i = -45 To 45 Step 5
For a = 0 To 50
If GetPixel(uusi\x + Cos(uusi\angle + i) * 60,uusi\y - Sin(uusi\angle + i) * 60) <> -16777216 Then
uusi\speed = Max(0,uusi\speed - 0.05)
If GetPixel(uusi\x + Cos(uusi\angle - i - 90) * (80 - a),uusi\y - Sin(uusi\angle - i - 90) * (80 - a)) <> -16777216 Then
uusi\angle + 2
Goto endx
Else
uusi\angle - 2
Goto endx
EndIf
If GetPixel(uusi\x + Cos(uusi\angle + i + 90) * (80 - a),uusi\y - Sin(uusi\angle + i + 90) * (80 - a)) <> -16777216
Goto endx
Else
uusi\angle + 2
Goto endx
EndIf
Else
uusi\speed = Min(2,uusi\speed + 0.01)
EndIf
Next a
Next i
endx:
uusi\x = uusi\x + Cos(uusi\angle) * uusi\speed
uusi\y = uusi\y - Sin(uusi\angle) * uusi\speed
Next uusi
EndFunction
Hengität nyt manuaalisesti.
Re: Tyhmät kysymykset (II/2009)
No ei sen ihan noin kuulunut mennä.
Auto menee suoraan pari metriä ja lähtee alaspäin, jonka jälkeen paluuta ei näytä olevan. Ei mennyt radalla. Vai mahdoinko tehdä jotain väärin?
Auto menee suoraan pari metriä ja lähtee alaspäin, jonka jälkeen paluuta ei näytä olevan. Ei mennyt radalla. Vai mahdoinko tehdä jotain väärin?
Business manager - companys mini pack
Re: Tyhmät kysymykset (II/2009)
Tuo on jo melko vanha koodi, mutta muistaakseni botit pitävät esteenä kaikkea muuta paitsi mustaa. ; )
Hengität nyt manuaalisesti.