亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mine1.c

?? 事件驅動程序設計很好的框架
?? C
字號:
/****************************************************************************** Product: "Fly'n'Shoot" game example* Last Updated for Version: 4.0.00* Date of the Last Update:  Apr 06, 2008**                    Q u a n t u m     L e a P s*                    ---------------------------*                    innovating embedded systems** Copyright (C) 2002-2008 Quantum Leaps, LLC. All rights reserved.** This software may be distributed and modified under the terms of the GNU* General Public License version 2 (GPL) as published by the Free Software* Foundation and appearing in the file GPL.TXT included in the packaging of* this file. Please note that GPL Section 2[b] requires that all works based* on this software must also be made publicly available under the terms of* the GPL ("Copyleft").** Alternatively, this software may be distributed and modified under the* terms of Quantum Leaps commercial licenses, which expressly supersede* the GPL and are specifically designed for licensees interested in* retaining the proprietary status of their code.** Contact information:* Quantum Leaps Web site:  http://www.quantum-leaps.com* e-mail:                  info@quantum-leaps.com*****************************************************************************/#include "qp_port.h"#include "bsp.h"#include "game.h"Q_DEFINE_THIS_FILE/* local objects -----------------------------------------------------------*/typedef struct Mine1Tag {    QHsm super;                                    /* extend the QHsm class */    uint8_t x;    uint8_t y;    uint8_t exp_ctr;} Mine1;static QState Mine1_initial  (Mine1 *me, QEvent const *e);static QState Mine1_unused   (Mine1 *me, QEvent const *e);static QState Mine1_used     (Mine1 *me, QEvent const *e);static QState Mine1_planted  (Mine1 *me, QEvent const *e);static QState Mine1_exploding(Mine1 *me, QEvent const *e);static Mine1 l_mine1[GAME_MINES_MAX];             /* a pool of type-1 mines */                             /* helper macro to provide the ID of this mine */#define MINE_ID(me_)    ((me_) - l_mine1)/*..........................................................................*/QHsm *Mine1_ctor(uint8_t id) {    Mine1 *me;    Q_REQUIRE(id < GAME_MINES_MAX);    me = &l_mine1[id];    QHsm_ctor(&me->super, (QStateHandler)&Mine1_initial);/*superclass' ctor */    return (QHsm *)me;}/*..........................................................................*/QState Mine1_initial(Mine1 *me, QEvent const *e) {    static  uint8_t dict_sent;    (void)e;                  /* avoid the "unreferenced parameter" warning */    if (!dict_sent) {        QS_OBJ_DICTIONARY(&l_mine1[0]); /* obj. dictionaries for Mine1 pool */        QS_OBJ_DICTIONARY(&l_mine1[1]);        QS_OBJ_DICTIONARY(&l_mine1[2]);        QS_OBJ_DICTIONARY(&l_mine1[3]);        QS_OBJ_DICTIONARY(&l_mine1[4]);        QS_FUN_DICTIONARY(&Mine1_initial);/*fun. dictionaries for Mine1 HSM */        QS_FUN_DICTIONARY(&Mine1_unused);        QS_FUN_DICTIONARY(&Mine1_used);        QS_FUN_DICTIONARY(&Mine1_planted);        QS_FUN_DICTIONARY(&Mine1_exploding);        dict_sent = 1;    }    QS_SIG_DICTIONARY(MINE_PLANT_SIG,    me);              /* local signals */    QS_SIG_DICTIONARY(MINE_DISABLED_SIG, me);    QS_SIG_DICTIONARY(MINE_RECYCLE_SIG,  me);    QS_SIG_DICTIONARY(SHIP_IMG_SIG,      me);    QS_SIG_DICTIONARY(MISSILE_IMG_SIG,   me);    return Q_TRAN(&Mine1_unused);}/*..........................................................................*/QState Mine1_unused(Mine1 *me, QEvent const *e) {    switch (e->sig) {        case MINE_PLANT_SIG: {            me->x = ((ObjectPosEvt const *)e)->x;            me->y = ((ObjectPosEvt const *)e)->y;            return Q_TRAN(&Mine1_planted);        }    }    return Q_SUPER(&QHsm_top);}/*..........................................................................*/QState Mine1_used(Mine1 *me, QEvent const *e) {    switch (e->sig) {        case Q_EXIT_SIG: {            /* tell the Tunnel that this mine is becoming disabled */            MineEvt *mev = Q_NEW(MineEvt, MINE_DISABLED_SIG);            mev->id = MINE_ID(me);            QActive_postFIFO(AO_Tunnel, (QEvent *)mev);            return Q_HANDLED();        }        case MINE_RECYCLE_SIG: {            return Q_TRAN(&Mine1_unused);        }    }    return Q_SUPER(&QHsm_top);}/*..........................................................................*/QState Mine1_planted(Mine1 *me, QEvent const *e) {    uint8_t x;    uint8_t y;    uint8_t bmp;    switch (e->sig) {        case TIME_TICK_SIG: {            if (me->x >= GAME_SPEED_X) {                ObjectImageEvt *oie;                me->x -= GAME_SPEED_X;              /* move the mine 1 step */                /* tell the Tunnel to draw the Mine */                oie = Q_NEW(ObjectImageEvt, MINE_IMG_SIG);                oie->x   = me->x;                oie->y   = me->y;                oie->bmp = MINE1_BMP;                QActive_postFIFO(AO_Tunnel, (QEvent *)oie);            }            else {                return Q_TRAN(&Mine1_unused);            }            return Q_HANDLED();        }        case SHIP_IMG_SIG: {            x   = (uint8_t)((ObjectImageEvt const *)e)->x;            y   = (uint8_t)((ObjectImageEvt const *)e)->y;            bmp = (uint8_t)((ObjectImageEvt const *)e)->bmp;            /* test for incoming Ship hitting this mine */            if (do_bitmaps_overlap(MINE1_BMP, me->x, me->y, bmp, x, y)) {                static MineEvt const mine1_hit = {                    { HIT_MINE_SIG, 0 },        /* the QEvent base instance */                    1               /* type of the mine (1 for Mine type-1) */                };                QActive_postFIFO(AO_Ship, (QEvent *)&mine1_hit);                /* go straight to 'disabled' and let the Ship do                * the exploding                */                return Q_TRAN(&Mine1_unused);            }            return Q_HANDLED();        }        case MISSILE_IMG_SIG: {            x   = (uint8_t)((ObjectImageEvt const *)e)->x;            y   = (uint8_t)((ObjectImageEvt const *)e)->y;            bmp = (uint8_t)((ObjectImageEvt const *)e)->bmp;            /* test for incoming Missile hitting this mine */            if (do_bitmaps_overlap(MINE1_BMP, me->x, me->y, bmp, x, y)) {               static ScoreEvt const mine1_destroyed = {                    { DESTROYED_MINE_SIG, 0 },  /* the QEvent base instance */                    25                  /* score for destroying Mine type-1 */                };                QActive_postFIFO(AO_Missile, (QEvent *)&mine1_destroyed);                return Q_TRAN(&Mine1_exploding);            }            return Q_HANDLED();        }    }    return Q_SUPER(&Mine1_used);}/*..........................................................................*/QState Mine1_exploding(Mine1 *me, QEvent const *e) {    switch (e->sig) {        case Q_ENTRY_SIG: {            me->exp_ctr = 0;            return Q_HANDLED();        }        case TIME_TICK_SIG: {            if ((me->x >= GAME_SPEED_X) && (me->exp_ctr < 15)) {                ObjectImageEvt *oie;                ++me->exp_ctr;             /* advance the explosion counter */                me->x -= GAME_SPEED_X;          /* move explosion by 1 step */                /* tell the Game to render the current stage of Explosion */                oie = Q_NEW(ObjectImageEvt, EXPLOSION_SIG);                oie->x   = me->x + 1;                     /* x of explosion */                oie->y   = (int8_t)((int)me->y - 4 + 2);  /* y of explosion */                oie->bmp = EXPLOSION0_BMP + (me->exp_ctr >> 2);                QActive_postFIFO(AO_Tunnel, (QEvent *)oie);            }            else {                return Q_TRAN(&Mine1_unused);            }            return Q_HANDLED();        }    }    return Q_SUPER(&Mine1_used);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产免费久久综合| 久久久一区二区三区捆绑**| 日韩一区二区三区在线观看| 欧美激情综合五月色丁香| 怡红院av一区二区三区| 麻豆精品一区二区三区| 91看片淫黄大片一级在线观看| 日韩一区二区在线看| 综合电影一区二区三区| 久久精品99久久久| 色综合天天做天天爱| 久久这里只有精品首页| 亚洲夂夂婷婷色拍ww47| 成人黄色国产精品网站大全在线免费观看| 欧美日韩精品一区二区三区蜜桃| 国产视频一区二区在线观看| 日韩专区中文字幕一区二区| 色视频欧美一区二区三区| 国产亚洲精品久| 久久成人久久爱| 日韩欧美中文字幕精品| 亚洲chinese男男1069| 成人午夜免费av| 久久影音资源网| 日韩av一区二区在线影视| 一本色道久久综合精品竹菊| 国产欧美日韩精品a在线观看| 美女久久久精品| 欧美高清视频一二三区 | 91丨九色丨蝌蚪富婆spa| 久久综合成人精品亚洲另类欧美| 免费成人av在线| 91精品国产综合久久精品app| 亚洲综合色婷婷| 欧美无砖专区一中文字| 亚洲一区在线观看视频| 欧美三级资源在线| 亚洲国产毛片aaaaa无费看 | 一区二区三区四区激情| 91丨porny丨中文| 亚洲精品国产精品乱码不99| 91蜜桃网址入口| 尤物av一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 国产精品免费人成网站| 成人综合日日夜夜| 国产精品欧美精品| 91在线精品一区二区三区| 最好看的中文字幕久久| 色噜噜狠狠色综合中国| 亚洲一二三级电影| 5566中文字幕一区二区电影| 久久精品国产精品亚洲综合| 久久―日本道色综合久久| 成人久久久精品乱码一区二区三区| 久久久午夜精品| 成人av在线一区二区| 中文字幕一区二区三区在线不卡 | 欧美一级搡bbbb搡bbbb| 国产精品一区二区免费不卡 | 日韩欧美色综合网站| 国产一区 二区 三区一级| 国产精品国产馆在线真实露脸| 91黄色免费看| 久草在线在线精品观看| 国产精品美女一区二区| 欧美喷潮久久久xxxxx| 久久se精品一区二区| 中文字幕色av一区二区三区| 欧美天堂一区二区三区| 极品少妇xxxx偷拍精品少妇| ●精品国产综合乱码久久久久 | 亚洲成人福利片| 精品日韩在线观看| www.欧美色图| 蜜臀av性久久久久蜜臀aⅴ四虎| 日本一区二区久久| 欧美午夜精品久久久久久孕妇 | 亚洲aⅴ怡春院| 国产日本亚洲高清| 91精品欧美久久久久久动漫| 高清av一区二区| 免费观看一级特黄欧美大片| 最新日韩av在线| 欧美精品一区二区三区一线天视频 | 在线成人av影院| 成人avav影音| 国内精品久久久久影院薰衣草| 一区二区久久久| 国产色产综合色产在线视频| 欧美日韩亚洲另类| 91在线观看成人| 国产精品一二三区| 久久精品国产99国产精品| 亚洲一区二区三区影院| 国产精品福利av| 国产人久久人人人人爽| 精品欧美一区二区在线观看| 在线观看亚洲成人| 99re视频精品| 床上的激情91.| 国产成人午夜精品5599| 久久超级碰视频| 麻豆91在线播放| 日本vs亚洲vs韩国一区三区二区| 亚洲激情中文1区| 亚洲品质自拍视频| 亚洲三级视频在线观看| 国产精品成人在线观看| 久久精品视频免费| 久久影院午夜片一区| 精品成人一区二区| 久久婷婷久久一区二区三区| 欧美成人一区二区三区片免费 | 激情五月激情综合网| 人人精品人人爱| 免费高清成人在线| 久久国产精品免费| 激情欧美一区二区| 国产精品中文字幕欧美| 国产成人一级电影| 国产91精品在线观看| 成人午夜看片网址| 成熟亚洲日本毛茸茸凸凹| 不卡的av电影| 91久久奴性调教| 欧美日产国产精品| 日韩欧美中文字幕精品| 久久午夜电影网| 中文字幕av不卡| 亚洲女人的天堂| 性感美女极品91精品| 老司机精品视频线观看86 | 色婷婷久久久亚洲一区二区三区| 成人v精品蜜桃久久一区| 成人av在线看| 欧美日韩一区成人| 欧美tickle裸体挠脚心vk| 久久精品视频一区二区| 日韩理论在线观看| 丝袜美腿一区二区三区| 精品无人码麻豆乱码1区2区| 成人激情综合网站| 欧美性做爰猛烈叫床潮| 欧美变态口味重另类| 国产精品情趣视频| 视频一区视频二区中文| 国产一区二区三区四| 色综合天天综合色综合av | 国产精品久久久99| 亚洲国产毛片aaaaa无费看| 韩国三级在线一区| 色一区在线观看| 日韩视频在线你懂得| 国产精品成人一区二区三区夜夜夜| 亚洲一区在线免费观看| 国产精品自在在线| 欧美性xxxxxx少妇| 国产日产亚洲精品系列| 婷婷开心激情综合| 懂色av一区二区三区蜜臀| 欧美日韩中文精品| 国产女同性恋一区二区| 亚洲国产综合在线| 国内久久精品视频| 日韩码欧中文字| 激情文学综合插| 欧美日韩一区二区三区四区 | 91福利国产精品| 欧美经典三级视频一区二区三区| 午夜精品一区在线观看| 国产凹凸在线观看一区二区| 欧美精品一二三| 亚洲免费观看高清完整版在线观看 | 欧洲av在线精品| 欧美国产成人在线| 国产中文字幕精品| 欧美一区三区二区| 亚洲国产精品一区二区尤物区| 国产成a人亚洲精| 欧美不卡一区二区三区| 午夜精品福利在线| 欧美午夜精品电影| 亚洲美女少妇撒尿| 99riav久久精品riav| 国产欧美一区二区三区鸳鸯浴 | 天天综合色天天综合色h| aaa亚洲精品| 国产午夜一区二区三区| 久久精品噜噜噜成人av农村| 欧美日韩在线播放三区| 亚洲伦理在线免费看| 成人午夜碰碰视频| 国产三级欧美三级日产三级99| 日韩av二区在线播放| 欧美另类videos死尸| 亚洲一区二区精品3399| 韩国三级在线一区| 另类综合日韩欧美亚洲| 国产精品久久久久久一区二区三区|