Tyhmät kysymykset (I/2010)
Re: Tyhmät kysymykset (I/2010)
joo siis mul oli tos vain yks pulma miten saan objectin hiireks muuten osasin enkä löytäny manuaalista apua tähän
Re: Tyhmät kysymykset (I/2010)
Objectia ei tartte laittaa suoraan hiireksi toimiva tapa olisi ainakin.
Elikkäs avain sanoina tuossa olisi Showmouse (Kuvana) tai MouseWX() ja MouseWY() (Objectina)
Tuossa olisi jotain epämääräistä räpellystä objecti ja kuva hiiristä.
Edit: korjasin hieman koodia....
Elikkäs avain sanoina tuossa olisi Showmouse (Kuvana) tai MouseWX() ja MouseWY() (Objectina)
Code: Select all
Positionobject Hiiri, MouseWX(),MouseWY()
Code: Select all
Guy=LoadObject("Media\Guy.bmp")
Hiiri=LoadImage("Media\Guy.bmp")
Eka:
Repeat
Text 0,0,"Objecti hiirenä"
Text 0,15, "paina nappia vaihtaaksesi Kuva hiireen"
PositionObject Guy,MouseWX(),MouseWY()
DrawScreen
If GetKey() Then Gosub Toka
Forever
Toka:
ShowObject Guy,OFF
ShowMouse Hiiri
Gosub Kolmas
Kolmas:
Repeat
Text 0,0,"Objecti hiirenä"
Text 0,15, "paina nappia vaihtaaksesi Objecti hiireen"
DrawScreen
If GetKey() Then Gosub Neljäs
Forever
Neljäs:
ShowObject Guy,ON
ShowMouse ON
Gosub Eka
Re: Tyhmät kysymykset (I/2010)
no nyt on se probleema että ne paukut jää siihen hiireen kiinni XD
EDIT:
ei oikein ajatukset luista ko ei ite keksi varmaan ko väsyttää syynä
Re: Tyhmät kysymykset (I/2010)
No,tossa yhteenvetona vähän Jaahaksen onkelmaan.Miten saada ammus menemään hiirtä kohti,jos tota hait.
Code: Select all
Type AMMUS
Field obj
EndType
'HUOM! ShowMouse mouse ei toimi objektien yhteydessä
ShowMouse OFF
mouse = LoadObject("target.bmp")
ammus_obj=LoadObject("bullet.bmp")
'ShowObject ammus_obj,OFF
lataus=0
Repeat
PositionObject mouse,MouseWX(),MouseWY()
If MouseHit(1) And lataus=0
A.AMMUS = New(AMMUS)
A\obj = CloneObject(ammus_obj)
PointObject A\obj,mouse
lataus=5
EndIf
If lataus>0 Then lataus=lataus-1
For A.AMMUS = Each AMMUS
MoveObject A\obj,1
If ObjectsOverlap(A\obj,mouse)
DeleteObject A\obj:Delete A
EndIf
Next A
DrawScreen
Until EscapeKey()
Re: Tyhmät kysymykset (I/2010)
siis katos tonne ylemmäs siin on nykyhetkinen ongelmasankja wrote:No,tossa yhteenvetona vähän Jaahaksen onkelmaan.Miten saada ammus menemään hiirtä kohti,jos tota hait.Code: Select all
Type AMMUS Field obj EndType 'HUOM! ShowMouse mouse ei toimi objektien yhteydessä ShowMouse OFF mouse = LoadObject("target.bmp") ammus_obj=LoadObject("bullet.bmp") 'ShowObject ammus_obj,OFF lataus=0 Repeat PositionObject mouse,MouseWX(),MouseWY() If MouseHit(1) And lataus=0 A.AMMUS = New(AMMUS) A\obj = CloneObject(ammus_obj) PointObject A\obj,mouse lataus=5 EndIf If lataus>0 Then lataus=lataus-1 For A.AMMUS = Each AMMUS MoveObject A\obj,1 If ObjectsOverlap(A\obj,mouse) DeleteObject A\obj:Delete A EndIf Next A DrawScreen Until EscapeKey()
Re: Tyhmät kysymykset (I/2010)
Jaahas: tee se ammuksen suuntaus vain kerran, eli silloin kun luot ammuksen
Re: Tyhmät kysymykset (I/2010)
jaa enpäs tullut ajatelleeks kiitosbuke44 wrote:Jaahas: tee se ammuksen suuntaus vain kerran, eli silloin kun luot ammuksen
EDIT:
elikkäs miten saan ohjelman luomaan uuden ukon aina 3 sekunnin välein?
Re: Tyhmät kysymykset (I/2010)
Kokeile soveltaa tosta omaan ohjelmaasi,jos kiinnostaa.
Code: Select all
Type TYYPPI
Field obj
EndType
aika=Timer()
ukko=LoadObject("guy.bmp")
ShowObject ukko,OFF
Repeat
If Timer()>=aika+3000
u.TYYPPI=New(TYYPPI)
u\obj=CloneObject(ukko)
PositionObject u\obj,Rand(-200,200),Rand(150,-150)
aika=Timer()
EndIf
DrawScreen
Until EscapeKey()
Re: Tyhmät kysymykset (I/2010)
Kysymys tuost AnimObjectista.
Eikkä jos on esim.
"Matti=LoadAnimObject("Media\MattiAnim.bmp",47,52,0.25)
Niin, mitä nuo neljä punaista numerosarjaa on lopussa?
Eikkä jos on esim.
"Matti=LoadAnimObject("Media\MattiAnim.bmp",47,52,0.25)
Niin, mitä nuo neljä punaista numerosarjaa on lopussa?
Re: Tyhmät kysymykset (I/2010)
Manuaali on keksitty.Wilsu wrote:Kysymys tuost AnimObjectista.
Eikkä jos on esim.
"Matti=LoadAnimObject("Media\MattiAnim.bmp",47,52,0.25)
Niin, mitä nuo neljä punaista numerosarjaa on lopussa?
Tässä kohtaa manuaalia: http://www.coolbasic.com/cbmanual/comma ... bject.html
Eli ne ovat frame_leveys, frame_korkeus, aloitus. Hetkonen tuossahan on kolme eikä neljä. Sekä tuohan ei pitäisi toimia? Aloitus parametri pitänee olla kokonaisluku. Sekä sinulta puuttuu yksi parametri, "pituus"
Re: Tyhmät kysymykset (I/2010)
en nyt tajunnu ton objectintegerin opetusta siis jos teen näin (objectinteger vihu,100) se on siis hp miten saan sen miinustamaan siitä 20 jos siihen vihuun osuu pati?
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: Tyhmät kysymykset (I/2010)
Komennat ObjectInteger vihu, 80. Luet ensin nykyisen HP:n ja sitten vähennät siitä sen 20 ja sen jälkeen asetat uuden arvon.jaahas wrote:en nyt tajunnu ton objectintegerin opetusta siis jos teen näin (objectinteger vihu,100) se on siis hp miten saan sen miinustamaan siitä 20 jos siihen vihuun osuu pati?
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
Re: Tyhmät kysymykset (I/2010)
Elikkäs, kun pati osuu vihuun, sinun pitää käyttää ObjectIntegeriä funktiona, jolloin se palauttaa vihu hp:n. Sen jälkeen vähennät siitä 20 ja asetat uuden arvon vihulle. Tähän tapaan:jaahas wrote:en nyt tajunnu ton objectintegerin opetusta siis jos teen näin (objectinteger vihu,100) se on siis hp miten saan sen miinustamaan siitä 20 jos siihen vihuun osuu pati?
Code: Select all
ObjectInteger vihu,100
If patiosuuvihuun Then
ObjectInteger vihu,ObjectInteger(vihu) - 20
Endif
Re: Tyhmät kysymykset (I/2010)
kiitooos
EDIT:
taas minä siis nyt olis sellanen pulma et miten saaan sen vihun sitten tuhottua???????
Re: Tyhmät kysymykset (I/2010)
Tarkistat onko vihun ho 0 ja sitten katsot manuaalista komennon DeleteObject.jaahas wrote:kiitooosEDIT:taas minä siis nyt olis sellanen pulma et miten saaan sen vihun sitten tuhottua???????
Re: Tyhmät kysymykset (I/2010)
Otin uudeksi harjoitusprojektiksi opetella noita vihollissysteemejä ja tarvitsisin hieman apua...
Miten voisi toteuttaa seuraavanlaisen systeemin:
Pelaaja ohjaa objektia A yrittäen napata tietokoneen ohjaamaa objektia B. Jos objektin A ja B välinen etäisyys on pienempi kuin 100 pikseliä, objekti B liikkuu objektia A pakoon (Suurin ongelma nurkat).
Miten voisi toteuttaa seuraavanlaisen systeemin:
Pelaaja ohjaa objektia A yrittäen napata tietokoneen ohjaamaa objektia B. Jos objektin A ja B välinen etäisyys on pienempi kuin 100 pikseliä, objekti B liikkuu objektia A pakoon (Suurin ongelma nurkat).
"Baby," I said. "I'm a genius but nobody knows it but me."
Re: Tyhmät kysymykset (I/2010)
mutko en osaa tarkistaa sitä laita esimerkki ja kyl mä noi deleteobjectit osaanSly_Jack0 wrote:Tarkistat onko vihun ho 0 ja sitten katsot manuaalista komennon DeleteObject.jaahas wrote:kiitooosEDIT:taas minä siis nyt olis sellanen pulma et miten saaan sen vihun sitten tuhottua???????
EDIT:
jaa osasin sittenkin ei tartte auttaa
Last edited by jaahas on Sat Mar 20, 2010 11:07 pm, edited 1 time in total.
Re: Tyhmät kysymykset (I/2010)
Tarkistat funktiolla Distance2 pelaajan ja botin välisen etäisyyden. Tässä on pieni esimerkki kuinka toteuttaa botin liikkuminen tilekartoilla:Hene wrote:Otin uudeksi harjoitusprojektiksi opetella noita vihollissysteemejä ja tarvitsisin hieman apua...
Miten voisi toteuttaa seuraavanlaisen systeemin:
Pelaaja ohjaa objektia A yrittäen napata tietokoneen ohjaamaa objektia B. Jos objektin A ja B välinen etäisyys on pienempi kuin 100 pikseliä, objekti B liikkuu objektia A pakoon (Suurin ongelma nurkat).
Code: Select all
map = LoadMap("Media\cdm2.til","Media\tileset.bmp")
obj = LoadObject("Media/guy.bmp", 72)
dis = 32 // Kuinka lähellä seinän tulee olla ennenkuin botti reagoi
Repeat
MoveObject obj, 1
// Tarkistetaan onko objectin edessä törmäyskerros
If GetMap(2, ObjectX(obj) + Cos(ObjectAngle(obj)) * Dis, ObjectY(obj) + Sin(ObjectAngle(obj)) * Dis) Then
// Edessä oli, joten katsotaan kumpaan suuntaan käännytään
If GetMap(1, ObjectX(obj) + Cos(ObjectAngle(obj) + 90) * Dis, ObjectY(obj) + Sin(ObjectAngle(obj) + 90) * Dis) = 0 Then
// Vasemmalla tyhjää, käännytään sinne
RotateObject obj, ObjectAngle(obj) + 90
ElseIf GetMap(1, ObjectX(obj) + Cos(ObjectAngle(obj) - 90) * Dis, ObjectY(obj) + Sin(ObjectAngle(obj) - 90) * Dis) = 0 Then
// Oikealla tyhjää, käännytään sinne
RotateObject obj, ObjectAngle(obj) - 90
Else
// Umpikuja, käännytään ympäri
RotateObject obj, ObjectAngle(obj) + 180
EndIf
// Kääntymisen voisi tehdä myös turnobjectilla, mutta silloin reagointietäisyyttä tulisi kasvattaa
EndIf
DrawScreen
Forever
Hengität nyt manuaalisesti.
Re: Tyhmät kysymykset (I/2010)
No en nyt vielä laita esimerkki, koska opit paremmin kun joudut itse pähkäilemään.jaahas wrote:mutko en osaa tarkistaa sitä laita esimerkki ja kyl mä noi deleteobjectit osaan
Protip: kuten jo aikaisemmin on todettu, saat vihun nykyisen hp:n selville ObjectInteger()-funktiolla.
Protip2: <=
Re: Tyhmät kysymykset (I/2010)
Thänksit!DatsuniG wrote:Tarkistat funktiolla Distance2 pelaajan ja botin välisen etäisyyden. Tässä on pieni esimerkki kuinka toteuttaa botin liikkuminen tilekartoilla:Hene wrote:Otin uudeksi harjoitusprojektiksi opetella noita vihollissysteemejä ja tarvitsisin hieman apua...
Miten voisi toteuttaa seuraavanlaisen systeemin:
Pelaaja ohjaa objektia A yrittäen napata tietokoneen ohjaamaa objektia B. Jos objektin A ja B välinen etäisyys on pienempi kuin 100 pikseliä, objekti B liikkuu objektia A pakoon (Suurin ongelma nurkat).Code: Select all
map = LoadMap("Media\cdm2.til","Media\tileset.bmp") obj = LoadObject("Media/guy.bmp", 72) dis = 32 // Kuinka lähellä seinän tulee olla ennenkuin botti reagoi Repeat MoveObject obj, 1 // Tarkistetaan onko objectin edessä törmäyskerros If GetMap(2, ObjectX(obj) + Cos(ObjectAngle(obj)) * Dis, ObjectY(obj) + Sin(ObjectAngle(obj)) * Dis) Then // Edessä oli, joten katsotaan kumpaan suuntaan käännytään If GetMap(1, ObjectX(obj) + Cos(ObjectAngle(obj) + 90) * Dis, ObjectY(obj) + Sin(ObjectAngle(obj) + 90) * Dis) = 0 Then // Vasemmalla tyhjää, käännytään sinne RotateObject obj, ObjectAngle(obj) + 90 ElseIf GetMap(1, ObjectX(obj) + Cos(ObjectAngle(obj) - 90) * Dis, ObjectY(obj) + Sin(ObjectAngle(obj) - 90) * Dis) = 0 Then // Oikealla tyhjää, käännytään sinne RotateObject obj, ObjectAngle(obj) - 90 Else // Umpikuja, käännytään ympäri RotateObject obj, ObjectAngle(obj) + 180 EndIf // Kääntymisen voisi tehdä myös turnobjectilla, mutta silloin reagointietäisyyttä tulisi kasvattaa EndIf DrawScreen Forever
Mihinkös kohtaan tuo positionobject pitäisi lätkäistä? Heittää jatkuvasti memorian acces violationia vaikka kokeiltu ties mitä kohtaa... :/
"Baby," I said. "I'm a genius but nobody knows it but me."