www.gmindo.web.id/forum
Forum ini sudah tidak dipakai lagi. Silakan ke forum baru di www.gmindo.web.id/forum Very Happy

Terima kasih

Join the forum, it's quick and easy

www.gmindo.web.id/forum
Forum ini sudah tidak dipakai lagi. Silakan ke forum baru di www.gmindo.web.id/forum Very Happy

Terima kasih
www.gmindo.web.id/forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.

[Intermediate] Drawing Surfaces

+2
Zihad Rizky Edwin Fikri
Asuna
6 posters

Go down

[Intermediate] Drawing Surfaces Empty [Intermediate] Drawing Surfaces

Post by Asuna Fri 31 Jan 2014, 00:21

Pada keadaan tertentu Anda mungkin tidak ingin menggambar secara langsung di layar melainkan di suatu "canvas" yang dapat digunakan kemudian untuk menggambarnya di layar, yang disebut surface. Layar akan selalu diredraw pada interval tertentu (screen refresh rate), sedangkan pada surface tidak demikian.

Contoh simplenya adalah pada aplikasi painting, di mana pengguna menggambar pada surface yang tidak akan hilang tiap saat yang kemudian akan didraw lagi ke layar. Dari contoh tersebut keuntungan penggunaan surface adalah efisiensi penggambaran objek secara statik/diam yang membutuhkan beban komputasi (mis. text, sprite yg banyak, tiled texture, dsb).

Berikut fungsi-fungsi untuk surface.

surface_create(w,h)
w,h = lebar dan tinggi surface yang akan dicreate
Return: nilai id surface

surface_create_ext(name, w, h) <Studio only, HTML5 module>
name = nama elemen canvas HTML5 yang ditautkan pada surface

surface_free(id)
Mendealokasi memory yang digunakan oleh surface

surface_exists(id)
Apakah surface id exist

surface_get_width(id), surface_get_height(id)
Lebar dan tinggi surface

surface_get_texture(id)
Texture yang berkorespondensi dengan surface, dapat digunakan untuk menggambar object bertexture dengan surface

surface_set_target(id)
Set target ke surface untuk didraw

surface_reset_target(id)
Set kembali target ke layar untuk didraw

surface_getpixel(id,x,y)
Warna pixel pada (x,y). Proses ini tidak begitu cepat, so use with care.

surface_save_part(id,fname,x,y,w,h)
Save bagian (x,y,w,h) dari surface dalam file png

surface_copy(destination,x,y,source)
Copy surface ke surface tujuan pada (x,y), no alpha blending

surface_copy_part(destination,x,y,source,xs,ys,ws,hs)
Copy bagian surface ke surface tujuan pada (x,y), no alpha blending

Berikut fungsi-fungsi untuk menggambar surface.

draw_surface(id,x,y)
draw_surface_stretched(id,x,y,w,h)
draw_surface_tiled(id,x,y)
draw_surface_part(id,left,top,width,height,x,y)
draw_surface_ext(id,x,y,xscale,yscale,rot,color,alpha)
draw_surface_stretched_ext(id,x,y,w,h,color,alpha)
draw_surface_tiled_ext(id,x,y,xscale,yscale,color,alpha)
draw_surface_part_ext(id,left,top,width,height,x,y,xscale,yscale,color,alpha)
draw_surface_general(id,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha)

Keterangannya dapat dilihat di helpfile.

Notes:
- Gunakan draw_clear_alpha(0,0) untuk clear surface, draw_clear(0) hanya membuat surface menjadi hitam solid
- Surface tidak bekerja secara baik dalam 3D mode
- Selalu cek keberadaan surface dengan surface_exists if necessary, surface dapat sewaktu-waktu rusak/hilang karena disimpan dalam texture memory dan/atau dengan faktor-faktor tertentu (selengkapnya baca di helpfile)

Contoh:
Pada contoh berikut proses drawing akan mempengaruhi performance (menyebabkan lag) jika didraw langsung ke layar (works well in GM legacy).

Create event
Code:
surf = surface_create(600,400)
surface_set_target(surf)
for(i=0;i<80;i+=1){
    for(j=0;j<120;j+=1){
        draw_text(j*5,i*5,8)
    }
}
surface_reset_target()

Draw event
Code:
draw_surface(surf,10,10)

