LoadObject2() -funktio

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

LoadObject2() -funktio

Post by Misthema » Sun Jan 13, 2008 3:59 pm

CoolBasic:n omalla LoadObject()- ja LoadImage()-funktiollahan ei pysty lataamaan kuin yhden kuvan, tai yhden rivin kuvasarjan.
Nyt olen tehnyt asiaan muutoksen, eli tällä LoadObject2() -funktiolla pystyy lataamaan vaikka TÄLLAISESTA kuvasta yhden hahmon yhteen objektiin.
Määritetään vain monesko kuva halutaan (x,y) ja tietenkin halutun hahmon kuvan koko (_tilesizex, _tilesizey). Ja sitten kaikki onkin valmista. :)

Tässä itse funktio:

Code: Select all

Function LoadObject2(_polku$, _x, _y, _tilesizex, _tilesizey, _round=0, r=0, g=0, b=0)

    temp1 = LoadImage(_polku$)
    MaskImage temp1, r,g,b
    temp3 = MakeImage(_tilesizex, _tilesizey)
    xx = _tilesizex * _x
    yy = _tilesizey * _y
    
    temp2 = MakeObject(_round)
    If _tilesizex > _tilesizey Then
        ObjectRange temp2, _tilesizex
    Else
        ObjectRange temp2, _tilesizey
    EndIf

    'Piirretään napattu kuva
    DrawToImage temp3
        DrawImageBox temp1, 0,0, xx,yy, _tilesizex, _tilesizey
    DrawToScreen
    
    PaintObject temp2, -temp3
    DeleteImage temp1
    DeleteImage temp3
    
    Return temp2
EndFunction
Tässä on tällä hetkellä funktio vain objektien lataamiseen. Teen vielä kuville samanlaisen, ja mahdollistan animoimisen myös. :)
Last edited by Misthema on Sun Jan 13, 2008 10:11 pm, edited 1 time in total.

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: LoadObject2() -funktio

Post by axu » Sun Jan 13, 2008 5:28 pm

en vaivautunut testaamaan, jos oikein ymmärsin, niin saman asian ajaa LoadAnimObject, laittaa animaation pituudeksi 1
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

BulletStorm

Re: LoadObject2() -funktio

Post by BulletStorm » Sun Jan 13, 2008 5:34 pm

axu wrote:en vaivautunut testaamaan, jos oikein ymmärsin, niin saman asian ajaa LoadAnimObject, laittaa animaation pituudeksi 1
Öh... ei oikeastaan. Siis, jos sulla on kuva jossa on 6 hahmon "objektit", niin tolla voit ladata siitä yhdestä kuvasta kaikki objektit ilman, että joudut leikkaamaan ne irti ja lataamaan erikseen.

Tai no, näin mä ymmärsin.

User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: LoadObject2() -funktio

Post by Misthema » Sun Jan 13, 2008 6:08 pm

BulletStorm wrote:Öh... ei oikeastaan. Siis, jos sulla on kuva jossa on 6 hahmon "objektit", niin tolla voit ladata siitä yhdestä kuvasta kaikki objektit ilman, että joudut leikkaamaan ne irti ja lataamaan erikseen.

Tai no, näin mä ymmärsin.
Kyllä, ymmärsit ihan oikein. Enkä kyllä mitenkään keksi miten voitte olla ymmärtämättä funktion toimintaa, koska annoin jopa selkeän esimerkki kuvan josta ladataan yksi hahmo...
axu wrote:en vaivautunut testaamaan, jos oikein ymmärsin, niin saman asian ajaa LoadAnimObject, laittaa animaation pituudeksi 1
Ei todellakaan aja samaa asiaa kun LoadAnimObject-komento, koska sillä voi ladata vaan kuvasarjan, jonka kuvat menevät näin:

Code: Select all

    ___________________
1x4|____|____|____|____|
Kun taas LoadObject2:lla voit ladata yhden kuvan tällaisesta:

Code: Select all

    ___________________
4x4|____|____|____|____|
   |____|____|____|____|
   |____|____|____|____|
   |____|____|____|____|

User avatar
Murskaaja
Member
Posts: 92
Joined: Tue Aug 28, 2007 8:19 pm
Contact:

Re: LoadObject2() -funktio

Post by Murskaaja » Sun Jan 13, 2008 7:05 pm

Ihan kiva tuo funktio muuten, mutta kyllä se loadanimobject ajaa ihan saman asian. Kokeilepa vaikka seuraavaa sillä esimerkkikuvallasi:

Code: Select all

SCREEN 400,400
Dim taulukko(87)
y = 160
For i = 0 To 87
    taulukko(i) = LoadAnimObject("media\dg_classm32.png",32,32,i,1)
    x = -112+32*luku
    PositionObject taulukko(i),x,y
    luku+1
    If luku = 8 Then luku = 0 : y-32
Next i
Repeat
    DrawScreen
Forever
Itselläni tuo ainakin toimii :)
ASCII star wars Xtreme | Cool Bombers | Combat (kehitteillä)

RedShadow productions

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: LoadObject2() -funktio

Post by Koodiapina » Sun Jan 13, 2008 7:12 pm

Sehän on ihan sama, onko kuvassa yksi vai neljä riviä tilejä tuon latauksen suhteen. Ei kuvasarja sitä tarkoita, että niiden spritejen yhdelle riville pitäisi mahtua.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: LoadObject2() -funktio

Post by SPuntte » Sun Jan 13, 2008 9:59 pm

Muuten jees, mutta pyöritettävyys puuttuu. Tosin se ei ole yhtään hankalaa lisätä.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX

User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: LoadObject2() -funktio

Post by Misthema » Sun Jan 13, 2008 10:12 pm

SPuntte wrote:Muuten jees, mutta pyöritettävyys puuttuu. Tosin se ei ole yhtään hankalaa lisätä.
Pyöritettävyys lisätty. :)

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: LoadObject2() -funktio

Post by MaGetzUb » Wed Jan 16, 2008 6:29 pm

Jiihaaa, tätä olen odottanu jo pitkään. Tämähän on kätevä ukkojen animoinnissa, eikö? (En ole testannut viälä)
Esim vaikka tekisi isometrisen objektin, ja vaikka siinä olisin sotilas, jossa on joka suunnassa kävely ja ampumis animaatio, niin toimiiko tämä niin?
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: LoadObject2() -funktio

Post by Misthema » Thu Jan 17, 2008 9:50 am

Ei. Tällä hetkellä funktiossa ei ole mitään animointia, mutta eipä kai tuokaan olisi vaikea toteuttaa. :) Voin yrittää väsätä sen sellaiseksi. Jos vaikka sitten olisi edes käytännöllinen ja hyödyllinen. >;G

Post Reply