<?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>В лабиринте извилин &#187; игры</title>
	<atom:link href="http://www.charnad.com/blog/tag/igry/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.charnad.com</link>
	<description>Блог-центр им. CharnaD</description>
	<lastBuildDate>Wed, 18 Jan 2012 14:52:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Python: играем с PyGame. Начало.</title>
		<link>http://www.charnad.com/blog/python-igraem-s-pygame-nachalo/</link>
		<comments>http://www.charnad.com/blog/python-igraem-s-pygame-nachalo/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 15:51:03 +0000</pubDate>
		<dc:creator>CharnaD</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[игры]]></category>

		<guid isPermaLink="false">http://www.charnad.com/?p=1062</guid>
		<description><![CDATA[В этом блоге почти все время я писал о PHP и немного о JS. Настало время разнообразить, и разнообразить свой блог я решил Питоном. О том, где взять Python и где поучиться я не буду, материалов полно, и большинство друг друга повторяют, в еще одном от меня смысла я не вижу. Чуть меньше примеров и [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.charnad.com/blog/wp-content/uploads/pictures/python_logo.png" alt="" style="float: left; padding-right: 5px;"/>
<p>В этом блоге почти все время я писал о PHP и немного о JS. Настало время разнообразить, и разнообразить свой блог я решил Питоном. О том, где <a href="http://python.org/">взять Python</a> и где <a href="http://diveintopython.org/">поучиться</a> я не буду, материалов полно, и большинство друг друга повторяют, в еще одном от меня смысла я не вижу. Чуть меньше примеров и статей про <a href="http://www.pygame.org">PyGame</a> - свободную графическую библиотеку, базирующуюся на SDL.</p>
<p><span id="more-1062"></span></p>
<p>Проблем с установкой, я надеюсь у вас не возникнет - либо запускате Windows инсталлер, а если вы в Linux - наверняка сами знаете. Не будем тянуть кота за хвост, откроем IDE, создадим проект и уже создадим хотя бы окошко.<br />
<strong>main.py</strong></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#! /usr/bin/python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
<span style="color: #ff7700;font-weight:bold;">import</span> pygame
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Game<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #808080; font-style: italic;">#Initial window settings</span>
        pygame.<span style="color: black;">init</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        pygame.<span style="color: black;">display</span>.<span style="color: black;">set_mode</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">640</span>, <span style="color: #ff4500;">480</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        pygame.<span style="color: black;">display</span>.<span style="color: black;">set_caption</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'I<span style="color: #000099; font-weight: bold;">\'</span>m super cool Python programmer'</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">run</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">#Run, Forrest, run</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> run<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">track_input</span><span style="color: black;">&#40;</span>pygame.<span style="color: black;">event</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> track_input<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, events<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">for</span> event <span style="color: #ff7700;font-weight:bold;">in</span> events:
            <span style="color: #808080; font-style: italic;">#Exit</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> event.<span style="color: #008000;">type</span> == pygame.<span style="color: black;">QUIT</span>:
                exit<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">#Here we go</span>
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    Game<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Сохраняете, запускаете, смотрите. Опа, окошечко. И даже закрывается по крестику. Теперь обьясню как это произошло. Сначала нам нужно импортировать pygame, иначе ничего не получится. Запуск скрипта начинается с последних строчек, которые создают экземпляр класса Game. Такая конструкция с переменной __name__ требуется для того, чтобы при импорте этой программы она не запускалась, а срабатывала только если файл запущен непосредственно. Функция __init__  в классе Game является чем-то вроде конструктора (но не конструктором!). Она вызывает метод pygame.init(), который инициализирует библиотеку, дальше вызываем метод pygame.display.set_mode((640, 480)), который и создает собственно окно размером 640х480. Обратите внимание, мы передаем кортеж, а не просто 2 числа. Дальше даем окну заголовок. На этом можно было бы и остановиться, программа уже будет работать. Но окно выскочит и закроется, потому что программа завершится. Чтобы этого не произошло запускаем функцию run(), которая представляет из себя бесконечный цикл вызовов функции track_input, которая принимает параметром события. И если произошло событие "Выход" (то самое нажатие по крестику), то закрываем. Все можно было бы уместить в одну функцию, но это задел на будущее.</p>
<p>Что же нам хочется дальше? Конечно же, чтобы что-то двигалось по стрелочкам. Почти в любой игре что-нибудь надо двигать, и у нас не будет исключение. Что же нужно? Нужно все так же следить за событиями, только теперь обрабатывать нажатия на кнопки стрелок. Чтобы удобнее было использовать направления (вверх, вправо, вниз, влево) обозначим их цифрами 0, 1, 2, 3. А чтобы не запутаться, введем переменные UP, RIGHT, DOWN, LEFT, которым и дадим эти значения. А переменные положим в отдельный файл directions.py и наступит ваще красота.<br />
<strong>directions.py</strong></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#! /usr/bin/python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    exit<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;
UP    = <span style="color: #ff4500;">0</span>
RIGHT = <span style="color: #ff4500;">1</span>
DOWN  = <span style="color: #ff4500;">2</span>
LEFT  = <span style="color: #ff4500;">3</span>
DIRECTIONS = <span style="color: black;">&#91;</span>UP, RIGHT, DOWN, LEFT<span style="color: black;">&#93;</span>
VERTICAL = <span style="color: black;">&#91;</span>UP, DOWN<span style="color: black;">&#93;</span>
HORIZONTAL = <span style="color: black;">&#91;</span>LEFT, RIGHT<span style="color: black;">&#93;</span></pre></div></div>

<p>Обьявили наши переменные и три списка, которые нам пригодятся в будущем. Вернемся в main.py. Добавим к списку импортов directions.py:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> directions</pre></div></div>

<p>В класс Game добавим словарь и 3 переменные:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">x = <span style="color: #ff4500;">100</span>
y = <span style="color: #ff4500;">100</span>
speed = <span style="color: #ff4500;">3</span>
&nbsp;
keymap = <span style="color: black;">&#123;</span>
    pygame.<span style="color: black;">K_LEFT</span>  : directions.<span style="color: black;">LEFT</span>,
    pygame.<span style="color: black;">K_UP</span>    : directions.<span style="color: black;">UP</span>,
    pygame.<span style="color: black;">K_RIGHT</span> : directions.<span style="color: black;">RIGHT</span>,
    pygame.<span style="color: black;">K_DOWN</span>  : directions.<span style="color: black;">DOWN</span>
<span style="color: black;">&#125;</span></pre></div></div>

<p>Три переменные будут отвечать за положение и скорость перемещения объекта. А словарь ставит в соответствие клавиши и направления. Я надеюсь, что очевидно, что когда мы будем нажимать на какую-то кнопку, благодаря этому словарю мы узнаем в каком направлении надо двигать наш игровой объект, из положения x,y на speed пикселей. Далее в track_input добавляем в цикл:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">if</span> event.<span style="color: #008000;">type</span> == pygame.<span style="color: black;">KEYDOWN</span> <span style="color: #ff7700;font-weight:bold;">and</span> event.<span style="color: black;">key</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">keymap</span>.<span style="color: black;">keys</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: #008000;">self</span>.<span style="color: black;">keymap</span><span style="color: black;">&#91;</span>event.<span style="color: black;">key</span><span style="color: black;">&#93;</span> <span style="color: #ff7700;font-weight:bold;">in</span> directions.<span style="color: black;">DIRECTIONS</span>:
    <span style="color: #008000;">self</span>.<span style="color: black;">move</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">keymap</span><span style="color: black;">&#91;</span>event.<span style="color: black;">key</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Здесь мы проверяем, что нажата кнопка (нажатия мышки и т.п. нас сейчас не интересуют) и что кнопка указана среди keymap, и то, что по выбранной кнопке в keymap стоит нормальное направление. И если все в порядке - вызываем функцию move с параметром "направление" из словаря.<br />
В Python, насколько я знаю, нету операции switch/case, поэтому здесь мы будем делать финт ушами. Вот функция move, которую мы кладем все в тот же класс Game:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> move<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, direction<span style="color: black;">&#41;</span>:
    movement = <span style="color: black;">&#123;</span>
        directions.<span style="color: black;">UP</span>       : <span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>,            <span style="color: #008000;">self</span>.<span style="color: black;">y</span>-<span style="color: #008000;">self</span>.<span style="color: black;">speed</span><span style="color: black;">&#93;</span>,
        directions.<span style="color: black;">RIGHT</span>  : <span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>+<span style="color: #008000;">self</span>.<span style="color: black;">speed</span>, <span style="color: #008000;">self</span>.<span style="color: black;">y</span><span style="color: black;">&#93;</span>,
        directions.<span style="color: black;">DOWN</span>  : <span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>,            <span style="color: #008000;">self</span>.<span style="color: black;">y</span>+<span style="color: #008000;">self</span>.<span style="color: black;">speed</span><span style="color: black;">&#93;</span>,
        directions.<span style="color: black;">LEFT</span>    : <span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>-<span style="color: #008000;">self</span>.<span style="color: black;">speed</span>, <span style="color: #008000;">self</span>.<span style="color: black;">y</span><span style="color: black;">&#93;</span>
    <span style="color: black;">&#125;</span>
    <span style="color: #008000;">self</span>.<span style="color: black;">x</span>, <span style="color: #008000;">self</span>.<span style="color: black;">y</span> = movement<span style="color: black;">&#91;</span>direction<span style="color: black;">&#93;</span></pre></div></div>

<p>Здесь у нас словарь с направлениями, по которым лежат списки с изменением параметров x и y, и когда вызывается нужное направление с помощью множественного присваивания мы изменяем сразу x и y.<br />
Ну и наконец, в run() добавляем код, который будет рисовать нам маленький беленький квадратик, который и будет двигаться от наших нажатых кнопок.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">pygame.<span style="color: black;">display</span>.<span style="color: black;">get_surface</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">fill</span><span style="color: black;">&#40;</span>pygame.<span style="color: black;">Color</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
block = pygame.<span style="color: black;">Surface</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">10</span>, <span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
block.<span style="color: black;">fill</span><span style="color: black;">&#40;</span>pygame.<span style="color: black;">Color</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
pygame.<span style="color: black;">display</span>.<span style="color: black;">get_surface</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">blit</span><span style="color: black;">&#40;</span>block, <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>, <span style="color: #008000;">self</span>.<span style="color: black;">y</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span>
pygame.<span style="color: black;">display</span>.<span style="color: black;">flip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Давайте теперь посмотрим что у нас получилось.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#! /usr/bin/python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
<span style="color: #ff7700;font-weight:bold;">import</span> pygame
<span style="color: #ff7700;font-weight:bold;">import</span> directions
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Game<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
&nbsp;
    x = <span style="color: #ff4500;">100</span>
    y = <span style="color: #ff4500;">100</span>
    speed = <span style="color: #ff4500;">3</span>
&nbsp;
    keymap = <span style="color: black;">&#123;</span>
        pygame.<span style="color: black;">K_LEFT</span>  : directions.<span style="color: black;">LEFT</span>,
        pygame.<span style="color: black;">K_UP</span>    : directions.<span style="color: black;">UP</span>,
        pygame.<span style="color: black;">K_RIGHT</span> : directions.<span style="color: black;">RIGHT</span>,
        pygame.<span style="color: black;">K_DOWN</span>  : directions.<span style="color: black;">DOWN</span>
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #808080; font-style: italic;">#Initial window settings</span>
        pygame.<span style="color: black;">init</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        pygame.<span style="color: black;">display</span>.<span style="color: black;">set_mode</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">640</span>, <span style="color: #ff4500;">480</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        pygame.<span style="color: black;">display</span>.<span style="color: black;">set_caption</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'I<span style="color: #000099; font-weight: bold;">\'</span>m super cool Python programmer'</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">run</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> run<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">track_input</span><span style="color: black;">&#40;</span>pygame.<span style="color: black;">event</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            pygame.<span style="color: black;">display</span>.<span style="color: black;">get_surface</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">fill</span><span style="color: black;">&#40;</span>pygame.<span style="color: black;">Color</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            block = pygame.<span style="color: black;">Surface</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">10</span>, <span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            block.<span style="color: black;">fill</span><span style="color: black;">&#40;</span>pygame.<span style="color: black;">Color</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            pygame.<span style="color: black;">display</span>.<span style="color: black;">get_surface</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">blit</span><span style="color: black;">&#40;</span>block, <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>, <span style="color: #008000;">self</span>.<span style="color: black;">y</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span>
            pygame.<span style="color: black;">display</span>.<span style="color: black;">flip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> track_input<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, events<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">for</span> event <span style="color: #ff7700;font-weight:bold;">in</span> events:
            <span style="color: #808080; font-style: italic;">#Exit</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> event.<span style="color: #008000;">type</span> == pygame.<span style="color: black;">QUIT</span>:
                exit<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> event.<span style="color: #008000;">type</span> == pygame.<span style="color: black;">KEYDOWN</span> <span style="color: #ff7700;font-weight:bold;">and</span> event.<span style="color: black;">key</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">keymap</span>.<span style="color: black;">keys</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: #008000;">self</span>.<span style="color: black;">keymap</span><span style="color: black;">&#91;</span>event.<span style="color: black;">key</span><span style="color: black;">&#93;</span> <span style="color: #ff7700;font-weight:bold;">in</span> directions.<span style="color: black;">DIRECTIONS</span>:
                <span style="color: #008000;">self</span>.<span style="color: black;">move</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">keymap</span><span style="color: black;">&#91;</span>event.<span style="color: black;">key</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> move<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, direction<span style="color: black;">&#41;</span>:
        movement = <span style="color: black;">&#123;</span>
            directions.<span style="color: black;">UP</span> : <span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>,            <span style="color: #008000;">self</span>.<span style="color: black;">y</span>-<span style="color: #008000;">self</span>.<span style="color: black;">speed</span><span style="color: black;">&#93;</span>,
            directions.<span style="color: black;">RIGHT</span> : <span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>+<span style="color: #008000;">self</span>.<span style="color: black;">speed</span>, <span style="color: #008000;">self</span>.<span style="color: black;">y</span><span style="color: black;">&#93;</span>,
            directions.<span style="color: black;">DOWN</span> : <span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>,            <span style="color: #008000;">self</span>.<span style="color: black;">y</span>+<span style="color: #008000;">self</span>.<span style="color: black;">speed</span><span style="color: black;">&#93;</span>,
            directions.<span style="color: black;">LEFT</span> : <span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>-<span style="color: #008000;">self</span>.<span style="color: black;">speed</span>, <span style="color: #008000;">self</span>.<span style="color: black;">y</span><span style="color: black;">&#93;</span>
        <span style="color: black;">&#125;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">x</span>, <span style="color: #008000;">self</span>.<span style="color: black;">y</span> = movement<span style="color: black;">&#91;</span>direction<span style="color: black;">&#93;</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    Game<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Запускаем, и... видим маленький беленький квадратик, который двигается когда мы тыкаем стрелочки. Хотелось бы плавные движения пока нажата клавиша, правда? Но об этом в другой раз.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.charnad.com/blog/python-igraem-s-pygame-nachalo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Отдам ключ StarCraft II Бета</title>
		<link>http://www.charnad.com/blog/otdam-klyuch-starcraft-ii-beta/</link>
		<comments>http://www.charnad.com/blog/otdam-klyuch-starcraft-ii-beta/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 23:23:12 +0000</pubDate>
		<dc:creator>CharnaD</dc:creator>
				<category><![CDATA[Обо мне]]></category>
		<category><![CDATA[starcraft 2]]></category>
		<category><![CDATA[игры]]></category>

		<guid isPermaLink="false">http://www.charnad.com/?p=1024</guid>
		<description><![CDATA[Вот такие дела. Пишите комментарии - выберу время и среди комментаторов случайным образом отдам ключ. Если победитель откажется - я передам ключ второму в списке, если откажется второй - третьему, если откажется третий - разыграю среди тех, кто вылетел в полуфинале. Победитель Riot. Всем спасибо за участие. Ромка и Никита, если я буду проводить следующие [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.charnad.com/blog/wp-content/uploads/pictures/sc2key/sc2key.png" alt="" align="center"/></p>
<p>Вот такие дела. Пишите комментарии - выберу время и среди комментаторов случайным образом отдам ключ.</p>
<p><span id="more-1024"></span></p>
<p>Если победитель откажется - я передам ключ второму в списке, если откажется второй - третьему, если откажется третий - разыграю среди тех, кто вылетел в полуфинале. Победитель Riot. Всем спасибо за участие. Ромка и Никита, если я буду проводить следующие конкурсы и вы захотите принять в нем участие - обещаю вам привелегии. Я бы вас чем-нибудь наградил за 2-3 место, но у меня вроде ничего такого нету.</p>
<p>Результаты:<br />
Первое место:   17. Riot a*******t@gmail.com<br />
Второе место:   16. Ромка q****4@mail.ru<br />
Третье место:   12. Никита g***********o@yandex.ru</p>
<p>Вылетели после полу-финала:<br />
8. Георгий g*******s@gmail.com<br />
13. Serg v***********s@gmail.com<br />
24. GORN l***********6@yahoo.com</p>
<p>Вылетели после второго раунда:<br />
1. Олег o******1@rambler.ru<br />
2. MaksimOK m**************2@yandex.ru<br />
3. Nightmarko n*********e@gmail.com<br />
4. Dr.Damage b***n@meta.ua<br />
5. gek0n g***n@ukr.net<br />
6. Таня t***********a@rambler.ru<br />
11. Drox d********r@gmail.com<br />
19. Alex A***********y@mail.ru<br />
20. fixx f*****f@gmail.com<br />
21. sk2flash s******h@mail.ru</p>
<p>Вылетели из розыгрыша после первого раунда:<br />
7. Игорь b*********_i@mail.ru<br />
9. Юрий t******n@mail.ru<br />
10. Andrey a*****l@uralweb.ru<br />
14. ivan b********v@gmail.com<br />
15. z96965 z****5@yandex.com<br />
18. Alex Snet **@alexsnet.ru<br />
22. Tama a*******a@gmail.com<br />
23. Roma j*****4@gmail.com<br />
25. KoLT f*****h@ya.ru</p>
<h2>Первый раунд</h2>
<p><img src="http://www.charnad.com/blog/wp-content/uploads/pictures/sc2key/round1.png" alt="" align="center"/></p>
<h2>Второй раунд</h2>
<p><img src="http://www.charnad.com/blog/wp-content/uploads/pictures/sc2key/round2.png" alt="" align="center"/></p>
<h2>Полу-финал</h2>
<p><img src="http://www.charnad.com/blog/wp-content/uploads/pictures/sc2key/round3.png" alt="" align="center"/></p>
<h2>Финал</h2>
<p><img src="http://www.charnad.com/blog/wp-content/uploads/pictures/sc2key/final.png" alt="" align="center"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.charnad.com/blog/otdam-klyuch-starcraft-ii-beta/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
	</channel>
</rss>

