Pygame 講者:張浩軒.

Slides:



Advertisements
Similar presentations
黑社会 暴力団. 酒井法子 酒井三根城 山口组的酒井组 组长 日本三大黑帮 山口组 势力范围:早期在关西一带,目前 势力遍及东京都、北海道、大阪、 京都 成员数目:约 4 万人.
Advertisements

大教育家孔子 年 1 月 11 日,一座总高为 9.5 米的孔 子青铜雕像在国家博物馆北广场落成。 2011 年 1 月 11 日,一座总高为 9.5 米的孔 子青铜雕像在国家博物馆北广场落成。
世界读书日 4月23日.
董笑菊 电子信息与电气工程学院 计算机科学与工程系
古诗鉴赏 (常用答题方法 ).
兩性相處 主講人:孫晉芬老師.
世界侦探推理小说 史 话.
第三课 氓.
党的基本知识 ——从党的十八大修改通过的党章讲起.
梦想的力量 博湖一小 赵秀珍. 梦想的力量 博湖一小 赵秀珍 读课文,你有什么感受和体会,相互交流一下。还可以把自己想到的写下来。 瑞恩的梦想是什么?他是怎样实现自己的梦想的? 梦想的力量是什么? 读课文,你有什么感受和体会,相互交流一下。还可以把自己想到的写下来。
2、加一笔成新字 一 →二 二 →三、干、工 十 →土、士 口 →日、中 日 →目、白、田 月 →用 目 →自 木 →禾、本 大 →天、太、犬 人 →大、个 了 →子.
常州市戚墅堰实验中学 虞超群 执教 《诗经》选读 卫风·氓.
作文训练: 突出中心.
一、平面点集 定义: x、y ---自变量,u ---因变量. 点集 E ---定义域, --- 值域.
愛情直播不NG -破解戀愛迷思 嘉南藥理科技大學 學生輔導中心.
四组制作: 许顺楠、姬少丽、李澎、刘伏、 徐娅丽、李頔
被子植物的構造 營養器官 根 莖 葉 生殖器官 花 果實 種子.
歐洲社會的蛻變 中古時代的起迄年代為何? 何時開始西歐在各方面的復興是顯而易見的? 哪些活動的展現,代表西歐的振興? (一)十字軍東征
青年干部应具备的基本素质 主讲:裴雨林.
贴近教学 服务师生 方便老师.
第三课 走向自立人生.
第二章 人类传播的历史与发展.
毛泽东思想和中国特色社会主义理论体系概论 贵阳医学院神奇民族医药学院纲要、概论教研室
计算机与程序.
第4章 循环结构 程序设计2 本章主讲 赵家刚 计算机编程导论.
管理学基本知识.
失眠食疗 失眠,多由心情郁怒,精神紧张或病后脏腑功能失调所致。临床表现为入睡困难、夜间多醒、凌晨早醒、夜寐多梦,并因此引起头晕、乏力、健忘、烦躁易怒等症状,临床可分为心火上炎、心脾两虚、心肾不交等证型。
墨池记 曾巩.
滁州学院首届微课程教学设计竞赛 课程名称:高等数学 主讲人:胡贝贝 数学与金融学院.
Scratch 第5课 动作和方向.
义务教育课程标准实验教科书二年级下册 玲玲的画 山东滨州市无棣县棣丰街道中心小学 曹雪敏. 生活中有些事真有意思!要是肯动 脑筋,坏事也能变成好事;要是肯动脑 筋,看来不可能办成的事也能办成。碰 到问题,我们要认真想想,找到解决问 题的办法,做个善于思考的孩子。
歌咏对象是谁? 1)志洁行廉,爱国忠君真气节; 辞微旨远,经天纬地大诗篇。 2)翁去八百载,醉乡犹在; 山行六七里,亭影不孤。 3)刚直不阿,留得正气冲霄汉; 幽愁发愤,著成信史照尘寰。 4)世上疮痍,诗中圣哲; 人间疾苦,笔底波澜。 屈原 欧阳修 司马迁 杜甫.
项羽之死 司马迁.
第三章 古代汉语语法 3—1古汉语语法及其研究 一、《马氏文通》以前的《古汉语研究》
日常管理方法培训 东莞华强三洋电子有限公司注塑部 2008年08月29日.
----银行间的比较 论资本构成与充足率 淡 彩 的 黑 板 淡 彩 的 黑 板 金融73班 王艺霏 王 英
词 五 首.
第一章 神话.
文字取材: 林佩萱 湾生回家.
— —1998年全世界诺贝尔获奖者集会巴黎时的宣言
重点字词: 1、吾党之小子狂简 3、暴虎冯河 5、无所取材! 6、予所否者,天厌之 8、子哭之恸.
拾貳、 教育行政 一、教育行政的意義 教育行政,可視為國家對教育事務的管理 ,以增進教育效果。 教育行政,乃是一利用有限資源在教育參
課程銜接 九年一貫暫行綱要( )  九年一貫課程綱要( ) 國立台南大學數學教育系 謝 堅.
2.4 二元一次方程组的应用(1).
思想道德修养与法律基础 第一章 追求远大理想 坚定崇高信念.
OOSDL 靜宜大學資工系 蔡奇偉 副教授
Python入门培训演示 系统测试部 叶华 文件级别:公开
第 13 章 用CSS 設定 文字顏色與背景.
Shell Script 程式設計.
Creating Animated Apps (I) 靜宜大學資管系 楊子青
Screen Layout & Background Image
Python ——谁说简洁就不能强大? Gingko Studio.
Snake Battle 指導教授: 曾學文 組員: 鄭涵德 趙一驎
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
16 葡萄沟.
一九九四年九月五日.
Animation(動畫) 靜宜大學資工系 蔡奇偉 副教授
Case 工具-UML with Rational Rose
電腦遊戲設計-第十組 指導老師:江清水 資三B 謝孟穎 資三B 陳沛蓁 資三B 謝家蓉
注意:教程中给出的所有示例代码请勿直接拷贝使用!会引起不必要的错误!
Pygame之2048.
Disjoint Sets Michael Tsai 2013/05/14.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
第11章 物件互動行為塑模.
說話的藝術 香港仔工業學校 盧仲衡老師.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
第4章 Excel电子表格 Excel操作必须掌握的知识点: 掌握建立、打开、保存和编辑文档的基本操作 ;
用加減消去法解一元二次聯立方程式 台北縣立中山國中 第二團隊.
Presentation transcript:

