Tyhmät kysymykset (I/2009)
Re: Tyhmät kysymykset
Miten voisin poistaa/piillottaa objecktista palasia? Esim. kun ammus obj osuu seinä objektiin, niin miten voisin saada seinästä palan piilotettua/poistettua? Itse tein osumakohtaan uuden objecktin, joka luo aukon tunnelman seinään.. Ongelmaksi kuitenkin osottautui, että ohjelmani ei tunnista klommoa seinässä ja klommo ei suurene, kun osuu samaan kohtaan toisenkerran
Muutenkin klommojen piirtäminen vie aika paljon konetehoa =( Onko muita ideoita?
Muutenkin klommojen piirtäminen vie aika paljon konetehoa =( Onko muita ideoita?
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Jos on pakko käyttää objekteja, niin keksin ainoastaan tämmöiseen hitaan purkka ratkaisun:Käytännöllisempää olisi käyttää pelkkiä kuvia, koska paintobject on todella hidas.
Code: Select all
map = LoadImage("media/map.bmp")
obj = MakeObject()
PaintObject obj,-map
While 1
// eka hiiren nappi alas
If MouseDown(1) Then
DrawToImage map
Color 0,0,0
Circle MouseX()-10,MouseY()-10,20
DrawToScreen
PaintObject obj,-map
EndIf
DrawScreen
Wend
Re: Tyhmät kysymykset
Jos klommot löytyvät aina tietystä kohtaa, voit paintobjectilla vaihtaa objektin grafiikkaa. CoolBasicissa ei ole myöskään pikselintarkkaa törmäyksentunnistinta, niin jos palanen mikä lähtee seinästä "pois" muodostaa ei-laatikko/ympyrämäisen palasen niin törmäyksentunnistin bugittaa.kysymys wrote:Miten voisin poistaa/piillottaa objecktista palasia? Esim. kun ammus obj osuu seinä objektiin, niin miten voisin saada seinästä palan piilotettua/poistettua? Itse tein osumakohtaan uuden objecktin, joka luo aukon tunnelman seinään.. Ongelmaksi kuitenkin osottautui, että ohjelmani ei tunnista klommoa seinässä ja klommo ei suurene, kun osuu samaan kohtaan toisenkerran
Muutenkin klommojen piirtäminen vie aika paljon konetehoa =( Onko muita ideoita?
Voit myös tehdä pelin alussa esim. taulukkoon erilaiset muokatut kuvat yhdestä seinäpalasesta ja muokata sitten CB:n omilla komennoilla siitä erilaisen ja tallettaa jokaiseen taulukon soluun erilaisen vaihtoehdon. Sitten pelissä ammuksen osuessa seinään katsot törmäyskulman ja sen mukaan päätät millä kuvalla päällystät kyseisen objektin.
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
Joudun käyttämään objekteja, koska joudun liikuttamaan ammuksia sen verran.. Voin tietenkin yrittää väsätä peliäni kuville, mutta se ei ole välttämätöntä. Pelini ei tarvitse mitään huippu fps:sää.. Itse jotenkin unohdin tuon komennon ja aloin vain typeillä tehdä paikkoja mapin päälleGrandi wrote:Jos on pakko käyttää objekteja, niin keksin ainoastaan tämmöiseen hitaan purkka ratkaisun:Käytännöllisempää olisi käyttää pelkkiä kuvia, koska paintobject on todella hidas.Code: Select all
map = LoadImage("media/map.bmp") obj = MakeObject() PaintObject obj,-map While 1 // eka hiiren nappi alas If MouseDown(1) Then DrawToImage map Color 0,0,0 Circle MouseX()-10,MouseY()-10,20 DrawToScreen PaintObject obj,-map EndIf DrawScreen Wend
Kiitos molemmille =)
Re: Tyhmät kysymykset
Hei taas -> jälleen kysymys-osiossa. Onko mahdollista cbn piirtokomennoilla tehtyä ympyrää muuttaa objectiksi?
Tämä tieto on elintärkeä itseni kannalta. : )
Tämä tieto on elintärkeä itseni kannalta. : )
Re: Tyhmät kysymykset
On mahdollista maalata objekteja kuvilla (eli antaa objektille sama ulkonäkö kuin tietyllä kuvalla). Pelkästään cb:n piirtokomennolla tehtyä ympyrää ei ole mahdollista muuttaa _suoraan_ objektiksi.
Eli tee näin:
1. Teet uuden kuvan funktiolla MakeImage()
2. Luot uuden objektin funktiolla MakeObject(). Tämä on se objekti joka vastaa ympyrää.
3. Piirrät tähän 1-osiossa luotuun kuvaan käyttäen komentoja DrawToImage ja DrawToWorld
4. Maalaat luodun objektin tällä kuvalla. Käytä komentoa PaintObject()
Eli tee näin:
1. Teet uuden kuvan funktiolla MakeImage()
2. Luot uuden objektin funktiolla MakeObject(). Tämä on se objekti joka vastaa ympyrää.
3. Piirrät tähän 1-osiossa luotuun kuvaan käyttäen komentoja DrawToImage ja DrawToWorld
4. Maalaat luodun objektin tällä kuvalla. Käytä komentoa PaintObject()
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Tai sitten DrawToScreen ;)Jonez wrote:3. Piirrät tähän 1-osiossa luotuun kuvaan käyttäen komentoja DrawToImage ja DrawToWorld
Kuvaton tapa tuosta olisi asettaa ympyrä maailmakoordinaatteihin objektin paikalle ObjextX ja ObjectY funktioilla - Myös DrawToWorldia tarvitaan. Sitten vain tyhjälle objektille asetetaan ObjectRangella kooksi ympyrän koko, jotta mahdolliset törmäykset jne. olisivat realistisia. Tässä tapauksessa on myös oltava tarkkana, tuleeko ympyrä haluttujen asioiden päälle tai alle. Uskoisin tämän olevan nopeampi ratkaisu, kun ei tarvitse piirtää kuvaan tai käyttää PaintObjektia, jotka ovat kumpikin todella raskaita operaatioita.
Re: Tyhmät kysymykset
Mutta miks taas pitäis käyttää PaintObjectia kokoajan? Ei se pari kertaa pelin latausvaiheessa tunnu missään.
Re: Tyhmät kysymykset
voiko värien mukaan tehdä törmäystunnistuksen, jos voi, niin miten?
-
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 3:53 pm
- Location: Suomi, Finland
- Contact:
Re: Tyhmät kysymykset
voi lue väri getcolorilla tai getimagecolorilla ja jos se on törmäys väri niin pysäytä putoaminen jne.
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Tarkoitat siis PickColor ja PickImageColor / PickImageColor2?tuhoojabotti wrote:voi lue väri getcolorilla tai getimagecolorilla ja jos se on törmäys väri niin pysäytä putoaminen jne.
EDIT: Äsh! Typotin ton äsken itsekkin :D Korjattu.
Olettaen, että kirjoitit minulle. Taisit käsittää viestini väärin, sillä suosittelin olemaan käyttämättä PaintObjectia tuossa tilanteessa ;)Temu92 wrote:Mutta miks taas pitäis käyttää PaintObjectia kokoajan?
Re: Tyhmät kysymykset
Onko mahdollista piirtää kuvia pelimaailmaan, eikä ruudulle kuten normaalisti?
Re: Tyhmät kysymykset
Käytä drawtoworld:iä ennen kuvien piirtämistä.vierailijaaa wrote:Onko mahdollista piirtää kuvia pelimaailmaan, eikä ruudulle kuten normaalisti?
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: Tyhmät kysymykset
Eipä auta... Kuuluisko sen muka edes vaikuttaa kuviin? Vai vain cb:n omiin piirtokomentoihin.TheFish wrote:Käytä drawtoworld:iä ennen kuvien piirtämistä.vierailijaaa wrote:Onko mahdollista piirtää kuvia pelimaailmaan, eikä ruudulle kuten normaalisti?
Re: Tyhmät kysymykset
Muista laittaa ne on/off:it oikein.vierailijaa wrote:Eipä auta... Kuuluisko sen muka edes vaikuttaa kuviin? Vai vain cb:n omiin piirtokomentoihin.
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: Tyhmät kysymykset
TheFish wrote:Muista laittaa ne on/off:it oikein.vierailijaa wrote:Eipä auta... Kuuluisko sen muka edes vaikuttaa kuviin? Vai vain cb:n omiin piirtokomentoihin.
Code: Select all
FrameLimit 40
SCREEN 800,600
kuva = LoadImage ("Media\map.bmp")
'DrawToWorld ON
Repeat
DrawImage kuva,40,20
DrawScreen
If KeyDown(cbkeyright) Then TranslateCamera 10,0 'kameraa liikuttamalla näkee, että kuva on koko ajan samassa kohdassa
Forever
Re: Tyhmät kysymykset
ps. se drawtoworld on kommenttina tahallaan, siitä ei sentään ole kiinni
Re: Tyhmät kysymykset
drawtoworldille annetaan siis 0-3 on/off parametriä. Ensimmäinen on piirtokomennoille, toinen kuville ja kolmas teksteille. Kannattaa vilkaista sitä manuaaliakin.vierailijaaa wrote:ps. se drawtoworld on kommenttina tahallaan, siitä ei sentään ole kiinni
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: Tyhmät kysymykset
Onko mitään komentoa, jolla voisi saada tarkemman objektien kosketustunnistuksen kuin tuo? Ohjelmassani on ongelmana kun tyyppini syntyy maan sisään noin -10 - 10 pikseliä. Vai pitäisikö minun jotenkin scannata mappini jokaisen pikselin korkeus? Onko kukaan keksinyt tuolle, jotain kiertotietä? Ratkaisu ei saisi olla mikään tietokonetta rasittava, koska ohjelmani fps on vain 16 (1gh:sisellä koneella).
If ObjectsOverlap(i\Obj , kartta,3) Then
If ObjectsOverlap(i\Obj , kartta,3) Then