📄 our_main.c
字号:
}
if(3==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=KEY_STEP;
yin+=KEY_STEP_NUM;
}
xin-=KEY_STEP_NUM;
}
else if(OUR_MMI_SUB==mmi_state.top_state)
{
mmi_state.top_state=OUR_MMI_OPT;
//--------------------------------
for(i=1;i<6;i++)
{
x2[i]=0;
}
x2[0]=170;
mmi_state.opt_select=0;
//--------------------------------
z=0;
x=0;
//y=0;
y+=(0x1<<20);
y=y&(0x1ffff);
//if(y==0){}
if(1==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=KEY_STEP;
yin+=KEY_STEP_NUM;
}
else if(2==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=2*KEY_STEP;
yin-=KEY_STEP_NUM;
}
else if(3==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=KEY_STEP;
yin-=KEY_STEP_NUM;
}
xin-=KEY_STEP_NUM;
}
}
else if(key==98)//out
{
if(OUR_MMI_OPT==mmi_state.top_state)
{
mmi_state.top_state=OUR_MMI_SUB;
z=0;
x=128<<8;
y=0;
if(1==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=KEY_STEP;
yin-=KEY_STEP_NUM;
}
if(2==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=2*KEY_STEP;
yin-=KEY_STEP_NUM;
}
if(3==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=KEY_STEP;
yin+=KEY_STEP_NUM;
}
xin+=KEY_STEP_NUM;
}
else if(OUR_MMI_SUB==mmi_state.top_state)
{
mmi_state.top_state=OUR_MMI_TOP;
z=0;
x=0;
//y=0;
y+=(0x1<<20);
y=y&(0x1ffff);
//if(y==0){}
if(1==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=KEY_STEP;
yin+=KEY_STEP_NUM;
}
else if(2==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=2*KEY_STEP;
yin-=KEY_STEP_NUM;
}
else if(3==(mmi_state.sub_state_line>>1))
{
KEY_STEP_y=KEY_STEP;
yin-=KEY_STEP_NUM;
}
xin+=KEY_STEP_NUM;
}
}
//==============================================
else if(key==39)//right
{
if(OUR_MMI_SUB==mmi_state.top_state)
{
//OUR_draw_bmp_SB(&global.obj, video_buffer, LCD_W);
mmi_state.sub_state_line+=1;
if(mmi_state.sub_state_line>=8)
{
mmi_state.sub_state_line=0;
}
if(!(mmi_state.sub_state_line &1))
{
KEY_STEP_y=KEY_STEP;
mmi_state.sub_state_line+=1;
if(yin<0)
{
y+=128<<8;
}
else
{
y=(((mmi_state.sub_state_line>>1))*128-128)<<8;
yin=-KEY_STEP_NUM;
}
}
//return 1;
}
}
else if(key==37)//left
{
if(OUR_MMI_SUB==mmi_state.top_state)
{
mmi_state.sub_state_line-=1;
if(mmi_state.sub_state_line<0)
{
mmi_state.sub_state_line=7;
}
if((mmi_state.sub_state_line &1))
{
mmi_state.sub_state_line-=1;
KEY_STEP_y=KEY_STEP;
if(yin>0)
{
y-=128<<8;
}
else
{
y=(((mmi_state.sub_state_line>>1))*128+128)<<8;
yin=KEY_STEP_NUM;
}
}
}
}
else if(key==38)//up
{
if(OUR_MMI_SUB==mmi_state.top_state)
{
mmi_state.sub_state_raw-=1;
if(mmi_state.sub_state_raw<0)
{
mmi_state.sub_state_raw=2;
}
}
else if(OUR_MMI_OPT==mmi_state.top_state)
{
// return OUR_THIRD_mmi(video_buffer,38,0);
}
}
else if(key==40)//down
{
if(OUR_MMI_SUB==mmi_state.top_state)
{
mmi_state.sub_state_raw+=1;
if(mmi_state.sub_state_raw>2)
{
mmi_state.sub_state_raw=0;
}
}
else if(OUR_MMI_OPT==mmi_state.top_state)
{
// return OUR_THIRD_mmi(video_buffer,40,0);
}
}
//------------------------
//just change the xyz
if(xin>0)//90
{
xin--; x-=KEY_STEP;
}
else if(xin<0)//90
{
xin++; x+=KEY_STEP;
}
else
{
x+=0x3fff; x&=~0x7fff;
}
if(yin>0)//90
{
yin--; y-=KEY_STEP_y;
}
else if(yin<0)//90
{
yin++; y+=KEY_STEP_y;
}
else
{
y+=0x3fff;y&=~0x7fff;
}
if(zin>0)//90
{
zin--; z-=KEY_STEP;
}
else if(zin<0)//90
{
zin++; z+=KEY_STEP;
}
else
{
z+=0x3fff; z&=~0x7fff;
}
//=================================================================================================
if((!(xin|yin|zin)))// || (yin==KEY_STEP_NUM)|| (yin==-KEY_STEP_NUM))
{
#if 1
if(OUR_MMI_TOP==mmi_state.top_state)
{/**/
OUR_Draw_bmp16_SBLT( 0,0,LCD_W,LCD_H,
1,1,255,399,
video_buffer, LCD_W,
BMP_IFO[21]);
/*
a[0]=x; a[1]=y; a[2]=mmi_state.sub_state_line;
OUR_sprintf(work_string,"%x %x %x", a);
OUR_Draw_Text16(00,5,OUR_RGB16(255,255,255),work_string,video_buffer, LCD_W*2);*/
return yin;
}
else if(OUR_MMI_OPT==mmi_state.top_state)
{
if( mmi_state.opt_state==0)
{
mmi_state.opt_state=1;
return OUR_THIRD_mmi(video_buffer,97,0);
}
return OUR_THIRD_mmi(video_buffer,key,0);
}
else if(OUR_MMI_SUB==mmi_state.top_state)
{
mmi_state.opt_state=0;
OUR_draw_bmp_SB(&global.obj, video_buffer, LCD_W);
/*
a[0]=FPS; a[1]=y;a[2]=mmi_state.sub_state_line;
OUR_sprintf(work_string,"%x %x %x", a);
OUR_Draw_Text16(00,5,OUR_RGB16(255,255,255),work_string,video_buffer, LCD_W*2);*/
return yin;/**/
}
#endif
}
OUR_3Dengin_SET_LCD_B(LCD_W,LCD_H);
if(x)//pull the cam farer
{
global.cam_work.pos.MM.z=-8000-(790*OUR_Fast_Sin((x>>8)&0xff)>>15)-(10000*OUR_Fast_Sin((x>>7)&0xff)>>15);
scal=SCAN+(SCAN*160/240 *OUR_Fast_Sin((x>>8)&0xff)>>15);
OUR_OBJ_SET_SCALE_Y(&global.obj,scal);
OUR_BOX_OUT_clear16(80,140,
OPT_BACK_CLR,
video_buffer, LCD_W
);
}
else
{
OUR_OBJ_SET_SCALE_Y(&global.obj,SCAN-(1<<7));
global.cam_work.pos.MM.z=-8000-(2000*OUR_Fast_Sin((y>>7)&0xff)>>15);
OUR_BOX_OUT_clear16(25,80,
OPT_BACK_CLR,
video_buffer, LCD_W
); /**/
}
global.cam_work.pos.MM.x=0;
global.cam_work.pos.MM.y=0;
//OUR_Build_CAM_Rotation_MATRIX3X3(&global.cam_work);//1550t
//--------------------------------------------------------------------
//global.cam_work2.pos.MM.x=0;
//global.cam_work2.pos.MM.y=0;
//global.cam_work2.pos.MM.z=-10000;
//OUR_Build_CAM_Rotation_MATRIX3X3(&global.cam_work2);//1550t
//=================================================================================================
//========obj 1 ========================================================================
// if((xin|yin|zin))
{
OUR_XYZ_Rotation_OBJ(x>>8, y>>8, z>>8,&global.obj,OBJ_R_XYZ);
OUR_BACHFACE_OBJ_LIT32(&global.obj,&global.cam_work,lit_list);
OUR_POINT_CHANGE_OBJ(&global.obj,&global.cam_work);
OUR_Draw_OBJ( &global.obj, video_buffer, LCD_W,CLOR_MOD);
}
//=================================================================================================
//========== ===================================================================================
#if 1
if(2==mmi_state.sub_state_raw)
{
static UINT xxx=0;
static UINT t=0;
xxx++;
if(xxx>200) xxx=0;
t++;
OUR_Draw_bmp16_SBLT_T(xxx,xxx,LCD_W/2,LCD_W/2,
1,1,62,62,
(t/4)&0x1f,
video_buffer, LCD_W,
BMP_IFO[5]);
}
//=================================================================================================
//=================================================================================================
a[0]=FPS;a[1]=y;a[2]=mmi_state.sub_state_line;
OUR_sprintf(work_string,"%x %x %x", a);
//OUR_Draw_BigText32(00,580,OUR_RGB32(255,255,0),work_string,video_buffer, LCD_W*2);
OUR_Draw_Text16(00,15,OUR_RGB16(255,255,255),work_string,video_buffer, LCD_W*2);
OUR_sprintf(work_string,"OUR_3D_ENGINE", a);
//OUR_Draw_BigText32(00,580,OUR_RGB32(0,255,255,0),work_string,video_buffer, LCD_W*2);
OUR_Draw_Text16(00,LCD_H-10,OUR_RGB16(255,255,255),work_string,video_buffer, LCD_W*2);
//================================================================
//================================================================
#endif
}
return xin|yin|zin;
} // end Game_Main
const int bmp_inde[4][6]={
{0,1,4,5,8,9},
{1,2,5,6,9,10},
{2,3,6,7,10,11},
{3,0,7,4,11,8},
};
void OUR_draw_bmp_SB( OUR_3D_OBJ_PTR obj,UCHAR *video_buffer, int lpitch)
{
UINT i1=0,i2=0,i3=0;
for (i2=0; i2 <3; i2++)
{
for (i1=0; i1 <2; i1++)
{
OUR_Draw_bmp16_SBLT( i1*LCD_W/2,20*LCD_H/400+i2*120*LCD_H/400,LCD_W/2,120*LCD_H/400,
1,1,62,62,
video_buffer, LCD_W,
BMP_IFO[bmp_inde[mmi_state.sub_state_line>>1][i2*2+i1]+4]);
}
}
// for (i1=0; i1 <2; i1++)
{
OUR_Draw_bmp16_SBLT(0,0,LCD_W,20*LCD_H/400,
1,1,31,15,
video_buffer, LCD_W,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -