; hgimg3 image draw (hgrotate) sample. #include "hgimg3.as" #include "d3m.hsp" #packopt name "03_image_draw" ; file name #packopt type 0 ; generate ".exe" #define TEXFILE "chara.png" #define FONTFILE "font.png" #pack TEXFILE #pack FONTFILE #define KB_ESC $00080 #define KB_LEFT $00001 #define KB_UP $00002 #define KB_RIGHT $00004 #define KB_DOWN $00008 #define KB_CURSOR (KB_LEFT | KB_UP | KB_RIGHT | KB_DOWN) screen 0, 512, 288, 0 ; initialize screen wdw_w = ginfo_winx ; get window size wdw_h = ginfo_winy hgini ; initialize hgimg3 ; load texture ; * texload : alpha channel not support ; * texload2 : alpha channel support texload2 TEXFILE texid = stat ; get texture ID texw = 16 texh = 16 ; init bimap font, load font texture setfont 20, 20, 18, 1 ; 20x20 font texload FONTFILE clscolor $4080c0 ; set clear color x = wdw_w / 2 y = wdw_h / 2 count = 0 time_start = d3timer() *mainloop ; get FPS tm = d3timer() - time_start fps = d3getfps() stick k, KB_CURSOR ; check keyboard if k & KB_ESC : goto *job_end ; ESC key to exit ; cursor key to move spd = 4 if k & KB_LEFT : x -= spd if k & KB_RIGHT : x += spd if k & KB_UP : y -= spd if k & KB_DOWN : y += spd ; ---------------------------------------- ; draw start hgdraw ; draw image gmode gmode_rgb0, texw, texh ; set src size pos x, y ; set position idx = (count / 15) & 1 src_x = texw * idx src_y = 0 scale = 4.0 rot = 0.0 dst_w = int(double(texw) * scale) dst_h = int(double(texh) * scale) hgrotate texid, src_x, src_y, rot, dst_w, dst_h ; draw texture ; draw text gmode gmode_rgb0 tx = (wdw_w / 2) - 20 * 9 ty = 12 fprt strf("[%dx%d] %d/60FPS", wdw_w, wdw_h, fps), tx, ty hgsync 15 ; draw end and wait count++ goto *mainloop *job_end hgbye ; release HGIMG3 plugin end