; hsp3dish + celput で拡大縮小描画を試す ; ; Windows10 x64 22H2 + HSP 3.7beta7 ; 次の行をコメントアウトすれば hsp3dish を使わずに描画 #define HSP3DISH_ENABLE #ifdef HSP3DISH_ENABLE #include "hsp3dish.as" #endif #packopt name "celput_zoom" #packopt type 0 #packopt xsize 1024 #packopt ysize 768 #define TEX_FILE "texa.png" #pack TEX_FILE #define KB_ESC $000080 ; init window ID 0 screen 0, 1024, 768, 0 title "cellput zoom test - hsp3dish" wdw_w = ginfo_winx wdw_h = ginfo_winy ; load image imgid = 3 celload TEX_FILE, imgid ; 512x512 で画像を分割。基準点は(256, 512) celdiv imgid, 512, 512, 256, 512 ; 描画先を指定。ウインドウID=0 を指定 gsel 0, 1 #ifdef HSP3DISH_ENABLE ; redraw 0 を呼んだ時の画面クリア設定 ; 0 or 1, 色指定($000000 - $ffffff) setcls CLSMODE_SOLID, $4080c0 #endif scale = 0.1 idx = 0 *mainloop ; ESC key to exit stick key, 0 if key & KB_ESC : goto *jobend redraw 0 ; draw start gmode gmode_rgb0 ; αチャンネル有効、半透明無効でコピーを指定 #ifndef HSP3DISH_ENABLE ; clear screen color 64, 128, 192 boxf #endif x = int(double(wdw_w) * 0.25) y = int(double(wdw_h) * 0.90) ; draw image by crlput pos x, y celput imgid, idx, scale, scale, 0.0 ; draw text color 255, 255, 255 pos 10, 10 mes "scale = " + scale redraw 1 ; draw end. screen refersh scale += 0.01 if scale >= 8.0 { scale = 0.1 idx = (idx + 1) \ 4 } await (1000 / 60) goto *mainloop *jobend: end