﻿define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);<?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>/dev/head &#187; pygame</title>
	<atom:link href="http://devhead.ru/cat/pygame/feed" rel="self" type="application/rss+xml" />
	<link>http://devhead.ru</link>
	<description>Статьи и видео уроки</description>
	<lastBuildDate>Mon, 30 Jan 2017 11:12:34 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.37</generator>
	<item>
		<title>Pygame на Android</title>
		<link>http://devhead.ru/read/pygame-na-android</link>
		<comments>http://devhead.ru/read/pygame-na-android#comments</comments>
		<pubDate>Wed, 11 Apr 2012 09:32:11 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=1583</guid>
		<description><![CDATA[Pygame Subset for Android отличная штука которая позволяет с минимальным количеством изменением кода портировать на Android,то что было написано для PC на библиотеке pygame. Помню что я как-то написал бинарные часы и сейчас меня приспичило их портировать, чтобы протестировать работоспособность. 1. Подключаем устройство по USB для режима отладки (Можно использовать виртуальную, но они достаточно сильно [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>Pygame Subset for Android</strong> отличная штука которая позволяет с минимальным количеством изменением кода портировать на Android,то что было написано для PC на библиотеке pygame. Помню что я как-то написал бинарные часы и сейчас меня приспичило их портировать, чтобы протестировать работоспособность.  <span id="more-1583"></span></p>
<p>1. Подключаем устройство по USB для режима отладки (Можно использовать виртуальную, но они достаточно сильно глючат)</p>
<blockquote><p>После подключения к компьютеру, включите режим отладки на телефоне(планшете)  Настройки --&gt; Для разработчиков --&gt;Отладка по USB</p></blockquote>
<p>2. <a href="http://pygame.renpy.org/dl/">Скачиваем и распаковываем последнюю версию.</a></p>
<p>3. Тестирование на недостающие компоненты</p>
<blockquote><p>$./android.py test</p></blockquote>
<p>4. Установка AndroidSDK</p>
<blockquote>
<pre>$./android.py installsdk</pre>
</blockquote>
<p>5. Создаём каталог</p>
<blockquote>
<pre>mkdir binaryclock</pre>
</blockquote>
<p>6. Создаём в папке  файл main.py с исходным кодом:</p>
<p>&nbsp;</p>
<pre class="brush: python">import pygame

# Import the android module. If we can't import it, set it to None - this
# lets us test it, and check to see if we want android-specific behavior.
try:
    import android
except ImportError:
    android = None


'''
************************************************************************
*Binary clock *
*Copyright (C) 2010 Komarov Alexander *
* *
*This program is free software: you can redistribute it and/or modify *
*it under the terms of the GNU General Public License as published by *
*the Free Software Foundation, either version 3 of the License, or *
*(at your option) any later version. *
* *
*This program is distributed in the hope that it will be useful, *
*but WITHOUT ANY WARRANTY; without even the implied warranty of *
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See t *
*GNU General Public License for more details. *
*
*You should have received a copy of the GNU General Public License *
*along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;. *
************************************************************************'''

import sys
import time
class Clock:
     screen=pygame.display.set_mode((640,480))
     def __init__(self):
          pygame.init()
          pygame.display.set_caption('Binary Clock')

     def main(self):
         
         while True:
             for e in pygame.event.get():
                 if e.type == pygame.QUIT:
                     exit(0)
                 elif e.type == pygame.KEYDOWN and e.key == pygame.K_ESCAPE:
                     exit(0)
             self.capture()
             self.logic()
             pygame.display.flip()
             time.sleep(0.5)

     def capture(self):

         #Hour
         #Row1
         pygame.draw.circle(self.screen, (255, 255, 255), (70, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (70, 300), 30 )
         #Row2
         pygame.draw.circle(self.screen, (255, 255, 255), (170, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (170, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (170, 200), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (170, 100), 30 )
         #Min
         #Row1
         pygame.draw.circle(self.screen, (255, 255, 255), (270, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (270, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (270, 200), 30 )
         #Row2
         pygame.draw.circle(self.screen, (255, 255, 255), (370, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (370, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (370, 200), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (370, 100), 30 )
         #Sec
         #Row1
         pygame.draw.circle(self.screen, (255, 255, 255), (470, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (470, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (470, 200), 30 )
         #Row2
         pygame.draw.circle(self.screen, (255, 255, 255), (570, 400), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (570, 300), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (570, 200), 30 )
         pygame.draw.circle(self.screen, (255, 255, 255), (570, 100), 30 )
     def logic(self):
         #Hour
         if int(time.asctime( time.localtime(time.time()) )[11])==1:
             pygame.draw.circle(self.screen, (255, 0, 0), (70, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[11])==2:
             pygame.draw.circle(self.screen, (255, 0, 0), (70, 300), 30 )

         if int(time.asctime( time.localtime(time.time()) )[12])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==6:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 200), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==7:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 300), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==8:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 100), 30 )
         if int(time.asctime( time.localtime(time.time()) )[12])==9:
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (170, 100), 30 )
         #Min
         if int(time.asctime( time.localtime(time.time()) )[14])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[14])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[14])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[14])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[14])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 200), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (270, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==6:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 200), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==7:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 300), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==8:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 100), 30 )
         if int(time.asctime( time.localtime(time.time()) )[15])==9:
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (370, 100), 30 )
        #Sec
         if int(time.asctime( time.localtime(time.time()) )[17])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[17])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[17])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[17])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[17])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (470, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==1:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==2:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==3:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==4:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==5:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==6:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 200), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 300), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==7:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 300), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 200), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==8:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 100), 30 )
         if int(time.asctime( time.localtime(time.time()) )[18])==9:
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 400), 30 )
            pygame.draw.circle(self.screen, (255, 0, 0), (570, 100), 30 )
     
     
