;///////////////////////////////////////////////////////// ;// ;////////////////////////////////////////////////////////// ; e3dhsp.dll test script #include "e3dhsp3.as" #module #deffunc waitbyfps int p1, var fps E3DWaitbyFPS@ p1, fps await 0 return #global dim keybuf, 256 ;file のpath 用のバッファーの作成 pathlen = 2048 sdim mediadir, pathlen mediadir = dir_cur + "\\Media" sdim pathbuf, pathlen, 2 chgdegx = 0.0 : chkdegy = 0.0 : chkdegz = 0.0 screenw = 640 : screenh = 480 screen 0, screenw, screenh, 1 pointmax = 100 title "Easy3D for HSP3 sample" ;開発中は下の行のコメントアウトを外すことを推奨します。 ;E3DEnableDbgFile ;初期化 E3DInit 0, -1, 0, 16, 0, scid1 ;カメラの初期化 eye_y = 800.0 E3DSetCameraPos camposx, camposy, camposz camposx = 0.0 : camposy = eye_y : camposz = 2800.0 camdegxz = 0.0 : camdegy = 0.0 E3DSetCameraDeg camdegxz, camdegy ;projectionの変更をしたいときは、以下の2行を有効にしてください。 proj_near = 100.0 : proj_far = 30000.0 : proj_fov = 60.0 E3DSetProjection proj_near, proj_far, proj_fov ; スプライトデータの読み込み pathbuf.0 = mediadir + "\\num0_11.bmp" E3DCreateSprite pathbuf.0, 1, spid1 E3DGetSpriteSize spid1, spw1, sph1 E3DCreateSprite pathbuf.0, 1, spid2 startu = 0.5 endu = 0.75 startv = 0.333 endv = 0.666 ;ライト lightdirx1 = 0.0 lightdiry1 = 0.0 lightdirz1 = 1.0 lightr1 = 255 lightg1 = 255 lightb1 = 255 E3DCreateLight lid1 E3DSetDirectionalLight lid1, lightdirx1, lightdiry1, lightdirz1, lightr1, lightg1, lightb1 *main ; keybuf変数は、メインループの外で、dim keybuf, 256 として、確保しておいてください。 E3DGetKeyboardState keybuf if keybuf.VK_ESCAPE = 1 : goto *bye ; [ESC]で終了 gosub *MoveSpriteUV E3DBeginScene scid1 gosub *DrawText E3DBeginSprite scx1 = screenw / 2 scy1 = screenh / 2 scalex1 = 200.0 / ( double( spw1 ) * 0.25 ) scaley1 = 200.0 / ( double( sph1 ) * 0.33 ) E3DRenderSprite spid1, scalex1, scaley1, scx1, scy1 scx2 = 0 scy2 = scy1 scalex2 = 200.0 / double( spw1 ) scaley2 = 200.0 / double( sph1 ) E3DRenderSprite spid2, scalex2, scaley2, scx2, scy2 E3DEndSprite E3DEndScene E3DPresent scid1 waitbyfps 60, chkfps1 goto *main *bye E3DBye end *MoveSpriteUV if( keybuf.'W' == 1 ){ startv -= 0.05 if( startv < 0.0 ){ startv = 0.0 } endv = startv + 0.333 } if( keybuf.'S' == 1 ){ endv += 0.05 if( endv > 1.0 ){ endv = 1.0 } startv = endv - 0.333 } if( keybuf.'A' == 1 ){ startu -= 0.05 if( startu < 0.0 ){ startu = 0.0 } endu = startu + 0.25 } if( keybuf.'D' == 1 ){ endu += 0.05 if( endu > 1.0 ){ endu = 1.0 } startu = endu - 0.25 } E3DSetSpriteUV spid1, startu, endu, startv, endv return *DrawText textr = 255 : textg = 255 : textb = 255 textscale = 1 textposx = 10 : textposy = 20 strchk = "Press W, S, A, D --> Change Sprite UV" E3DDrawText textposx, textposy, textscale, textr, textg, textb, strchk return