Sekian, contoh tersebut hanya menggunakan fungsi2 surface yg esensial, fungsi2 yg lain silakan dicoba sendiri Very Happy
Asuna
Asuna
Global Moderator
Global Moderator

100%
Jumlah posting : 1711
Points : 1901
Join date : 10.01.13

Kembali Ke Atas Go down

[Intermediate] Drawing Surfaces Empty Re: [Intermediate] Drawing Surfaces

Post by Zihad Rizky Edwin Fikri Fri 31 Jan 2014, 01:28

Cool bro c:
thanks
Zihad Rizky Edwin Fikri
Zihad Rizky Edwin Fikri
GM Beginner
GM Beginner

55%
Jumlah posting : 409
Points : 431
Join date : 12.05.13
Age : 26
Lokasi : jaktim

Kembali Ke Atas Go down

[Intermediate] Drawing Surfaces Empty Re: [Intermediate] Drawing Surfaces

Post by zebrakelabu Fri 31 Jan 2014, 09:36

nice asuna

ada yang pernah coba draw surface di DrawGUI? mestinya sih bisa (mestinya lho)

zebrakelabu
zebrakelabu
Admin
Admin

100%
Jumlah posting : 933
Points : 960
Join date : 06.01.13
Lokasi : Jakarta

http://www.project25games.com

Kembali Ke Atas Go down

[Intermediate] Drawing Surfaces Empty Re: [Intermediate] Drawing Surfaces

Post by meliaz99 Fri 31 Jan 2014, 09:58

Makasih udah ditulis! xD
...
Aku mau makai surface di gameku untuk manipulasi proyeksi 3D. Sayangnya sekarang di GM:S screen_redraw() dan screen_resfresh() udah obsolete. Sad Jadi susah.
meliaz99
meliaz99
GM Beginner
GM Beginner

100%
Jumlah posting : 318
Points : 386
Join date : 11.05.13
Age : 24
Lokasi : Batam, Kepri, Indonesia

http://roychanmeliaz.wordpress.com

Kembali Ke Atas Go down

[Intermediate] Drawing Surfaces Empty Re: [Intermediate] Drawing Surfaces

Post by zebrakelabu Fri 31 Jan 2014, 10:39

meliaz99 wrote:Makasih udah ditulis! xD
...
Aku mau makai surface di gameku untuk manipulasi proyeksi 3D. Sayangnya sekarang di GM:S screen_redraw() dan screen_resfresh() udah obsolete. :(Jadi susah.

jadi setelah diprojeksi terus di proses, gitu kan? mungkin mau di blur ato gimana

emang kalau ga pake screen_redraw kenapa? pakai draw_surface aja langsung  Question 

dan kalau post processing gitu juga mestinya (mestinya lho) pakai drawGUI gpp, karena kan screen ga berubah2



zebrakelabu
zebrakelabu
Admin
Admin

100%
Jumlah posting : 933
Points : 960
Join date : 06.01.13
Lokasi : Jakarta

http://www.project25games.com

Kembali Ke Atas Go down

[Intermediate] Drawing Surfaces Empty Re: [Intermediate] Drawing Surfaces

Post by boygud Sat 01 Feb 2014, 14:45

thanks mastah

boygud
Newbie
Newbie

100%
Jumlah posting : 11
Points : 9
Join date : 01.02.14

Kembali Ke Atas Go down

[Intermediate] Drawing Surfaces Empty Re: [Intermediate] Drawing Surfaces

Post by Kevin Blaze Coolerz Mon 03 Feb 2014, 12:12

wiih, ak jarang banget pke surface Very Happy nih tutor bakal brmanfaat bnget buat ak Very Happy
thx for share Smile
Kevin Blaze Coolerz
Kevin Blaze Coolerz
Admin
Admin

100%
Jumlah posting : 3323
Points : 3795
Join date : 06.01.13
Age : 28
Lokasi : Palembang

http://kevin-blaze-coolerz.blogspot.com/

Kembali Ke Atas Go down

[Intermediate] Drawing Surfaces Empty Re: [Intermediate] Drawing Surfaces

Post by Sponsored content


Sponsored content


Kembali Ke Atas Go down

Kembali Ke Atas

- Similar topics

 
Permissions in this forum:
Anda tidak dapat menjawab topik