SDL – 1 簡介 靜宜大學資訊工程系 蔡奇偉副教授 © 2007-2009.

Slides:



Advertisements
Similar presentations
雅安市教师资格定期注册 政策解读 雅安市教育局政策法规科. 一、执行文件: 一、执行文件: 1 、《四川省教育厅关于印发《四川省中小学教师资格定期 注册试点实施细则(试行)》的通知》(川教 [2014]60 号); 1 、《四川省教育厅关于印发《四川省中小学教师资格定期 注册试点实施细则(试行)》的通知》(川教.
Advertisements

一、就业系统 登陆地址: 账号及密码 - 账号: 密码: - 验证码与网页上相同, 不区分大小写。 – 具体如图:
第一單元 建立java 程式.
第八次全國科學技術會議 第一議題:結合人文科技,提升生活品質
岳飞( 1103——1142) 字鹏举,汉族人,是南宋著名抗金将领,相州汤阴(今河南汤阴)人。二十岁从军,因军功屡迁,后被秦桧以“莫须有”罪名污陷而杀害,时年39岁,谥“武穆”,后改谥“忠武”,有《岳武穆集》传世。《全宋词》存词三首 (《满江红·怒发冲冠》、《满江红·登黄鹤楼有感》、《小重山》)。
C语言程序设计 主讲教师 :张群燕 电话:
參考資料:﹝升中全接觸﹞ 香港明愛青少年及社區服務
第一章 C语言概述 计算机公共教学部.
焦作32中 108班 杨梦洁 、杨梦涛、赵 璐、赵鑫、赵恒 2009年8月2日
學生:3A黃寶珠(35),楊偉漢(39) 教師:黃瑞勤老師
“东方瑞士” ——青岛.
第20课 迷人的动画片 威海市 高新区 初村小学 执教人:吴磊. 第20课 迷人的动画片 威海市 高新区 初村小学 执教人:吴磊.
第 10 章 Linux的图形编程.
第一章 c语言程序设计基础 任课教师:温荷 Neusoft Institute of Information
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
客户需求书暨邀请罗老函 “中国亮点”首先是一家“外脑投资”公司 投的是“思想资产”—— 《新利益管理学》 二0一六年三月十五日.
旅游服务与管理专业 旅游服务与管理专业 旅游服务与管理专业 旅游服务与管理专业 旅游服务与管理专业
5B專題研習第六組 主題:積極人生·拒絕誘惑 吸毒的禍害
Project 2 JMVC code tracing
組別:第五組 小組成員:賴瑋、蔡宜瑾、曾子珊、陳玟羽 報告人:曾子珊
C#.
OOSDL 靜宜大學資工系 蔡奇偉 副教授
C语言程序设计 第十二章 位运算.
高级语言程序设计 主讲人:陈玉华.
第十一章 結構.
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
簡易C++除錯技巧 長庚大學機械系
chapter 1-Introduction
列舉(enum).
多媒體元素.
STRUCTURE 授課:ANT 日期:2010/5/12.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
SQL Stored Procedure SQL 預存程序.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab10 1.
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
Visual Basic 物件導向程式設計簡介.
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
Linux 文件操作——系统调用和标准 IO 库
網路安全技術期末報告 Proxy Server
程式設計實習課(四) ----C 函數運用----
Topic Introduction—RMI
第一單元 建立java 程式.
Struct結構 迴圈
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第 5 章 加 入 圖 片.
Visual C++ Windows Programming
緩衝區溢位攻擊 學生:A 羅以豪 教授:梁明章
第11章 位运算 为了节省内存空间,在系统软件中常将多个标志状态简单地组合在一起,存储到一个字节(或字)中。C语言是为研制系统软件而设计的,所以她提供了实现将标志状态从标志字节中分离出来的位运算功能。 所谓位运算是指,按二进制位进行的运算。 11.1 数值在计算机中的表示 11.2.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
樣版.
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C qsort.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第7章 程序的结构 四、生存期与存储属性 五、extern关键字与外部连接属性 六、static关键字与内部连接属性.
第二章 类型、对象、运算符和表达式.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
結構、檔案處理(Structure, File)
第1章程序设计和C语言.
資料表示方法 資料儲存單位.
第十二章 位运算.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
第八章 通用安全原則 8-1 通用安全概述 8-2 部署全公司的執行策略.
作業系統實習課(二) -Scheduler-Related System Calls-
Programming & Language Telling the computer what to do
LED Pili LED 中州技術學院 電子系 副教授 余文俊.
台北縣的歷史發展.
C语言程序设计 第13章 文件操作.
萬能科技大學 106-1導師會議 研發處 吳復強
方法(Method) 函數.
Presentation transcript:

SDL – 1 簡介 靜宜大學資訊工程系 蔡奇偉副教授 © 2007-2009

綱要 簡介 相關函式庫與標頭檔 SDL 的命名慣例 SDL 子系統 初始化 SDL 結束 SDL 取得錯誤訊息 SDL 定義的資料型態

簡介 SDL 是 Simple DirectMedia Layer 的縮寫 Cross-platform (Windows, Linux, BSD, MacOS, …,etc) 官網:http://www.libsdl.org/

相關函式庫與標頭檔 函式庫 標頭檔 說明 sdl.lib SDL.h SDL 核心函式庫 SDLmain.lib 無 Windows 介面函式庫 SDL_image.lib SDL_image.h 載入 jpg, png, tiff 等圖檔 SDL_mixer.lib SDL_mixer.h 混音函式庫 SDL_net.lib SDL_net.h 網路連線函式庫 SDL_ttf.lib SDL_ttf.h TrueType 字型函式庫

SDL 的命名慣例 所有常數都用大寫字母,以 SDL 開頭,並用底線字元將其中的組合字分開,譬如: SDL_INIT_VIDEO 所有函式的名稱都以 SDL_ 開頭,其後的組合字用首字元大寫的方式來區隔,譬如: SDL_GetVideoSurface() SDL 自定結構型態的命名與函式相同,譬如: SDL_Rect 或 SDL_Surface

SDL 子系統 名稱 常數名稱 自動初始化 1 Video SDL_INIT_VIDEO 否 2 Audio SDL_INIT_AUDIO 3 Event Handling 是 4 CDROM SDL_INIT_CDROM 5 Joystick Handling SDL_INIT_JOYSTICK 6 File I/O 7 Timer SDL_INIT_TIMER 8 Thread

初始化 SDL int SDL_Init (Uint32 flags); 我們必須先呼叫 SDL_Init() 來初始化 SDL 之後,才能呼叫其他的 SDL 函式。 參數 flags 用來指定想要初始化的子系統。我們可以代入前頁列出的子系統常數名稱或它們的 bit-OR 組合,譬如: SDL_Init(SDL_INIT_VIDEO); SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER); 如果初始化成功,函式傳回 0,否則傳回 -1。

