<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FirEar.Net &#187; python教學</title>
	<atom:link href="http://firear.net/blog/tag/python%e6%95%99%e5%ad%b8/feed/" rel="self" type="application/rss+xml" />
	<link>http://firear.net/blog</link>
	<description>For the Best, One is Enough</description>
	<lastBuildDate>Sun, 05 Sep 2010 05:12:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>遊戲設計-pygame</title>
		<link>http://firear.net/blog/2009/12/03/game-design-pygame/</link>
		<comments>http://firear.net/blog/2009/12/03/game-design-pygame/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 07:09:25 +0000</pubDate>
		<dc:creator>silau</dc:creator>
				<category><![CDATA[pygame]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python教學]]></category>
		<category><![CDATA[遊戲設計]]></category>

		<guid isPermaLink="false">http://firear.net/blog/?p=358</guid>
		<description><![CDATA[即將就要回香港了,要整理的東西有點多,所以也比較忙,但還是先將pygame的介紹完成吧!
Pygame是一系列的python modules,主要功能是遊戲製作。Pygame提供了很好的介面設計,對不同事件(event)操作,包括但不限於滑鼠,鍵盤,時間,物件接觸等等。而成品的容量也很小,同時亦可以簡單地移植到不同平台。繼承了Python動態編程的優點,pygame同樣可以快速完成一個Project。在pygame的首頁就有指出48小時完成一個遊戲,事實上,筆者的團體(5-6人)在RPI這邊亦的確在48小時之內完成一個2D遊戲。
用物件導向(面向對象,object oriented)的角度來看,遊戲包括的東西有game,timer,其他遊戲元素。理論上game包含一切其他元素,所以亦會負責判定物件碰撞,更新等問題。
依照上文新增一個newgame.py的文件,輸入以下內容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import pygame, sys
//載入所需文件, 包括其他元素,例如 player.py
&#160;
pygame.init&#40;&#41;
//初始化pygame
&#160;
clock=pygame.time.Clock&#40;&#41;
screen=pygame.display.set_mode&#40;&#40;400,300&#41;&#41;
//定義clock以及screen大小
&#160;
while True:
//main game loop
&#160;
    clock.tick&#40;50&#41;
    //控制刷新率&#40;frame rate&#41;在50ms一次
    events=pygame.event.get&#40;&#41;
    //獲取事件&#40;event&#41;,包括來自滑鼠以及鍵盤
&#160;
    for event in events:
    //取出所有event, 對每個event進行以下動作
&#160;
        if event.type==pygame.KEYDOWN:
        [...]]]></description>
		<wfw:commentRss>http://firear.net/blog/2009/12/03/game-design-pygame/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>遊戲設計-Python</title>
		<link>http://firear.net/blog/2009/11/28/python-game-design/</link>
		<comments>http://firear.net/blog/2009/11/28/python-game-design/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 07:47:02 +0000</pubDate>
		<dc:creator>silau</dc:creator>
				<category><![CDATA[pygame]]></category>
		<category><![CDATA[join]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python教學]]></category>
		<category><![CDATA[tuples]]></category>
		<category><![CDATA[遊戲設計]]></category>

		<guid isPermaLink="false">http://firear.net/blog/?p=272</guid>
		<description><![CDATA[Python是一種十分強大的語言,面向對象,跨平台,快速,直譯語言,腳本語言(scripting language),通用語言,膠水語言,全部都可以安在Python身上。Python最大特色是其简捷而清晰的语法特点,筆者曾經接觸過Pascal,C,Java,Ruby,無疑Python是當中最簡單明快的一種語言。只要你曾經接觸過任何電腦語言,你都會覺得Python易學易上手。
時下在Facebook流行的遊戲差不多都是用Flash寫成的,而大部分Web Game也不可以單由Python完成。在這樣的大環境之下,只學習Python顯然無法躋身於以上的平台遊戲,但學習仍可以了解遊戲設計的過程以及難點。我相信對於將來有心在遊戲界發展的朋友應該會有所啟發。上文提及過RPG Maker,其實Maker就是一個引擎,而我們的最終目標就是製作一個遊戲引擎。
我們首先由Python的一些簡單語發法開始吧!
打開Python Shell, 即是上文中提及過的IDLE(Python GUI)。
Shell的功能有兩個,一個是可以運行腳本(Script),另一個就跟Linux下的Shell一樣,可以執行語句和表達式,第二個功能對測試比較重要。嘗試輸入以下內容:
&#62;&#62;&#62; 1 + 1               
2
&#62;&#62;&#62; print 'hello world' 
hello world
&#62;&#62;&#62; x = 1               
&#62;&#62;&#62; y = 2
&#62;&#62;&#62; x + y
3
一行語法就可以完成其他高級語言若干行的Hello World啦!接下來正式進入程式時間,先創建Python文件,Python [...]]]></description>
		<wfw:commentRss>http://firear.net/blog/2009/11/28/python-game-design/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
