xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

這個(gè)是本人純代碼編寫,沒(méi)有使用任何引擎。文件內(nèi)附有開發(fā)過(guò)程的一些說(shuō)明,這個(gè)程序只是飛機(jī)大戰(zhàn)的一個(gè)小Demo,只有一些基礎(chǔ)功能。飛機(jī)移動(dòng),隨機(jī)敵人,幀率顯示,擊中飛機(jī)爆炸特效等。使用的是gtk3.0,gtk3.0與gtk2.0API上有些地方不一樣,so當(dāng)初寫這個(gè)的時(shí)候踩了一些坑,圖形界面多線程開發(fā)方面有問(wèn)題的同學(xué)可以參考,希望會(huì)有所幫助。test文件是編譯成功的文件,修改權(quán)限后可以直接在Linux下跑。其實(shí)當(dāng)初寫這個(gè)Demo僅僅是為了應(yīng)付下Linux作業(yè),為了顯得比較厲害,就啃了一下gtk這個(gè)骨頭。本人對(duì)于gtk也僅僅會(huì)一些皮毛。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?“HeroPlane.h“
#include?“EnemyPlane.h“
#include?“Bullet.h“
#include?“time.h“
#include?“Boom.h“
#include?
#include?
#include?
#include?


#define?WD_WIDTH?400
#define?WD_HEIGHT?645
#define?REFRESH_WD?30??//FPS幀率
#define?PLANE_STEP?16?//飛機(jī)速度
#define?BULLET_STEP?20?//子彈速度
#define?HERO_WIDTH??97
#define?HERO_HEIGHT??124
#define?ENEMYPLANE_STEP?3?//敵機(jī)移動(dòng)速度
#define?ENEMYPLANE_NUM?5?//每次敵機(jī)產(chǎn)生數(shù)量
#define?ENEMYPLANE_FRESH_TIME?3?//敵機(jī)n秒產(chǎn)生一次
using?namespace?std;
GtkWidget?*window;
GtkWidget?*layout;????????//使用的布局
//GtkWidget?*FPSlog;??????//fps幀率實(shí)時(shí)顯示
GtkWidget?*heroimg;?????//英雄圖片
HeroPlane?hero;?????????//主角飛機(jī)
gboolean?keypresslist[]?=?{falsefalsefalsefalsefalse};?//上?右?下?左?空格
int?realfps?=?0;
vector?enemylist;?//怪物列表
vector?bullets;
vector?boomlist;
void?UIthread();//UI線程刷新
void?*FPStotal(void*);//實(shí)際幀率統(tǒng)計(jì)
bool?gameover?=?false;
void?freshScreen();


gboolean?deal_keybord_event(GtkWidget?*widgetGdkEventKey?*eventgpointer?data);//鍵盤消息機(jī)制
gboolean?release_keybord_event(GtkWidget?*widgetGdkEventKey?*eventgpointer?data);
static?gboolean?time_handler();
void?init();
void?CreateEnemy(int?MaxplaneNumvector?&planelist);


static?void?sleep_ms(unsigned?int?secs)

{

????struct?timeval?tval;

????tval.tv_sec=secs/1000;

????tval.tv_usec=(secs*1000)%1000000;

????select(0NULLNULLNULL&tval);

}
int?main(int?argcchar?*argv[])
{

????/*創(chuàng)建線程*/

????if?(!g_thread_supported())
????{
????????g_thread_init(NULL);
????????gdk_threads_init();
????}

????/*各項(xiàng)初始化*/
????gtk_init(&argc&argv);
????window?=?gtk_window_new(GTK_WINDOW_TOPLEVEL);
????gtk_window_set_title(GTK_WINDOW(window)“飛機(jī)大戰(zhàn)“);
????gtk_widget_set_size_request(windowWD_WIDTHWD_HEIGHT);
????gtk_window_set_resizable(GTK_WINDOW(window)false);
????g_signal_connect(window“key-press-event“G_CALLBACK(deal_keybord_event)NULL);
????g_signal_connect(window“key-release-event“G_CALLBACK(release_keybord_event)NULL);
????//g_timeout_add(3000(GSourceFunc)time_handlerNULL);


????/*背景貼圖*/

????init();

????gtk_widget_show_all(window);


????//創(chuàng)建gtk的刷新線程??UI線程
????g_thread_create((GThreadFunc)UIthread?NULL?FALSE?NULL);
????pthread_t?totalthread;
????if(pthread_create(&totalthreadNULLFPStotalNULL)?!=?0?){
????????cout?<????}

????gdk_threads_enter();
????gtk_main();
????gdk_threads_leave();
}


