zoukankan      html  css  js  c++  java
  • SDL 五子棋游戏

    http://www.jb51.net/article/79271.htm

    1.定义窗口大小,棋盘大小

    SDL_GetWindowSize()读取窗口大小,

    由于棋盘是15*15格局,上下留白一行,在另外加一个状态行,所以每行高度为width/17

    2.图片加载

    surface = IMG_Load(file)

    texture = SDL_CreateTextureFromSurface(render, surface)

    free(surface)

    return texture;

    3.文字加载

    pFont = TTF_OpenFont(FontFile, 20)

    surface = TTF_RenderUTF8_Blended(pFont, string, color)

    texture = SDL_CreateTextureFromSurface(render, surface)

    free(surface)

    return texture

    4.绘制

    SDL_RenderClear(pRenderer); 先清空

    SDL_RenderCopyEx(pRenderer, pBackTexture, NULL, NULL, 0, NULL, SDL_FLIP_NONE);拷贝texture

                                                                    //src_rect//dst//angle//center

    SDL_RenderPresent(pRenderer);提交显示

    5.绘制接口

    SDL_RenderDrawLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2) 画线

    SDL_SetRenderDrawColor(SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b, Uint8 a)设置render颜色  

    SDL_RenderFillRect(SDL_Renderer * renderer, const SDL_Rect * rect)填充颜色

    6.事件监听

      SDL_QUIT

        /* Window events */
        SDL_WINDOWEVENT    = 0x200, /**< Window state change */
        SDL_SYSWMEVENT,             /**< System specific event */

        /* Keyboard events */
        SDL_KEYDOWN        = 0x300, /**< Key pressed */
        SDL_KEYUP,                  /**< Key released */
        SDL_TEXTEDITING,            /**< Keyboard text editing (composition) */
        SDL_TEXTINPUT,              /**< Keyboard text input */
        SDL_KEYMAPCHANGED,          /**< Keymap changed due to a system event such as an
                                         input language or keyboard layout change.
                                    */

        /* Mouse events */
        SDL_MOUSEMOTION    = 0x400, /**< Mouse moved */
        SDL_MOUSEBUTTONDOWN,        /**< Mouse button pressed */
        SDL_MOUSEBUTTONUP,          /**< Mouse button released */
        SDL_MOUSEWHEEL,             /**< Mouse wheel motion */

        /* Joystick events */
        SDL_JOYAXISMOTION  = 0x600, /**< Joystick axis motion */
        SDL_JOYBALLMOTION,          /**< Joystick trackball motion */
        SDL_JOYHATMOTION,           /**< Joystick hat position change */
        SDL_JOYBUTTONDOWN,          /**< Joystick button pressed */
        SDL_JOYBUTTONUP,            /**< Joystick button released */
        SDL_JOYDEVICEADDED,         /**< A new joystick has been inserted into the system */
        SDL_JOYDEVICEREMOVED,       /**< An opened joystick has been removed */

        /* Game controller events */
        SDL_CONTROLLERAXISMOTION  = 0x650, /**< Game controller axis motion */
        SDL_CONTROLLERBUTTONDOWN,          /**< Game controller button pressed */
        SDL_CONTROLLERBUTTONUP,            /**< Game controller button released */
        SDL_CONTROLLERDEVICEADDED,         /**< A new Game controller has been inserted into the system */
        SDL_CONTROLLERDEVICEREMOVED,       /**< An opened Game controller has been removed */
        SDL_CONTROLLERDEVICEREMAPPED,      /**< The controller mapping was updated */

        /* Touch events */
        SDL_FINGERDOWN      = 0x700,
        SDL_FINGERUP,
        SDL_FINGERMOTION,

        /* Gesture events */
        SDL_DOLLARGESTURE   = 0x800,
        SDL_DOLLARRECORD,
        SDL_MULTIGESTURE,

        /* Clipboard events */
        SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */

        /* Drag and drop events */
        SDL_DROPFILE        = 0x1000, /**< The system requests a file open */
        SDL_DROPTEXT,                 /**< text/plain drag-and-drop event */
        SDL_DROPBEGIN,                /**< A new set of drops is beginning (NULL filename) */
        SDL_DROPCOMPLETE,             /**< Current set of drops is now complete (NULL filename) */

        /* Audio hotplug events */
        SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */
        SDL_AUDIODEVICEREMOVED,        /**< An audio device has been removed. */

        /* Render events */
        SDL_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset and their contents need to be updated */
        SDL_RENDER_DEVICE_RESET, /**< The device has been reset and all textures need to be recreated */

        /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,
         *  and should be allocated with SDL_RegisterEvents()
         */
        SDL_USEREVENT    = 0x8000,

  • 相关阅读:
    【Thymeleaf/SpringBoot/MyBatis】如何将themeleaf页面的表单数据提交到后台处理
    【Oracle】生成连续序列的两种方法
    【oracle】统计字段里逗号的数量,采用函数regexp(field,',')
    人的成长与发展不会一帆风顺,坚守理想和信念,不以一时颠簸为意,才能更好地走向未来。
    【SpringBoot/Thymeleaf】如何使SpringBoot程序显示网页
    【jQuery/Thymeleaf】在Thymeleaf页面用jQuery的Ajax方法取得后台数据显示在页面上
    JavaScript常用正則表達式
    CSS的入門
    ASP操作xml之如何生成XML数据
    ISAPI筛选器及对ASP源文件的保护
  • 原文地址:https://www.cnblogs.com/chencesc/p/5780950.html
Copyright © 2011-2022 走看看