start=Clock()
start.main()</pre>
<p>&nbsp;</p>
<p>Вы можите убедиться, что изминения с оригиналом минимальны. <a href="https://github.com/ignusius/BinaryClock/blob/master/binaryclock.py">Сравнить.</a></p>
<p>7.Конфигурирование проекта (нужно ответить на вопросы)</p>
<blockquote>
<pre>./android.py configure binaryclock</pre>
</blockquote>
<p>8. Сборка пакета и установка пакета на устройство</p>
<blockquote>
<pre>./android.py build binaryclock release install</pre>
</blockquote>
<p>Возможная ошибка<strong> <em>error</em>: <em>insufficient permissions for device</em></strong> Устройство не определено, чтобы оно корректно определилось, нужно сделать некоторые действия:</p>
<blockquote><p>#usb-devices</p></blockquote>
<blockquote><p>T:  Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 15 Spd=480 MxCh= 0<br />D:  Ver= 2.00 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1<br />P:  Vendor=18d1 ProdID=0003 Rev=02.30<br />S:  Manufacturer=USB Developer<br />S:  Product=Android<br />S:  SerialNumber=20080411<br />C:  #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=500mA<br />I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage<br />I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs</p></blockquote>
<p>В вашем случае может быть немного не такие параметры, из всего списка нам нужен Vendor=18d1</p>
<p>Добавляем строки:  #nano /etc/udev/rules.d/51-android.rules</p>
<blockquote>
<p>SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", &lt;---Vendor</p>
<p>SYMLINK+="android_adb", MODE="0666"</p>
</blockquote>
<div>Применяем права:</div>
<blockquote>
<div># chmod a+r /etc/udev/rules.d/51-android.rules</div>
</blockquote>
<div>Пробуем заново скомпилить проект.</div>
<p>&nbsp;</p>
<p>9.Отладка</p>
<blockquote>
<p>./android.py logcat</p>
</blockquote>
<h3>Ссылки:</h3>
<p><a href="http://pygame.renpy.org">http://pygame.renpy.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/pygame-na-android/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Бинарные часы</title>
		<link>http://devhead.ru/read/binarnye-chasy</link>
		<comments>http://devhead.ru/read/binarnye-chasy#comments</comments>
		<pubDate>Fri, 04 Mar 2011 12:48:21 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[красноглазие]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=1052</guid>
		<description><![CDATA[Всё началось, с того что я вспомнил старый ламповый KDE 3. На сколько я помню,там была штатная возможность отображать время на панели в BCD виде. Стал гуглить по запросу Вinary clock и попал на статью в Википедии. Решил, что будет интересно реализовать часы собственными силами :) За основу был взят язык python, а для графического [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Всё началось, с того что я вспомнил старый ламповый KDE 3. На сколько я помню,там была штатная возможность отображать время на панели в BCD виде. Стал гуглить по запросу <strong>Вinary clock</strong> и попал на статью в <a href="http://en.wikipedia.org/wiki/Binary_clock">Википедии. </a> Решил, что будет интересно реализовать часы собственными силами :) За основу был взят язык <a href="http://www.python.org/">python</a>, а для графического вывода библиотека <a href="http://www.pygame.org/">pygame</a>.</p>
<p><span id="more-1052"></span></p>
<p><strong>Вот принцип работы BCD часов:</strong> <strong> </strong><strong></strong></p>
<p><strong><a href="../../wp-content/uploads/2011/03/Binary_clock.png"><img class="alignleft size-full wp-image-1054" src="../../wp-content/uploads/2011/03/Binary_clock.png" height="110" width="150" /></a></strong><strong></strong></p>
<p><strong>Установка нужных пакетов</strong>:</p>
<blockquote><p>sudo apt-get install python-pygame</p></blockquote>
<p>Думаю особого разбора в принципе работы у вас не должно возникнуть! Чтобы не публиковать сюда код большой простынёй с ним можно ознакомится на нашем <a href="https://github.com/ignusius/BinaryClock"><strong>git</strong> репозитории.</a> <strong></strong></p>
<p><strong>Запуск:</strong></p>
<ul>
<li>Распакуем архив</li>
<li>cd  &lt;каталог куда распаковали&gt;</li>
<li>chmod +x binaryclock.py</li>
<li>./binaryclock.py</li>
</ul>
<p>После всех этих действий откровения окно и вы должны увидеть это:  <a href="../../wp-content/uploads/2011/03/Binary-Clock_002.png"><img class="alignleft size-full wp-image-1055" src="../../wp-content/uploads/2011/03/Binary-Clock_002.png" height="510" width="642" /></a> <strong> </strong></p>
<h2><strong>На часах 15:44:06!</strong></h2>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/binarnye-chasy/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->