?//子彈狀態(tài)以及子彈位移
????vector?deletelist;
????//敵機(jī)刪除隊(duì)列
????vector?deleteEnemyList;
????int?delcount?=?0;
//UI線程刷新
void?UIthread(){
????int?sleeptime?=?1000/REFRESH_WD;//間隔刷新時(shí)間
????int?timecount?=?0;
????while(true){
????????sleep_ms(sleeptime);
????????if(gameover)
????????????break;
????????g_main_context_invoke(NULL(GSourceFunc)freshScreenNULL);

????????realfps++;

????}
????//Gameover
????????GtkWidget?*over?=?gtk_image_new_from_file(“./img/gameover.png“);

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-02?10:17??PlaneWar2\
?????目錄???????????0??2019-01-02?10:17??PlaneWar2\bin\
?????目錄???????????0??2019-01-02?10:17??PlaneWar2\bin\Debug\
?????文件??????283776??2018-12-20?20:43??PlaneWar2\bin\Debug\PlaneWar2
?????目錄???????????0??2019-01-02?10:17??PlaneWar2\bin\Release\
?????文件???????22664??2018-12-25?12:43??PlaneWar2\bin\Release\PlaneWar2
?????目錄???????????0??2019-01-02?10:17??PlaneWar2\img\
?????文件????????4827??2015-10-31?05:45??PlaneWar2\img\airplane.png
?????文件??????110258??2015-10-31?05:45??PlaneWar2\img\background.png
?????文件?????5463847??2018-12-13?17:05??PlaneWar2\img\BGM.mp3
?????目錄???????????0??2019-01-02?10:17??PlaneWar2\img\boom\
?????文件????????2635??2018-12-25?11:56??PlaneWar2\img\boom\boom_1.png
?????文件????????4976??2018-12-25?11:56??PlaneWar2\img\boom\boom_10.png
?????文件????????5129??2018-12-25?11:56??PlaneWar2\img\boom\boom_11.png
?????文件????????5253??2018-12-25?11:56??PlaneWar2\img\boom\boom_12.png
?????文件????????5337??2018-12-25?11:56??PlaneWar2\img\boom\boom_13.png
?????文件????????5428??2018-12-25?11:56??PlaneWar2\img\boom\boom_14.png
?????文件????????5545??2018-12-25?11:56??PlaneWar2\img\boom\boom_15.png
?????文件????????5588??2018-12-25?11:56??PlaneWar2\img\boom\boom_16.png
?????文件????????5713??2018-12-25?11:56??PlaneWar2\img\boom\boom_17.png
?????文件????????5671??2018-12-25?11:56??PlaneWar2\img\boom\boom_18.png
?????文件????????5535??2018-12-25?11:56??PlaneWar2\img\boom\boom_19.png
?????文件????????2420??2018-12-25?11:56??PlaneWar2\img\boom\boom_2.png
?????文件????????5551??2018-12-25?11:56??PlaneWar2\img\boom\boom_20.png
?????文件????????5432??2018-12-25?11:56??PlaneWar2\img\boom\boom_21.png
?????文件????????5444??2018-12-25?11:56??PlaneWar2\img\boom\boom_22.png
?????文件????????5138??2018-12-25?11:56??PlaneWar2\img\boom\boom_23.png
?????文件????????4866??2018-12-25?11:56??PlaneWar2\img\boom\boom_24.png
?????文件????????4710??2018-12-25?11:56??PlaneWar2\img\boom\boom_25.png
?????文件????????4448??2018-12-25?11:56??PlaneWar2\img\boom\boom_26.png
?????文件????????3861??2018-12-25?11:56??PlaneWar2\img\boom\boom_27.png
............此處省略48個(gè)文件信息

評(píng)論

共有 條評(píng)論