如果閃退,請更換字型路徑。
效果圖:
//視窗類
class window
}//析構函式
~window()
//填充視窗:白色
void fullwindow()
//重新整理視窗
void reflush()
};//文字類
class font
//析構函式
~font()
//把文字載入成texture
sdl_texture*loadtex(char*str, int type=4)
//文字顏色:黑色
sdl_color color=;
sdl_su***ce*su***ce=ttf_renderutf8_blended(font, str, color);
sdl_texture*texture=sdl_createtexturefromsu***ce(renderer, su***ce);
sdl_freesu***ce(su***ce);
return texture;
}};//紋理類
class tex
; for (int i=0; i<5; i++)
box[0].x=50;
box[0].y=800;
box[1].x=150;
box[1].y=800;
box[2].x=500;
box[2].y=800;
box[3].x=200;
box[3].y=1000;
box[4].x=400;
box[4].y=1000;
}//析構函式
~tex()
}//顯示tex
void showtex(int n)
//計時函式
void showtime(int x=100,int y=200)//type要瞬間賦值(type:0設為0,1重新計時,2暫停,3繼續當前計時(單擊),3繼續自執行以來的時間)
break;
case 3:break;
}switch (type)
char str[50];
sprintf(str,"計時器:%d",time);
sdl_texture*texture=font.loadtex(str,4);
int w,h;
//獲取紋理大小
sdl_querytexture(texture, null, null, &w, &h);
sdl_rect box=;
sdl_rendercopy(renderer,texture,null,&box);
sdl_destroytexture(texture);
}};//按鈕類
class button
} void touch()
;for (int i=0; i<5; i++)
//判斷觸點是否在box矩形中中
if (sdl_pointinrect(&point, &box[i]))
m=i;
}break;
//手指抬起
case sdl_fingerup:;
for (int i=0; i<5; i++)
//判斷觸點是否在box矩形中
if (sdl_pointinrect(&point, &box[i]))
n=i;
m=-1;
}break;}}
} void show()
if (m!=-1)
//顯示文字
for (int i=0; i<5; i++)
tex.showtex(i);
} };
//主函式
int main(int argc, char**argv)
else
if (button.n==4)
win.load=false;
win.reflush();
win.fullwindow();}}
第九課 SDL計時器
這一課主要講sdl的乙個ticket的應用,基本的例子就是計時器的應用,沒有什麼很複雜的東西,在上一課基礎上就是加入了sdl getticks的應用而已。這個是乙個計時器的乙個類 timer.h ifndef timer h define timer h 計時器 class timer endif ...
python計時器 python 計時器
import sysclassshowtime qwidget def init self super init self.istimestart false 標記時間是否開始計時 self.setwindowtitle qlable 顯示計時時間 self.lable time val qlabe...
python計時器單位 python計時器類
import time as t class mytimer def init self self.unit 年 月 日 時 分 秒 self.prompt 未開始計時 self.lasted self.start 0 self.stop 0 def str self return self.pro...