結束 SDL void SDL_Quit (void); 你應該在結束程式之前呼叫此函式來關閉 SDL 所有的子系統並釋放它們所佔用的資源。

初始化 / 結束 SDL 子系統 int SDL_InitSubSystem (Uint32 flags); void SDL_QuitSubSystem (Uint32 flags); 參數 flags 的指定方式如同 SDL_Init() 一般。 SDL_InitSubSystem() 函式可用來初始化沒被 SDL_Init() 初始化的子系統。

Examples /* Seperating Joystick and Video initialization. */ SDL_Init(SDL_INIT_VIDEO); . SDL_SetVideoMode(640,480,16,SDL_DOUBLEBUF|SDL_FULLSCREEN); /* Do Some Video stuff */ /* Initialize the joystick subsystem */ SDL_InitSubSystem(SDL_INIT_JOYSTICK); /* Do some stuff with video and joystick */ /* Shut them both down */ SDL_Quit();

取得錯誤訊息 char *SDL_GetError (void); 此函式傳回 SDL 內部最近發生錯誤的文字訊息。我們可以在 SDL 函式傳回錯誤代碼後,呼叫此函式取得錯誤說明文字。

Example #include <SDL/SDL.h> /* All SDL App's need this */ #include <stdio.h> int main() { printf("Initializing SDL.\n"); /* Initialize defaults, Video and Audio */ if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) { printf("Could not initialize SDL: %s.\n", SDL_GetError()); exit(-1); } printf("SDL initialized.\n"); printf("Quiting SDL.\n"); /* Shutdown all subsystems */ SDL_Quit(); printf("Quiting....\n"); exit(0);

SDL 定義的資料型態 整數型態 Uint8 8 bits 正整數: 0 ~ 255 Sint8 8 bits 整數: -128 ~ 127

SDL_Rect(矩形) typedef struct{ Sint16 x, y; // 左上角座標 Uint16 w, h; // 寬度與高度,以像素為單位 } SDL_Rect; (x, y) w h

SDL_Color(顏色) typedef struct{ Uint8 r; // 紅色值 Uint8 g; // 綠色值 Uint8 b; // 藍色值 Uint8 unused; } SDL_Color; SDL 的顏色值通用格式,不因像素格式不同而異。然而, SDL 並無直接處理 SDL_Color 的相關函式。