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

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

?? ship.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-2007 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 */#define SHIP_WIDTH  5#define SHIP_HEIGHT 3/* local objects -----------------------------------------------------------*/typedef struct ShipTag {    QActive super;                              /* extend the QActive class */    uint8_t x;    uint8_t y;    uint8_t exp_ctr;    uint16_t score;} Ship;                                           /* the Ship active object */static QState Ship_initial  (Ship *me, QEvent const *e);static QState Ship_active   (Ship *me, QEvent const *e);static QState Ship_parked   (Ship *me, QEvent const *e);static QState Ship_flying   (Ship *me, QEvent const *e);static QState Ship_exploding(Ship *me, QEvent const *e);static Ship l_ship;          /* the sole instance of the Ship active object *//* global objects ----------------------------------------------------------*/QActive * const AO_Ship = (QActive *)&l_ship;  /* opaque pointer to Ship AO *//*..........................................................................*/void Ship_ctor(void) {    Ship *me = &l_ship;    QActive_ctor(&me->super, (QStateHandler)&Ship_initial);    me->x = GAME_SHIP_X;    me->y = GAME_SHIP_Y;}/* HSM definition ----------------------------------------------------------*//*..........................................................................*/QState Ship_initial(Ship *me, QEvent const *e) {    (void)e;                  /* avoid the "unreferenced parameter" warning */    QActive_subscribe((QActive *)me, TIME_TICK_SIG);    QActive_subscribe((QActive *)me, PLAYER_TRIGGER_SIG);    QS_OBJ_DICTIONARY(&l_ship);        /* object dictionary for Ship object */    QS_FUN_DICTIONARY(&Ship_initial); /* function dictionaries for Ship HSM */    QS_FUN_DICTIONARY(&Ship_active);    QS_FUN_DICTIONARY(&Ship_parked);    QS_FUN_DICTIONARY(&Ship_flying);    QS_FUN_DICTIONARY(&Ship_exploding);    QS_SIG_DICTIONARY(PLAYER_SHIP_MOVE_SIG, &l_ship);      /* local signals */    QS_SIG_DICTIONARY(TAKE_OFF_SIG,         &l_ship);    QS_SIG_DICTIONARY(HIT_WALL_SIG,         &l_ship);    QS_SIG_DICTIONARY(HIT_MINE_SIG,         &l_ship);    QS_SIG_DICTIONARY(DESTROYED_MINE_SIG,   &l_ship);    return Q_TRAN(&Ship_active);             /* top-most initial transition */}/*..........................................................................*/QState Ship_active(Ship *me, QEvent const *e) {    switch (e->sig) {        case Q_INIT_SIG: {                     /* nested initial transition */            return Q_TRAN(&Ship_parked);        }        case PLAYER_SHIP_MOVE_SIG: {            me->x = ((ObjectPosEvt const *)e)->x;            me->y = ((ObjectPosEvt const *)e)->y;            return Q_HANDLED();        }    }    return Q_SUPER(&QHsm_top);}/*..........................................................................*/QState Ship_parked(Ship *me, QEvent const *e) {    switch (e->sig) {        case TAKE_OFF_SIG: {               /* permition to take off granted */            return Q_TRAN(&Ship_flying);        }    }    return Q_SUPER(&Ship_active);}/*..........................................................................*/QState Ship_flying(Ship *me, QEvent const *e) {    switch (e->sig) {        case Q_ENTRY_SIG: {            ScoreEvt *sev;            me->score = 0;                               /* reset the score */            sev = Q_NEW(ScoreEvt, SCORE_SIG);            sev->score = me->score;            QActive_postFIFO(AO_Tunnel, (QEvent *)sev);            return Q_HANDLED();        }        case TIME_TICK_SIG: {            /* tell the Tunnel to draw the Ship and test for hits */            ObjectImageEvt *oie = Q_NEW(ObjectImageEvt, SHIP_IMG_SIG);            oie->x   = me->x;            oie->y   = me->y;            oie->bmp = SHIP_BMP;            QActive_postFIFO(AO_Tunnel, (QEvent *)oie);            ++me->score;  /* increment the score for surviving another tick */            if ((me->score % 10) == 0) {           /* is the score "round"? */                ScoreEvt *sev = Q_NEW(ScoreEvt, SCORE_SIG);                sev->score = me->score;                QActive_postFIFO(AO_Tunnel, (QEvent *)sev);            }            return Q_HANDLED();        }        case PLAYER_TRIGGER_SIG: {                   /* trigger the Missile */            ObjectPosEvt *ope = Q_NEW(ObjectPosEvt, MISSILE_FIRE_SIG);            ope->x = me->x;            ope->y = me->y + SHIP_HEIGHT - 1;            QActive_postFIFO(AO_Missile, (QEvent *)ope);            return Q_HANDLED();        }        case DESTROYED_MINE_SIG: {            me->score += ((ScoreEvt const *)e)->score;            /* the score will be sent to the Tunnel by the next TIME_TICK */            return Q_HANDLED();        }        case HIT_WALL_SIG:        case HIT_MINE_SIG: {            return Q_TRAN(&Ship_exploding);        }    }    return Q_SUPER(&Ship_active);}/*..........................................................................*/QState Ship_exploding(Ship *me, QEvent const *e) {    switch (e->sig) {        case Q_ENTRY_SIG: {            me->exp_ctr = 0;            return Q_HANDLED();        }        case TIME_TICK_SIG: {            if (me->exp_ctr < 15) {                ObjectImageEvt *oie;                ++me->exp_ctr;                  /* tell the Tunnel to draw the current stage of Explosion */                oie = Q_NEW(ObjectImageEvt, EXPLOSION_SIG);                oie->bmp = EXPLOSION0_BMP + (me->exp_ctr >> 2);                oie->x   = me->x;                         /* x of explosion */                oie->y   = (int8_t)((int)me->y - 4 + SHIP_HEIGHT);                QActive_postFIFO(AO_Tunnel, (QEvent *)oie);            }            else {                ScoreEvt *gameOver = Q_NEW(ScoreEvt, GAME_OVER_SIG);                gameOver->score = me->score;                QActive_postFIFO(AO_Tunnel, (QEvent *)gameOver);                return Q_TRAN(&Ship_parked);            }            return Q_HANDLED();        }    }    return Q_SUPER(&Ship_active);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片免费看视频在线 | 欧美xxxxx裸体时装秀| 国产乱色国产精品免费视频| 亚洲欧美激情视频在线观看一区二区三区| 欧美色大人视频| 成人av网址在线观看| 久久成人精品无人区| 一区二区三区精品在线观看| 夜夜嗨av一区二区三区四季av| 国产亚洲欧美日韩俺去了| 日韩va亚洲va欧美va久久| 欧美日韩国产一区| 亚洲五码中文字幕| 精品不卡在线视频| 国产一区二区精品久久| 国产欧美一区二区三区鸳鸯浴| 日本精品视频一区二区| 成人av资源网站| 国产激情一区二区三区桃花岛亚洲| 五月天久久比比资源色| 亚洲国产视频一区| 亚洲妇熟xx妇色黄| 首页国产欧美久久| 日韩精品三区四区| 蜜桃视频一区二区三区在线观看| 无码av免费一区二区三区试看 | 国产日韩av一区二区| 日韩三级视频在线看| 欧美大片在线观看一区二区| 日韩一区二区电影| 久久久久97国产精华液好用吗| 国产午夜精品理论片a级大结局| 久久精品一区二区三区av | 精品国产三级a在线观看| 日韩欧美一二三区| 亚洲国产精品精华液2区45| 国产精品欧美久久久久一区二区 | 亚洲精品福利视频网站| 亚洲区小说区图片区qvod| 亚洲h在线观看| 久久成人羞羞网站| 波波电影院一区二区三区| 99国产精品久久久久| 欧美猛男男办公室激情| 久久亚洲二区三区| 亚洲精品一二三区| 精品在线亚洲视频| 欧美视频精品在线观看| www一区二区| 亚洲第一福利视频在线| 九九国产精品视频| 欧美日韩国产高清一区二区三区| 久久伊99综合婷婷久久伊| 亚洲精品高清视频在线观看| 久久电影国产免费久久电影| 在线观看区一区二| 久久久久久**毛片大全| 午夜一区二区三区在线观看| 成人精品亚洲人成在线| 精品嫩草影院久久| 亚洲福利视频一区二区| 99久久精品国产一区| 亚洲精品在线观看网站| 日本伊人精品一区二区三区观看方式| 成人黄色av电影| 亚洲精品一区二区三区影院| 视频精品一区二区| 在线精品观看国产| 一区二区三区精品在线| 91丝袜美腿高跟国产极品老师| 国产午夜亚洲精品羞羞网站| 久久国内精品视频| 欧美一级二级三级乱码| 丝袜脚交一区二区| 91麻豆精品国产91久久久使用方法 | 久久精品国产99国产精品| 欧美日韩免费一区二区三区 | 亚洲一区二区三区四区的| 色欧美片视频在线观看在线视频| 亚洲欧洲精品天堂一级 | 成人美女在线视频| 久久婷婷久久一区二区三区| 91小视频在线观看| 狠狠色狠狠色综合系列| 国产欧美一区二区三区鸳鸯浴| 色婷婷久久久亚洲一区二区三区| 精品一区二区三区香蕉蜜桃| 国产精品国产精品国产专区不蜜| 日韩一卡二卡三卡| 在线观看视频欧美| 成人av在线影院| 国产精品一级在线| 蜜臀91精品一区二区三区| 亚洲一区二区三区不卡国产欧美| 欧美福利电影网| 91在线国内视频| 国产美女视频一区| 日韩成人免费电影| 亚洲少妇中出一区| 欧美国产激情二区三区| 欧美性受xxxx| 欧美v亚洲v综合ⅴ国产v| av亚洲产国偷v产偷v自拍| 日韩综合一区二区| 亚洲国产aⅴ天堂久久| 国产精品高清亚洲| 欧美高清在线视频| 欧美成人激情免费网| 91福利小视频| 在线欧美日韩国产| 91麻豆免费观看| 91麻豆精品秘密| 色综合久久中文综合久久牛| jizzjizzjizz欧美| 色综合色综合色综合色综合色综合| 蜜臀va亚洲va欧美va天堂| 免费观看一级欧美片| 青椒成人免费视频| 激情深爱一区二区| 国产成人精品影院| 97se狠狠狠综合亚洲狠狠| 91视频观看免费| 欧美性大战久久| 这里只有精品电影| 久久久久久久一区| 136国产福利精品导航| 亚洲卡通动漫在线| 亚洲大片在线观看| 国内精品伊人久久久久影院对白| 国产最新精品免费| 成人18精品视频| 欧美日韩视频在线第一区| 日韩一二三区视频| 国产亚洲成年网址在线观看| 美女爽到高潮91| 麻豆91在线播放| 成人黄色电影在线 | 欧美亚洲愉拍一区二区| 欧美精品亚洲一区二区在线播放| 国产亚洲1区2区3区| 日韩精品福利网| 欧美老肥妇做.爰bbww| 国产精品乱人伦| 成人福利视频在线| 国产欧美一区二区三区沐欲| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲色图丝袜美腿| 久久精品国产网站| 精品视频一区二区不卡| 欧美激情在线看| 日韩高清国产一区在线| 色视频欧美一区二区三区| 欧美一级二级三级蜜桃| 亚洲欧美日韩在线播放| 狠狠色丁香婷婷综合| 69p69国产精品| 99久久综合色| 欧美在线三级电影| 亚洲精品大片www| 在线视频国内一区二区| 欧美本精品男人aⅴ天堂| 91伊人久久大香线蕉| 中文字幕精品三区| 99久久免费国产| 亚洲va欧美va人人爽| 日韩一级精品视频在线观看| 日韩电影在线观看一区| www国产成人免费观看视频 深夜成人网| 免费不卡在线观看| 国产欧美日韩亚州综合| 99久久精品国产导航| 亚洲国产毛片aaaaa无费看| 337p亚洲精品色噜噜| 一区二区在线看| 91视频免费看| 日韩欧美不卡在线观看视频| 精品国内二区三区| 一本在线高清不卡dvd| 欧美疯狂性受xxxxx喷水图片| 精品国产乱码久久久久久久| 中文字幕中文字幕在线一区| 亚洲成人av电影在线| 91亚洲资源网| 久久九九影视网| 久久www免费人成看片高清| 91在线观看美女| 久久久久久99久久久精品网站| 亚洲视频免费看| 高清日韩电视剧大全免费| 欧美日韩国产综合视频在线观看| 亚洲欧美日韩在线| 国产精品自拍毛片| 欧美r级电影在线观看| 欧美aa在线视频| 欧美日韩一区久久| 亚洲成人先锋电影| 欧美日韩视频专区在线播放| 国产精品女人毛片| 国产成人亚洲综合色影视| 日韩欧美二区三区|