Pygame 講者:張浩軒

Python簡介 Python的創始人為吉多·范羅蘇姆(Guido van Rossum) 名稱由來:作者非常喜歡一齣BBC的電視短劇《蒙 提·派森的飛行馬戲團》(Monty Python's Flying Circus) 膠水語言:能很好的和C語言、C++、Java整合 設計哲學:「優雅、明確、簡單」、「用一種方法, 最好是只有一種方法來做一件事」

Pygame簡介 一種跨平台 Python module 專為電子遊戲設計, 包含圖像、聲音。建立在SDL 基礎上。(SDL:是一套開放原始碼的跨平台多媒體 開發函式庫,使用C語言寫成。) 無需被低階語言束縛,簡化遊戲邏輯本身。 PyWeek:一個用Python語言開發遊戲的競賽。 http://pyweek.org/

如何開始 1. 安裝Python(建議安裝Python2): 官網:http://www.python.org/ 2. 安裝Pygame: 官網:http://www.pygame.org/wiki/about

Pygame Tutorial Tutorial: http://www.pygame.org/docs/ Example(Recommended): http://www.pygame.org/docs/tut/chimp/ChimpLi neByLine.html Cheat sheet(常用指令筆記): http://inventwithpython.com/pygamecheatsheet.p ng

Read Image

Read image fullname = os.path.join(‘data’, name) 把圖片檔path連結fullname,可提供之後讀取圖片 image = pygame.image.load(fullname) 讀取圖片 image = image.convert() 轉換成可以display的介面(pygame.Surface) http://www.pygame.org/docs/ref/surface.html

Read image if colorkey is -1: colorkey = image.get_at((0,0)) image.set_colorkey(colorkey, RLEACCEL) 若輸入的colorkey為-1的話,將圖片最左上角所代 表的顏色RGB值設為透明(達到去背效果) return image, image.get_rect() 回傳image本身,還有代表image的圖形大小和位置 ,get_rect()是傳回pygame.Rect

pygame.Rect Rect.move((x,y)) 回傳平移一個向量為(x,y)的Rect Rect. move_ip((x,y)) Rect本身會移動一個向量為(x,y),不回傳值 Rect. inflate((x,y)) 回傳一個x軸方向伸縮x倍,y軸方向伸縮y倍的Rect Rect. inflate_ip((x.y)) Rect本身會往x軸方向伸縮x倍,y軸方向伸縮y倍, 不回傳值

pygame.Rect Rect. colliderect(Rect) 若和輸入的Rect面積有overlap,回傳True Rect.copy() 複製一個跟原本Rect一模一樣的新Rect回傳 size, width, height,topleft, bottomleft, midleft, center, centerx…… 輸入Rect.XXX可以直接修改Rect的絕對位置 http://www.pygame.org/docs/ref/rect.html

pygame初始化&建立背景&螢幕 pygame的初始化 設定螢幕長為468,寬為60 建立螢幕的名稱 滑鼠移至螢幕上會消失 建立背景 確定背景和螢幕的大小一樣 背景顏色設定

建立背景文字&顯示螢幕 將背景畫在螢幕上 顯示螢幕

pygame.sprite pygame.sprite內含許多遊戲物件的base class,其 中Sprite為最簡單的class

pygame.sprite pygame.sprite.RenderPlain 為一種sprite的Group allsprites.draw(screen) 將allsprites內的所有sprite畫在screen上 pygame.display.flip() 顯示螢幕,flip()會使的圖形出現不會斷斷續續

pygame.sprite pygame.sprite.OrderedUpdates() 用draw時,會依照sprite加入Group的順序畫出圖 形,前面提到的RenderPlain則不會 http://www.pygame.org/docs/ref/sprite.html

整理:建立畫面的順序 1. pygame.display.set_mode((x,y))建立螢幕(screen) 2. 用pygame.Surface建立基本純色背景(background) 3. 將基本圖形、文字用blit畫在背景上 4. 將背景用blit畫在螢幕上 5. 將sprites的group用draw畫在螢幕上 6.用pygame.display.flip()顯示出螢幕

遊戲基本控制 #Main Loop while 1: clock.tick(60) 避免遊戲跑太快 #Handle Input Events for event in pygame.event.get(): if event.type == QUIT: return elif event.type == KEYDOWN: 鍵盤任意鍵按下 ……… elif event.type == MOUSEBUTTONDOWN: 滑鼠鍵按下 elif event.type is MOUSEBUTTONUP: 滑鼠鍵起來 #Draw Everything screen.blit(background, (0, 0)) allsprites.draw(screen) pygame.display.flip()

控制遊戲速度 clock = pygame.time.Clock() …… while 1: clock.tick(60) clock.tick(t) clock.tick()會計算自從上次呼叫clock.tick()經過多 少milliseconds。 若有輸入t值,會確保每秒不會運算超過t次,達到 降低while內運算速度的結果。 所以t值越小遊戲跑越慢。

如何讓兩個角色同時移動 移動時的動作,需要減緩電腦運算速度讓人眼看見 移動的效果 迴圈不能寫在控制遊戲frame的迴圈內,會造成一人 移動時另外一人不能移動 迴圈需要寫在定義角色的class內,針對每個遊戲 frame判斷是否移動