//------------------------------------------------ //東方弾幕風 v0.12m移植関数(ごく一部) //------------------------------------------------ //引用、加工はご自由にどうぞ。ただし、自作発言だけは避けてください。 //たぶんないだろうけど何かありましたらtwitterまで。 //https://twitter.com/R390GT1Race /* ObjSprite2D_SetSourceRect(obj,type,x1,y1,x2,y2);//引数;6 SetGraphicRectのオブジェクト版。使い方はIDを指定するとこ以外は一緒。 obj = オブジェクトID type = ( 0 = PRIMITIVE_TRIANGLEFAN , 1 = PRIMITIVE_TRIANGLESTRIP ) x1 = SetGraphicRectとほぼ同じ y1 = SetGraphicRectとほぼ(ry x2 = SetGraphicRect(ry y2 = SetGraph(ry ObjEffect_CreateVertexの値は強制的に4になる(5以上はやり方がわからないためorz) ObjRender_SetColor(obj,r,g,b);//引数;4 obj = オブジェクトID r = 赤の値(0〜255) g = 緑の値(0〜255) b = 青の値(0〜255) Alpha値はr,g,bを足して3で割った数値が出る。 CreateShotA1(x,y,sp,ang,grp,del,bomb);//引数;7 x = X座標 y = Y座標 sp = 速度 ang = 角度 grp = 画像 del = 遅延時間 bomb = ボム耐性の有無(true←あり,false←なし) CreateShotA2(x,y,sp,acc,maxsp,ang,grp,del,bomb);//引数;9 x = X座標 y = Y座標 sp = 速度 acc = 加速度 maxsp = 最高速 ang = 角度 grp = 画像 del = 遅延時間 bomb = ボム耐性の有無(true←あり,false←なし) CreateShotB1(x,y,Xsp,Ysp,grp,del,bomb);//引数;7 x = X座標 y = Y座標 Xsp = X方向の速度 Ysp = Y方向の速度 grp = 画像 del = 遅延時間 bomb = ボム耐性の有無(true←あり,false←なし) CreateShotB1(x,y,Xsp,Ysp,Xacc,Yacc,Xmax,Ymax,grp,del,bomb);//引数;7 x = X座標 y = Y座標 Xsp = X方向の速度 Ysp = Y方向の速度 Xacc = X方向の加速度 Yacc = Y方向の加速度 Xmax = X方向の最高速 Ymax = Y方向の最高速 grp = 画像 del = 遅延時間 bomb = ボム耐性の有無(true←あり,false←なし) */ task CreateShotA1(x,y,sp,ang,grp,del,bomb){ let obj=CreateShot01(x,y,sp,ang,grp,del); ObjShot_SetBombResist(obj,bomb); } task CreateShotA2(x,y,sp,ang,acc,maxsp,grp,del,bomb){ let obj=CreateShot02(x,y,sp,ang,acc,maxsp,grp,del); ObjShot_SetBombResist(obj,bomb); } task CreateShotB1(x,y,Xsp,Ysp,grp,del,bomb){ let obj=CreateShot11(x,y,Xsp,Ysp,grp,del); ObjShot_SetBombResist(obj,bomb); } task CreateShotB2(x,y,Xsp,Ysp,Xacc,Yacc,Xmax,Ymax,grp,del,bomb){ let obj=CreateShot12(x,y,Xsp,Ysp,Xacc,Yacc,Xmax,Ymax,grp,del); ObjShot_SetBombResist(obj,bomb); } function ObjPrim_Create(OBJ_STATE){//意味はない return Obj_Create(OBJ_STATE); } function ObjMove_GetX{//敵のX座標を取得する return GetX; } function ObjMove_GetY{//敵のY座標を取得する return GetY; } function ObjRender_GetX(obj){ return Obj_GetX(obj); } function ObjRender_GetY(obj){ return Obj_GetY(obj); } function ObjRender_SetPosition(obj,X,Y){ return Obj_SetPosition(obj,X,Y); } function ObjRender_SetAngleXYZ(obj,X,Y,Z){ return ObjEffect_SetAngle(obj,X,Y,Z); } function ObjRender_SetScaleXYZ(obj,X,Y,Z){//Z角度はない return ObjEffect_SetScale(obj,X,Y); } task ObjSprite2D_SetSourceRect(obj,type,x1,y1,x2,y2){//2つにのみ対応 let x3=x2-x1; let y3=y2-y1; ObjEffect_CreateVertex(obj,4); if(type==0){ ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN); ObjEffect_SetVertexXY(obj,0,-x3/2,-y3/2); ObjEffect_SetVertexXY(obj,1, x3/2,-y3/2); ObjEffect_SetVertexXY(obj,2, x3/2, y3/2); ObjEffect_SetVertexXY(obj,3,-x3/2, y3/2); ObjEffect_SetVertexUV(obj,0,x1,y1); ObjEffect_SetVertexUV(obj,1,x2,y1); ObjEffect_SetVertexUV(obj,2,x2,y2); ObjEffect_SetVertexUV(obj,3,x1,y2); } else{ ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLESTRIP); ObjEffect_SetVertexXY(obj,0,-x3/2,-y3/2); ObjEffect_SetVertexXY(obj,1,-x3/2, y3/2); ObjEffect_SetVertexXY(obj,2, x3/2,-y3/2); ObjEffect_SetVertexXY(obj,3, x3/2, y3/2); ObjEffect_SetVertexUV(obj,0,x1,y1); ObjEffect_SetVertexUV(obj,1,x1,y2); ObjEffect_SetVertexUV(obj,2,x2,y1); ObjEffect_SetVertexUV(obj,3,x2,y2); } } task ObjRender_SetColor(obj,r,g,b){ let alpha=(r+g+b)/3; ObjEffect_SetVertexColor(obj,0,alpha,r,g,b); ObjEffect_SetVertexColor(obj,1,alpha,r,g,b); ObjEffect_SetVertexColor(obj,2,alpha,r,g,b); ObjEffect_SetVertexColor(obj,3,alpha,r,g,b); }