Muotojen piirtäminen

Myös erilaisten muotojen piirtämiseen on olemassa kokonainen kokoelma funktioita. Myös tekstin piirtämiseen (ks. seuraava osio) on olemassa funktioita. Voit käyttää näitä vain objektin piirtotapahtumassa (Draw); näissä funktioissa ei yleisesti ottaen ole mitään järkeä muualla koodissa. Muista, että instanssien väliset yhteentörmäykset määräytyvät niiden kuvien (tai maskien) mukaan, eivätkä sen, mitä itse asiassa ruudulle piirrät. Seuraavia piirtofunktioita voidaan käyttää peruskuvioiden piirtämiseen.

draw_clear(col) Tyhjentää koko huoneen annetun väriseksi (ei alphasulautusta).
draw_clear_alpha(col,alpha) Tyhjentää koko huoneen annetun väriseksi annetulla alpha-arvolla (erityisen hyödyllinen piirtopinnoissa).
draw_point(x,y) Piirtää pisteen kohtaan (x,y) ennestään määritellyllä värillä.
draw_line(x1,y1,x2,y2) Piirtää viivan pisteiden (x1,y1) ja (x2,y2) välille.
draw_line_width(x1,y1,x2,y2,w) Piirtää w pikseliä leveän viivan pisteiden (x1,y1) ja (x2,y2) välille.
draw_rectangle(x1,y1,x2,y2,outline) Piirtää suorakulmion. outline määrittää, tuleeko piirtää vain ääriviiva (true), vai tulisiko suorakulmionn olla täytetty (false).
draw_roundrect(x1,y1,x2,y2,outline) Piirtää pyöristetyn suorakulmion. outline määrittää, tuleeko piirtää vain ääriviiva (true), vai tulisiko suorakulmion olla täytetty (false).
draw_triangle(x1,y1,x2,y2,x3,y3,outline) Piirtää kolmion. outline määrittää, tuleeko piirtää vain ääriviiva (true), vai tulisiko kolmion olla täytetty (false).
draw_circle(x,y,r,outline) Piirtää r-säteisen ympyrän pisteeseen (x,y). outline määrittää, tuleeko piirtää vain ääriviiva (true), vai tulisiko ympyrän olla täytetty (false).
draw_ellipse(x1,y1,x2,y2,outline) Piirtää ellipsin. outline määrittää, tuleeko piirtää vain ääriviiva (true), vai tulisiko ellipsin olla täytetty (false).
draw_set_circle_precision(precision) Asettaa tarkkuuden, jolla ympyrät piirretään, tarkoittaen lohkojen lukumäärää, josta ne muodostuvat. Tarkkuuden pitää olla välillä 4 - 64 ja sen täytyy olla neljällä jaollinen. Tätä käytetään myös ellipsien ja pyöristettyjen suorakulmioiden piirtämiseen.
draw_arrow(x1,y1,x2,y2,size) Piirtää nuolen pisteestä (x1,y1) pisteeseen (x2,y2). size määrittää nuolen koon kuvapisteinä.
draw_button(x1,y1,x2,y2,up) Piirtää painikkeen, up määrittää, onko se ylhäällä (1) vai pohjassa (0).
draw_path(path,x,y,absolute) Tällä funktiolla voit piirtää määrätyn polun huoneeseen sen alkupisten ollessa pisteessä (x,y). Jos absolute on tosi, polku piirretään sijaintiin, johon se on määritetty ja x ja y jätetään huomiotta.
draw_healthbar(x1,y1,x2,y2,amount,backcol,mincol,maxcol,direction,showback,showborder) Tällä funktiolla voit piirtää terveyspalkin (tai minkä tahansa muun palkin, joka osoitta jotain arvoa, kuten esim. vahinko). Argumentit x1, y1, x2 ja y2 määrittävät palkin kokonaisalueen. amount määrittää prosenttiosuuden palkista, joka täytetään (on oltava välillä 0 - 100). backcol on palkin taustan väri. mincol ja maxcol määrittävät värin, kun amount on vastaavasti 0 ja 100. Jos amount on näiden kahden välissä, väri interpoloidaan. Voit siis helposti tehdä palkin, joka muuttuu esimerkiksi hiljalleen vihreästä punaiseksi. direction on suunta, johon palkki piirretään. 0 määrittää palkin vasemmalle, 1 oikealle, 2 ylös ja 3 alas. showback määrittää, näytetäänkö taustalaatikko ja showborder määrittää, onko laatikolla ja palkilla musta reunaviiva.

Useimmat ylläolevista funktioista käyttävät väri- ja alpha-asetuksia, jotka voidaan muuttaa seuraavilla funktioilla.

draw_set_color(col) Asettaa piirtovärin, jota käytetään tästä eteenpäin kuvioiden piirtämiseen.
draw_set_alpha(alpha) Asettaa alphaläpinäkyvyysarvon, jota käytetään tästä eteenpäin kuvioiden piirtämiseen. Tulee olla välillä 0 - 1. 0 on täysin läpinäkyvä, 1 kokonaan läpinäkymätön.
draw_get_color() Palauttaa piirtovärin, jota käytetään kuvioiden piirtämiseen.
draw_get_alpha() Palauttaa alpha-arvon, jota käytetään kuvioiden piirtämiseen..

Käytettävissä on koko joukko ennalta määritettyjä värejä:

c_aqua (vaaleansininen)
c_black (musta)
c_blue (sininen)
c_dkgray (tummanharmaa)
c_fuchsia (fuksia)
c_gray (harmaa)
c_green (vihreä)
c_lime (vaaleanvihreä)
c_ltgray (vaaleanharmaa)
c_maroon (viininpunainen)
c_navy (laivastonsininen)
c_olive (oliivinvihreä)
c_orange (oranssi)
c_purple (purppura)
c_red (punainen)
c_silver (hopea)
c_teal (sinivihreä)
c_white (valkoinen)
c_yellow (keltainen)

Seuraavat funktiot voivat auttaa sinua haluamiesi värien luomisessa.

make_color_rgb(red,green,blue) Palauttaa värin, jossa on annettu määrä punaista (red), vihreää (green) ja sinistä (blue). Arvojen on oltava väliltä 0-255.
make_color_hsv(hue,saturation,value) Palauttaa värin, jossa on annettu sävy (hue), kylläisyys (saturation) ja arvo (jokainen välillä 0-255).
color_get_red(col) Palauttaa värin col punaisen osan.
color_get_green(col) Palauttaa värin vihreän osan.
color_get_blue(col) Palauttaa värin sinisen osan.
color_get_hue(col) Palauttaa värin sävyosan.
color_get_saturation(col) Palauttaa värin kylläisyysosan.
color_get_value(col) Palauttaa värin arvo-osan.
merge_color(col1,col2,amount) Palauttaa värien col1 ja col2 yhdistetyn värin. Yhdistyminen määräytyy argumentin amount mukaan. Arvo 0 vastaa väriä col1, arvo 1 väriä col2 ja arvot niiden välillä yhdistettyä väriä.

Seuraavat sekalaiset funktiot ovat olemassa.

draw_getpixel(x,y) Palauttaa huoneen pistettä (x,y) vastaavan kuvapisteen värin. Tämä ei ole kovin nopeaa, joten käytä sitä varoen.
screen_save(fname) Tallentaa bittikarttakuvan (.bmp) ruudusta annettuun tiedostoon fname. Kätevä kuvakaappausten ottamiseen.
screen_save_part(fname,x,y,w,h) Tallentaa osan ruudusta annettuun tiedostoon.