<?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>GameMaker.it &#187; Programmazione</title>
	<atom:link href="http://www.gamemaker.it/blog/category/prog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gamemaker.it/blog</link>
	<description>Creazione di Videogiochi in 2D</description>
	<lastBuildDate>Sat, 16 Jan 2010 03:54:00 +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 &#8211; Engine basilare</title>
		<link>http://www.gamemaker.it/blog/2010/01/16/pygame-engine-basilare/</link>
		<comments>http://www.gamemaker.it/blog/2010/01/16/pygame-engine-basilare/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 02:36:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.gamemaker.it/blog/?p=73</guid>
		<description><![CDATA[Ho trovato del codice che avevo scritto più di un anno fa e lo pubblico, è una base utile per capire come funziona pygame, un motore per il linguaggio python basato sulle sdl che offre rispetto ad esse una vasta gamma di funzioni orientate ai giochi a partire dalla classe ...]]></description>
			<content:encoded><![CDATA[<p>Ho trovato del codice che avevo scritto più di un anno fa e lo pubblico, è una base utile per capire come funziona pygame, un motore per il linguaggio python basato sulle sdl che offre rispetto ad esse una vasta gamma di funzioni orientate ai giochi a partire dalla classe sprite.<br />
Per comodità ho messo ogni classe in una finestra diversa ma per provarlo mettete tutto in un&#8217;unico sorgente <img src='http://www.gamemaker.it/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div class="codecolorer-container python blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:300px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span><br />
<span style="color: #ff7700;font-weight:bold;">import</span> pygame, <span style="color: #dc143c;">os</span>, <span style="color: #dc143c;">sys</span><br />
<span style="color: #ff7700;font-weight:bold;">from</span> pygame.<span style="color: #008000;">locals</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span><br />
<br />
__all__ = <span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;keys&quot;</span>,<span style="color: #483d8b;">&quot;mouse&quot;</span>,<span style="color: #483d8b;">&quot;GameWindow&quot;</span>,<span style="color: #483d8b;">&quot;ImageLoader&quot;</span>,<span style="color: #483d8b;">&quot;FontManager&quot;</span><span style="color: black;">&#93;</span><br />
<span style="color: #808080; font-style: italic;">#variabili globali</span><br />
keys = <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span><br />
mouse = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">class</span> GameWindow:<br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">global</span> schermo,keys,mouse<br />
&nbsp; game_running = <span style="color: #008000;">True</span><br />
&nbsp; mouse_max = 12<br />
&nbsp; fps = 60<br />
&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>,title,width=640,height=480,keylist=<span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">width</span> = width<br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">height</span> = height<br />
&nbsp; &nbsp; pygame.<span style="color: black;">init</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">schermo</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>width,height<span style="color: black;">&#41;</span>,DOUBLEBUF<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; pygame.<span style="color: black;">display</span>.<span style="color: black;">set_caption</span><span style="color: black;">&#40;</span>title<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">keylist</span> = keylist<br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">mouse</span> = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">keys</span> = <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">mouse_max</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">mouse</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #008000;">False</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">keylist</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">keys</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> = <span style="color: #008000;">False</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">#esporto in modo che e' possibile accedervi tramite var globali</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">global</span> keys,mouse<br />
&nbsp; &nbsp; schermo = <span style="color: #008000;">self</span>.<span style="color: black;">schermo</span><br />
&nbsp; &nbsp; keys = <span style="color: #008000;">self</span>.<span style="color: black;">keys</span><br />
&nbsp; &nbsp; mouse = <span style="color: #008000;">self</span>.<span style="color: black;">mouse</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> game_end<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; pygame.<span style="color: black;">display</span>.<span style="color: black;">quit</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span>0<span style="color: black;">&#41;</span><br />
&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>:<br />
&nbsp; &nbsp; clock = pygame.<span style="color: #dc143c;">time</span>.<span style="color: black;">Clock</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">game_running</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; clock.<span style="color: black;">tick</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">fps</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> evento <span style="color: #ff7700;font-weight:bold;">in</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>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: #008000;">input</span><span style="color: black;">&#40;</span>evento<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">update</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">draw</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; 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><br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">game_end</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #008000;">input</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,evento<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> evento.<span style="color: #008000;">type</span> == QUIT <span style="color: #ff7700;font-weight:bold;">or</span> <span style="color: black;">&#40;</span>evento.<span style="color: #008000;">type</span> == KEYDOWN <span style="color: #ff7700;font-weight:bold;">and</span> evento.<span style="color: black;">key</span> == K_ESCAPE<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.__class__.<span style="color: black;">game_running</span> = <span style="color: #008000;">False</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> evento.<span style="color: #008000;">type</span> == KEYDOWN:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> evento.<span style="color: black;">key</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">keylist</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">keys</span><span style="color: black;">&#91;</span>evento.<span style="color: black;">key</span><span style="color: black;">&#93;</span> = <span style="color: #008000;">True</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">elif</span> evento.<span style="color: #008000;">type</span> == KEYUP:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> evento.<span style="color: black;">key</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">keylist</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">keys</span><span style="color: black;">&#91;</span>evento.<span style="color: black;">key</span><span style="color: black;">&#93;</span> = <span style="color: #008000;">False</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">elif</span> evento.<span style="color: #008000;">type</span> == MOUSEBUTTONDOWN:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">mouse</span><span style="color: black;">&#91;</span>evento.<span style="color: black;">button</span><span style="color: black;">&#93;</span> = <span style="color: #008000;">True</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">elif</span> evento.<span style="color: #008000;">type</span> == MOUSEBUTTONUP:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">mouse</span><span style="color: black;">&#91;</span>evento.<span style="color: black;">button</span><span style="color: black;">&#93;</span> = <span style="color: #008000;">False</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> update<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">pass</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> draw<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">schermo</span>.<span style="color: black;">fill</span><span style="color: black;">&#40;</span>0x39d2c2<span style="color: black;">&#41;</span></div></div>
<div class="codecolorer-container python blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">class</span> ImageLoader:<br />
&nbsp; img_path = <span style="color: #483d8b;">&quot;img&quot;</span> <span style="color: #808080; font-style: italic;">#la cartella dentro cui mettere le immagini</span><br />
&nbsp; ext = <span style="color: #483d8b;">&quot;.png&quot;</span> <br />
&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>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> pygame.<span style="color: black;">image</span>.<span style="color: black;">get_extended</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">raise</span> <span style="color: #008000;">SystemExit</span>, <span style="color: #483d8b;">&quot;Spiacente, e' necessaria la libreria SDL_image!&quot;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> image_path<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,name<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">img_path</span>,name+<span style="color: #008000;">self</span>.<span style="color: black;">ext</span><span style="color: black;">&#41;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> image_load<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,name<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; img_name = <span style="color: #008000;">self</span>.<span style="color: black;">image_path</span><span style="color: black;">&#40;</span>name<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">try</span>:<br />
&nbsp; &nbsp; &nbsp; img = pygame.<span style="color: black;">image</span>.<span style="color: black;">load</span><span style="color: black;">&#40;</span>img_name<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">except</span> pygame.<span style="color: black;">error</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">raise</span> <span style="color: #008000;">SystemExit</span>, <span style="color: #483d8b;">'Impossibile caricare &quot;%s&quot; %s'</span><span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>img_name, pygame.<span style="color: black;">get_error</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> img.<span style="color: black;">convert</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> image_load_raw<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,name<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; img_name = <span style="color: #008000;">self</span>.<span style="color: black;">image_path</span><span style="color: black;">&#40;</span>name<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">try</span>:<br />
&nbsp; &nbsp; &nbsp; img = pygame.<span style="color: black;">image</span>.<span style="color: black;">load</span><span style="color: black;">&#40;</span>img_name<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">except</span> pygame.<span style="color: black;">error</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">raise</span> <span style="color: #008000;">SystemExit</span>, <span style="color: #483d8b;">'Impossibile caricare &quot;%s&quot; %s'</span><span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>img_name, pygame.<span style="color: black;">get_error</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> img</div></div>
<div class="codecolorer-container python blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">class</span> FontManager:<br />
&nbsp; f_path = <span style="color: #483d8b;">&quot;font&quot;</span><br />
&nbsp; ext = <span style="color: #483d8b;">&quot;.ttf&quot;</span><br />
&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>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> pygame.<span style="color: black;">font</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">raise</span> <span style="color: #008000;">SystemExit</span>, <span style="color: #483d8b;">&quot;Spiacente, e' necessaria la libreria SDL_font!&quot;</span><br />
&nbsp; &nbsp; pygame.<span style="color: black;">font</span>.<span style="color: black;">init</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">font_list</span> = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> set_target<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,schermo<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">schermo</span> = schermo<br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> font_path<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,name<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">f_path</span>,name+<span style="color: #008000;">self</span>.<span style="color: black;">ext</span><span style="color: black;">&#41;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> font_load<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,name,size<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; f_name = <span style="color: #008000;">self</span>.<span style="color: black;">font_path</span><span style="color: black;">&#40;</span>name<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">try</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">font_list</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span>pygame.<span style="color: black;">font</span>.<span style="color: black;">Font</span><span style="color: black;">&#40;</span>f_name,size<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">except</span> pygame.<span style="color: black;">error</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">raise</span> <span style="color: #008000;">SystemExit</span>, <span style="color: #483d8b;">'Impossibile caricare &quot;%s&quot; %s'</span><span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>f_name, pygame.<span style="color: black;">get_error</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">font_list</span><span style="color: black;">&#41;</span>-1<br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> text<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,font_id,testo,colore<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">font_list</span><span style="color: black;">&#91;</span>font_id<span style="color: black;">&#93;</span>.<span style="color: black;">render</span><span style="color: black;">&#40;</span>testo,<span style="color: #008000;">True</span>,colore<span style="color: black;">&#41;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> draw_text<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,x,y,testo<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">schermo</span>.<span style="color: black;">blit</span><span style="color: black;">&#40;</span>testo,<span style="color: black;">&#40;</span>x,y<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></div></div>
<div class="codecolorer-container python blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#in sviluppo&nbsp; &nbsp; </span><br />
<span style="color: #ff7700;font-weight:bold;">class</span> SoundManager:<br />
&nbsp; snd_path = <span style="color: #483d8b;">&quot;sound&quot;</span><br />
&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>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> pygame.<span style="color: black;">mixer</span>:<br />
&nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">raise</span> <span style="color: #008000;">SystemExit</span>, <span style="color: #483d8b;">&quot;Spiacente e' necessaria la libreria SDL_mixer!&quot;</span><br />
&nbsp; &nbsp; pygame.<span style="color: black;">mixer</span>.<span style="color: black;">init</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">sound_list</span> = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> sound_path<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,name<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">snd_path</span>,name<span style="color: black;">&#41;</span><br />
&nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> sound_load<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,name,loop<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">pass</span></div></div>
<div class="codecolorer-container python blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:<br />
&nbsp; app = GameWindow<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Example&quot;</span><span style="color: black;">&#41;</span><br />
&nbsp; app.<span style="color: black;">run</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.gamemaker.it/blog/2010/01/16/pygame-engine-basilare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gosu: Mostrare una Immagine</title>
		<link>http://www.gamemaker.it/blog/2009/11/22/gosu-mostrare-un-immagine/</link>
		<comments>http://www.gamemaker.it/blog/2009/11/22/gosu-mostrare-un-immagine/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 23:53:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Gosu]]></category>

		<guid isPermaLink="false">http://www.gamemaker.it/blog/?p=25</guid>
		<description><![CDATA[Nella cartella del nostro progetto creaiamo una cartella di nome img ed inseriamo al suo interno un file PNG di nome sfondo.png di dimensioni 640&#215;480 (può essere quello che volete, anche uno scarabocchio in paint  )
E&#8217; molto semplice caricare e mostrare una immagine a schermo, bastano due semplici comandi!
Prendiamo ...]]></description>
			<content:encoded><![CDATA[<p>Nella cartella del nostro progetto creaiamo una cartella di nome img ed inseriamo al suo interno un file PNG di nome sfondo.png di dimensioni 640&#215;480 (può essere quello che volete, anche uno scarabocchio in paint <img src='http://www.gamemaker.it/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )<br />
E&#8217; molto semplice caricare e mostrare una immagine a schermo, bastano due semplici comandi!</p>
<p>Prendiamo Esempio1.rb creato in precedenza come base e creiamo </p>
<p><strong>Esempio2.rb</strong></p>
<div class="codecolorer-container ruby blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#9966CC; font-weight:bold;">begin</span><br />
&nbsp; <span style="color:#008000; font-style:italic;"># Se hai installato Gosu da Rubygems</span><br />
&nbsp; <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span><br />
<span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#CC00FF; font-weight:bold;">LoadError</span><br />
&nbsp; <span style="color:#008000; font-style:italic;"># Altrimenti</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'gosu'</span><br />
<br />
<span style="color:#9966CC; font-weight:bold;">class</span> GameWindow <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">Gosu::Window</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> initialize<br />
&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">super</span><span style="color:#006600; font-weight:bold;">&#40;</span>640,480,<span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#008000; font-style:italic;">#(width,height, fullscreen)</span><br />
&nbsp; &nbsp; <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">caption</span> = <span style="color:#996600;">&quot;Gioco 1&quot;</span> <span style="color:#008000; font-style:italic;">#titolo dell'applicazione</span><br />
&nbsp; &nbsp; <span style="color:#0066ff; font-weight:bold;">@image</span> = <span style="color:#6666ff; font-weight:bold;">Gosu::Image</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">self</span>,<span style="color:#996600;">&quot;img/sfondo.png&quot;</span>,<span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> update<br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> draw<br />
&nbsp; &nbsp; <span style="color:#0066ff; font-weight:bold;">@image</span>.<span style="color:#9900CC;">draw</span><span style="color:#006600; font-weight:bold;">&#40;</span>0,0,1<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> button_down<span style="color:#006600; font-weight:bold;">&#40;</span>id<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; <span style="color:#008000; font-style:italic;">#se hai premuto Esc</span><br />
&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">if</span> id == <span style="color:#6666ff; font-weight:bold;">Gosu::Button::KbEscape</span> <span style="color:#9966CC; font-weight:bold;">then</span><br />
&nbsp; &nbsp; &nbsp; close <span style="color:#008000; font-style:italic;">#chiude il programma</span><br />
&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<br />
window = GameWindow.<span style="color:#9900CC;">new</span><br />
window.<span style="color:#9900CC;">show</span> <span style="color:#008000; font-style:italic;">#avvia il main loop</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.gamemaker.it/blog/2009/11/22/gosu-mostrare-un-immagine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introduzione a Ruby e Gosu</title>
		<link>http://www.gamemaker.it/blog/2009/11/21/introduzione-ruby-gosu/</link>
		<comments>http://www.gamemaker.it/blog/2009/11/21/introduzione-ruby-gosu/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 13:18:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Gosu]]></category>

		<guid isPermaLink="false">http://www.gamemaker.it/blog/?p=3</guid>
		<description><![CDATA[Inauguro il blog parlando un po&#8217; di Ruby  
Il Ruby è un linguaggio ad oggetti molto semplice ed ultimamente grazie ai progressi hardware con processori sempre più potenti, sia grazie ad ottimizzazioni software degli interpreti è diventato a tutti gli effetti un linguaggio dignitoso anche per sviluppare applicazioni desktop ...]]></description>
			<content:encoded><![CDATA[<p>Inauguro il blog parlando un po&#8217; di Ruby <img src='http://www.gamemaker.it/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Il Ruby è un linguaggio ad oggetti molto semplice ed ultimamente grazie ai progressi hardware con processori sempre più potenti, sia grazie ad ottimizzazioni software degli interpreti è diventato a tutti gli effetti un linguaggio dignitoso anche per sviluppare applicazioni desktop performanti, in particolare videogiochi 2D.</p>
<p>Quello che mostrerò saranno delle brevi applicazioni di ruby attraverso la libreria <a title="Gosu" href="http://www.libgosu.org/" target="_blank">Gosu</a>.<br />
Gosu è una libreria per creare videogiochi 2D avvalendosi delle OpenGL, utilizzabile sia tramite Ruby che C++.</p>
<p><strong>Installazione</strong></p>
<ul>
<li>Scaricare ed installare <a title="Ruby 1.86 Windows" href="http://rubyforge.org/frs/download.php/47082/ruby186-27_rc2.exe" target="_blank">Ruby 1.86 One Click Installer</a> su Windows oppure su Linux Debian-based digitare nella bash
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ruby irb rdoc</div></div>
</li>
<li>Scaricare <a title="Gosu for Windows 0.7.15" href="http://gosu.googlecode.com/files/gosu-windows-ruby-0.7.15.zip" target="_blank">Gosu Windows Ruby</a> oppure i sorgenti da compilare se siete su Linux <a title="Gosu Source 0.7.15" href="http://gosu.googlecode.com/files/gosu-source-0.7.15.tar.gz" target="_blank">Gosu Source</a></li>
<li>Su Windows copia il contenuto della cartella lib nella directory del tuo progetto es. C:\ruby\giochi</li>
<li>Creare il file Esempio1.rb nella suddetta cartella, scriverci dentro il codice seguente ed avviarlo <img src='http://www.gamemaker.it/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p><strong>Esempio1.rb</strong></p>
<div class="codecolorer-container ruby blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#9966CC; font-weight:bold;">begin</span><br />
&nbsp; <span style="color:#008000; font-style:italic;"># Se hai installato Gosu da Rubygems</span><br />
&nbsp; <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span><br />
<span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#CC00FF; font-weight:bold;">LoadError</span><br />
&nbsp; <span style="color:#008000; font-style:italic;"># Altrimenti</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'gosu'</span><br />
<br />
<span style="color:#9966CC; font-weight:bold;">class</span> GameWindow <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">Gosu::Window</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> initialize<br />
&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">super</span><span style="color:#006600; font-weight:bold;">&#40;</span>640,480,<span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#008000; font-style:italic;">#(width,height, fullscreen)</span><br />
&nbsp; &nbsp; <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">caption</span> = <span style="color:#996600;">&quot;Gioco 1&quot;</span> <span style="color:#008000; font-style:italic;">#titolo</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> update<br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> draw<br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">def</span> button_down<span style="color:#006600; font-weight:bold;">&#40;</span>id<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; <span style="color:#008000; font-style:italic;">#se hai premuto Esc</span><br />
&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">if</span> id == <span style="color:#6666ff; font-weight:bold;">Gosu::Button::KbEscape</span> <span style="color:#9966CC; font-weight:bold;">then</span><br />
&nbsp; &nbsp; &nbsp; close <span style="color:#008000; font-style:italic;">#chiude il programma</span><br />
&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<br />
window = GameWindow.<span style="color:#9900CC;">new</span><br />
window.<span style="color:#9900CC;">show</span> <span style="color:#008000; font-style:italic;">#avvia il main loop</span></div></div>
<p>Per ulteriori spiegazioni sono qui <img src='http://www.gamemaker.it/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.gamemaker.it/blog/2009/11/21/introduzione-ruby-gosu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
