<?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>Tucna's blog</title>
	<atom:link href="http://personal.tucna.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://personal.tucna.net</link>
	<description>programování, informace, povídky, ...</description>
	<lastBuildDate>Fri, 26 Jun 2009 08:14:57 +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>Boxfall</title>
		<link>http://personal.tucna.net/?p=138</link>
		<comments>http://personal.tucna.net/?p=138#comments</comments>
		<pubDate>Wed, 24 Jun 2009 13:00:04 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Programování]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[quinty]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=138</guid>
		<description><![CDATA[Článek popisuje mou první hru pod enginem Quinty. Boxfall je klonem legendárního tetrisu s několika málo odlišnostma (a s několika pěknýma myšlenkama, které možná někdy uskutečním   ).

Úvod
Základní myšlenku tetrisu (wikipedia) zná bezpochyby každý. Myšlenka Alexeye Pajitnova dává dokonalou možnost na procvičení programátorského umu a v mém případě taky k vylepšení Quinty.
Programovací jazyk: C++
Nestandartní [...]]]></description>
			<content:encoded><![CDATA[<p>Článek popisuje mou první hru pod enginem Quinty. Boxfall je klonem legendárního tetrisu s několika málo odlišnostma (a s několika pěknýma myšlenkama, které možná někdy uskutečním <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).<br />
<span id="more-138"></span></p>
<h2>Úvod</h2>
<p>Základní myšlenku tetrisu (<a href="http://en.wikipedia.org/wiki/Tetris">wikipedia</a>) zná bezpochyby každý. Myšlenka Alexeye Pajitnova dává dokonalou možnost na procvičení programátorského umu a v mém případě taky k vylepšení <a href="http://personal.tucna.net/2008/10/quinty-1-popis/">Quinty</a>.</p>
<p><strong>Programovací jazyk: </strong>C++<br />
<strong>Nestandartní knihovny: </strong>SDL<br />
<strong>Poznámka: </strong>hra je vybudována na enginu Quinty v1.0.0</p>
<h2>Stavební prvky</h2>
<p>Základní struktury použité ve hře jsou <strong>Tetroid</strong> (pro popsání "kostky") a <strong>World</strong> (třída, která mimo jiné zastřešuje herní oblast).<br />
Struktura Tetroid:</p>
<pre class="cpp"><span style="color: #0000ff;">struct</span> Tetroid
<span style="color: #000000;">&#123;</span>
    <span style="color: #0000ff;">int</span>    posX;
    <span style="color: #0000ff;">int</span>    posY;
    <span style="color: #0000ff;">int</span>    block<span style="color: #000000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #000000;">&#93;</span>;
    <span style="color: #0000ff;">int</span>    width;
    <span style="color: #0000ff;">int</span>    height;
    <span style="color: #0000ff;">int</span>    color;
    <span style="color: #0000ff;">int</span>    angle;
<span style="color: #000000;">&#125;</span>;</pre>
<p>Význam jednotlivých proměných:<br />
<strong>posX, posY: </strong>pozice kostky vzhledem k herní oblasti (použito u padající kostky)<br />
<strong>block[4][4][4]: </strong>v poli uchovávám pozice jednotlivých částí kostky pro všechny 4 možné směry natočení (máme 4 směry; každá kostka je definovaná polem 4x4)<br />
<strong>width, height: </strong>šířka výška kostky<br />
<strong>color: </strong>index barvy<br />
<strong>angle: </strong>uchovává úhel kostky (0, 1, 2, 3)</p>
<p>Index barvy (<strong>color</strong>) udává pozici z následujícího obrázku:<br />
<img class="ngg-singlepic ngg-none" src="http://personal.tucna.net/wp-content/gallery/articles/square.png" alt="Squares" /></p>
<p>Číslo v proměné úhel (<strong>angle</strong>) udává násobky 45ti stupňů.</p>
<p>Následuje fragment třídy <strong>Word</strong>, který má na starosti základní práci s herní oblastí.</p>
<pre class="cpp"><span style="color: #0000ff;">class</span> World: <span style="color: #0000ff;">public</span> GameEngine
<span style="color: #000000;">&#123;</span>
<span style="color: #0000ff;">public</span>:
    <span style="color: #ff0000;">// Constructor(s)/Destructor</span>
    World<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
    <span style="color: #0000ff;">virtual</span> ~World<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #ff0000;">// General methods</span>
    <span style="color: #0000ff;">void</span>    CreateArea<span style="color: #000000;">&#40;</span><span style="color: #0000ff;">int</span> width, <span style="color: #0000ff;">int</span> height, <span style="color: #0000ff;">int</span> square_dimensoin, <span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">int</span> y<span style="color: #000000;">&#41;</span>;
    <span style="color: #0000ff;">void</span>    SetAreaPics<span style="color: #000000;">&#40;</span><span style="color: #0000ff;">char</span>* border<span style="color: #000000;">&#41;</span>;
    <span style="color: #0000ff;">void</span>    BlitAreaBounds<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
    <span style="color: #0000ff;">void</span>    BlitArea<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    ...
&nbsp;
<span style="color: #0000ff;">private</span>:
    <span style="color: #ff0000;">// Member variables</span>
    <span style="color: #0000ff;">int</span>**            m_area;
    <span style="color: #0000ff;">int</span>              m_area_x;
    <span style="color: #0000ff;">int</span>              m_area_y;
    <span style="color: #0000ff;">int</span>              m_area_width;
    <span style="color: #0000ff;">int</span>              m_area_height;
    <span style="color: #0000ff;">int</span>              m_square_dimension;
    Image*           m_area_border;
&nbsp;
    ...
<span style="color: #000000;">&#125;</span>;</pre>
<p>Popis třídy (relevantních proměných a metod):<br />
Jak je vidět třída <strong>World</strong> dědí od třídy <strong>GameEngine</strong>, která poskytuje základní funkcionalitu enginu.<br />
Dynamické dvourozměrné pole (<strong>m_area</strong>) uchovává hrací oblast, definovanou šířkou (<strong>m_area_width</strong>) a výškou (<strong>m_area_height</strong>). Dále je uchovávána pozice (<strong>m_area_x</strong>; <strong>m_area_y</strong>), velikost čtverečku vyznačujícího hranici herní oblasti (<strong>m_square_dimension</strong>) a referenci na samotný obrázek čtverečku (<strong>m_area_border</strong>).<br />
Metoda <strong>CreateArea</strong> slouží k vytvoření dynamické hrací plochy a <strong>SetAreaPics</strong> k nastavení obrázku okraje.</p>
<p>Další zajímavá metoda třídy <strong>World</strong> je <strong>SetTetroids()</strong>.</p>
<pre class="cpp"><span style="color: #0000ff;">void</span> World::<span style="color: #00eeff;">SetTetroids</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    Tetroid tetroids<span style="color: #000000;">&#91;</span>m_number_tetroids<span style="color: #000000;">&#93;</span> =
    <span style="color: #000000;">&#123;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0000dd;">0</span>,
            <span style="color: #0000dd;">0</span>,
            <span style="color: #000000;">&#123;</span>
                <span style="color: #000000;">&#123;</span>
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>
                <span style="color: #000000;">&#125;</span>,
                <span style="color: #000000;">&#123;</span>
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>
                <span style="color: #000000;">&#125;</span>,
                <span style="color: #000000;">&#123;</span>
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>
                <span style="color: #000000;">&#125;</span>,
                <span style="color: #000000;">&#123;</span>
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>,
                    <span style="color: #000000;">&#123;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#125;</span>
                <span style="color: #000000;">&#125;</span>
            <span style="color: #000000;">&#125;</span>,
            <span style="color: #0000dd;">3</span>,
            <span style="color: #0000dd;">2</span>,
            <span style="color: #0000dd;">0</span>,
            <span style="color: #0000dd;">0</span>
        <span style="color: #000000;">&#125;</span>,
&nbsp;
        ...
&nbsp;
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre>
<p>Všechny dílčí proměnné jsou nastaveny na výchozí hodnotu. Trojrozměrné pole <strong>block</strong> je pro každý útvar a jeho úhel nastaveno jednoduchým způsobem - <strong>1</strong>: plné pole,  <strong>0</strong>: prázdné pole. Tímto způsobem jsou nastaveny a uloženy všechny tvary.</p>
<h2>Algoritmy</h2>
<p>Základní funkčnost je v podstatě dost jednoduchá:</p>
<p><em>Pokud je pod aktivním (padajícím) tvarem místo, posuň ho o jednu kostičku dolů. Pokud se kostička dotkne vrchní hrany hrací plochy, hra končí.</em></p>
<p>V případě vstupu od uživatele je nutné provádět další kontroly:</p>
<p><em>Jestli tvar neopustí herní plochu (ať už posunem, nebo důsledkem rotace) a jestli rotací nedochází k dalším kolizím.</em></p>
<p>Jako první uvedu zdrojový kód obsluhy klávesnice.</p>
<pre class="cpp"><span style="color: #0000ff;">void</span> World::<span style="color: #00eeff;">GE_HandleKeys</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    m_keys = GE_GetKeyState<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>m_keys<span style="color: #000000;">&#91;</span>GEK_ESCAPE<span style="color: #000000;">&#93;</span> == GE_PRESSED<span style="color: #000000;">&#41;</span> GE_Exit<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>m_keys<span style="color: #000000;">&#91;</span>GEK_RIGHT<span style="color: #000000;">&#93;</span> == GE_PRESSED<span style="color: #000000;">&#41;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>GetFallTetroidCollision<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span> == <span style="color: #0000ff;">false</span><span style="color: #000000;">&#41;</span> MoveFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>m_keys<span style="color: #000000;">&#91;</span>GEK_LEFT<span style="color: #000000;">&#93;</span> == GE_PRESSED<span style="color: #000000;">&#41;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>GetFallTetroidCollision<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">-1</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span> == <span style="color: #0000ff;">false</span><span style="color: #000000;">&#41;</span> MoveFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">-1</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>m_up_key++ &amp;gt; <span style="color: #0000dd;">1</span><span style="color: #000000;">&#41;</span> &amp;&amp; <span style="color: #000000;">&#40;</span>m_keys<span style="color: #000000;">&#91;</span>GEK_UP<span style="color: #000000;">&#93;</span> == GE_PRESSED<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>GetFallTetroidCollision<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span>,<span style="color: #0000ff;">true</span><span style="color: #000000;">&#41;</span> == <span style="color: #0000ff;">false</span><span style="color: #000000;">&#41;</span> RotateFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
        m_up_key = <span style="color: #0000dd;">0</span>;
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>m_keys<span style="color: #000000;">&#91;</span>GEK_DOWN<span style="color: #000000;">&#93;</span> == GE_PRESSED<span style="color: #000000;">&#41;</span> m_count = <span style="color: #0000dd;">3</span>;
<span style="color: #000000;">&#125;</span></pre>
<p>Názvy metod určují jejich použití. Poněkud nejasné mohou být proměnné <strong>m_up_key</strong> a <strong>m_count</strong>. Obě slouží k nastavení určité prodlevy a to tak, že uměle protahují (popř. zkracují) pauzu mězi dvěma akcema. První proměnná <strong>m_up_key</strong> hlídá, aby nebyla akce otočení kostky tak citlivá a <strong>m_count</strong> hlídá určitou prodlevu pro padání aktivní kostky (po stisku šipky dolů se nastaví na hodnotu, která způsobí ignorování prodlevy). Jinak se proměnná <strong>m_count</strong> iteruje každým průchodem hlavního cyklu hry.</p>
<p>Přesouváme se ke klíčové metodě celé hry.</p>
<pre class="cpp"><span style="color: #0000ff;">void</span> World::<span style="color: #00eeff;">GE_MainFunction</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>m_count++ == <span style="color: #0000dd;">3</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>GetFallTetroidCollision<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">1</span><span style="color: #000000;">&#41;</span> == <span style="color: #0000ff;">false</span><span style="color: #000000;">&#41;</span>
            MoveFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">1</span><span style="color: #000000;">&#41;</span>;
        <span style="color: #0000ff;">else</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>GetUpCollision<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> GE_Exit<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            GenerateFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            GenerateNextTetroid<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
        <span style="color: #000000;">&#125;</span>
&nbsp;
        m_count = <span style="color: #0000dd;">0</span>;
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre>
<p>Jako první zkoumáme, zda se kostka může posunout dolů. Pokud ano, posuneme ji.</p>
<p>Následuje metoda na určování kolizí.</p>
<pre class="cpp"><span style="color: #0000ff;">bool</span> World::<span style="color: #00eeff;">GetFallTetroidCollision</span><span style="color: #000000;">&#40;</span><span style="color: #0000ff;">int</span> x_move, <span style="color: #0000ff;">int</span> y_move, <span style="color: #0000ff;">bool</span> rotate<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #ff0000;">// Bounds</span>
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> IncFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>y_move&gt;<span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span> || rotate<span style="color: #000000;">&#41;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span> <span style="color: #000000;">&#40;</span>m_fall_tetroid.<span style="color: #00eeff;">posY</span> + m_fall_tetroid.<span style="color: #00eeff;">height</span> &gt; m_area_height<span style="color: #000000;">&#41;</span> &amp;&amp; <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span>
                || <span style="color: #000000;">&#40;</span>m_fall_tetroid.<span style="color: #00eeff;">posY</span> + m_fall_tetroid.<span style="color: #00eeff;">height</span> == m_area_height<span style="color: #000000;">&#41;</span> &amp;&amp; <span style="color: #000000;">&#40;</span>rotate == <span style="color: #0000ff;">false</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> DecFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            SeatFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;
        <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>x_move&gt;<span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span> || rotate<span style="color: #000000;">&#41;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span> <span style="color: #000000;">&#40;</span>m_fall_tetroid.<span style="color: #00eeff;">posX</span> + m_fall_tetroid.<span style="color: #00eeff;">width</span> &gt; m_area_width<span style="color: #000000;">&#41;</span> &amp;&amp; <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span>
                || <span style="color: #000000;">&#40;</span>m_fall_tetroid.<span style="color: #00eeff;">posX</span> + m_fall_tetroid.<span style="color: #00eeff;">width</span> == m_area_width<span style="color: #000000;">&#41;</span> &amp;&amp; <span style="color: #000000;">&#40;</span>rotate == <span style="color: #0000ff;">false</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> DecFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;
        <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>x_move&lt;<span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>m_fall_tetroid.<span style="color: #00eeff;">posX</span> == <span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> DecFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;
        <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #ff0000;">//**************************************************************</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> DecFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    EraseFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> IncFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">int</span> index;
&nbsp;
    <span style="color: #0000ff;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #0000ff;">int</span> i = <span style="color: #0000dd;">0</span>; i &lt; <span style="color: #0000dd;">4</span>; i++<span style="color: #000000;">&#41;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #0000ff;">int</span> o = <span style="color: #0000dd;">0</span>; o &lt; <span style="color: #0000dd;">4</span>; o++<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            index = GetAddress<span style="color: #000000;">&#40;</span>i+y_move,o+x_move<span style="color: #000000;">&#41;</span>;
            <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>index &lt; <span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span> || <span style="color: #000000;">&#40;</span>m_area<span style="color: #000000;">&#91;</span>index<span style="color: #000000;">&#93;</span> &lt; <span style="color: #0000dd;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0000ff;">continue</span>;
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>m_fall_tetroid.<span style="color: #00eeff;">block</span><span style="color: #000000;">&#91;</span>m_fall_tetroid.<span style="color: #00eeff;">angle</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#91;</span>o<span style="color: #000000;">&#93;</span> == <span style="color: #0000dd;">1</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>x_move == <span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span> &amp;&amp; <span style="color: #000000;">&#40;</span>rotate == <span style="color: #0000ff;">false</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                <span style="color: #000000;">&#123;</span>
                    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> DecFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
                    SeatFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
                    <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;
                <span style="color: #000000;">&#125;</span>
&nbsp;
                <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> DecFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
                MoveFallTetroid<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">0</span>,<span style="color: #0000dd;">0</span><span style="color: #000000;">&#41;</span>;
                <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span>;
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>rotate<span style="color: #000000;">&#41;</span> DecFallTetroidAngle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;
<span style="color: #000000;">&#125;</span></pre>
<p>I když je metoda relativně dlouhá, její pochopení by neměl být problém. V první části se řeší kolize s okrajem (ať už vlivem rotace či posunu) a ve druhé pak kolize s už spadanýma kostkama.</p>
<p><a rel="lightbox[]" href='http://personal.tucna.net/wp-content/gallery/articles/tetris1.jpg' title=''><img src='http://personal.tucna.net/wp-content/gallery/articles/thumbs/thumbs_tetris1.jpg' alt='Tetris 1.0' class='ngg-singlepic ngg-none' /></a></p>
<p><em>Závěrečná poznámka: text berte pouze jako inspiraci a nastínění možného řešení. Celá hra vznikla pouze jako testovací projekt mého enginu. Určitě se dá spousta věcí vylepšit a spousta udělat jinak, ale v této chvíli už pracuji na nečem jiném a s Boxfall tím pádem končím. Zdrojové kódy nedám k dispozici, veškeré podstané části jsou v článku.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=138</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zdrojový kód windows 98</title>
		<link>http://personal.tucna.net/?p=143</link>
		<comments>http://personal.tucna.net/?p=143#comments</comments>
		<pubDate>Wed, 10 Jun 2009 08:05:12 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Programování]]></category>
		<category><![CDATA[Zábava]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=143</guid>
		<description><![CDATA[Rozhodl jsem se zařadit na svůj blog jednu opravdu starou, ale stále vtipnou věc   .

&#160;
/*
  TOP SECRET Microsoft (c) Code
  Project: Chicago(tm)
  Projected release-date: Summer 1998
*/
&#160;
 #include &#34;win31.h&#34;
 #include &#34;win95.h&#34;
 #include &#34;evenmore.h&#34;
 #include &#34;oldstuff.h&#34;
 #include &#34;billrulz.h&#34;
 #define INSTALL = HARD
&#160;
 static char make_prog_look_big&#91;8000000&#93;;
&#160;
 void main&#40;&#41;
 &#123;
    while&#40;!CRASHED&#41;
 [...]]]></description>
			<content:encoded><![CDATA[<p>Rozhodl jsem se zařadit na svůj blog jednu opravdu starou, ale stále vtipnou věc <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  .<br />
<span id="more-143"></span></p>
<pre class="cpp">&nbsp;
<span style="color: #ff0000; font-style: italic;">/*
  TOP SECRET Microsoft (c) Code
  Project: Chicago(tm)
  Projected release-date: Summer 1998
*/</span>
&nbsp;
 <span style="color: #339900;">#include &quot;win31.h&quot;</span>
 <span style="color: #339900;">#include &quot;win95.h&quot;</span>
 <span style="color: #339900;">#include &quot;evenmore.h&quot;</span>
 <span style="color: #339900;">#include &quot;oldstuff.h&quot;</span>
 <span style="color: #339900;">#include &quot;billrulz.h&quot;</span>
 <span style="color: #339900;">#define INSTALL = HARD</span>
&nbsp;
 <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">char</span> make_prog_look_big<span style="color: #000000;">&#91;</span><span style="color: #0000dd;">8000000</span><span style="color: #000000;">&#93;</span>;
&nbsp;
 <span style="color: #0000ff;">void</span> main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
 <span style="color: #000000;">&#123;</span>
    <span style="color: #0000ff;">while</span><span style="color: #000000;">&#40;</span>!CRASHED<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
         display_copyright_message<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
         display_bill_rules_message<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
         do_nothing_loop<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
         <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>first_time_installation<span style="color: #000000;">&#41;</span>
         <span style="color: #000000;">&#123;</span>
            make_unusable_swapfile_in_megabytes<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">100</span><span style="color: #000000;">&#41;</span>;
            do_nothing_loop<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            totally_screw_up_ext2_file_system<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            search_and_destroy_the_rest_of_linux<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
            hang_system<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
         <span style="color: #000000;">&#125;</span>
&nbsp;
         write_something<span style="color: #000000;">&#40;</span>anything<span style="color: #000000;">&#41;</span>;
         display_copyright_message<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
         do_nothing_loop<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
         do_some_stuff<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
         <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>still_not_crashed<span style="color: #000000;">&#41;</span>
         <span style="color: #000000;">&#123;</span>
             display_copyright_message<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
             do_nothing_loop<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
             basically_run_windows_3<span style="color: #0000dd;">.1</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
             do_nothing_loop<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
             do_nothing_loop<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
         <span style="color: #000000;">&#125;</span>
     <span style="color: #000000;">&#125;</span>
&nbsp;
     <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>detect_cache<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        disable_cache<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
     <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>fast_cpu<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
     <span style="color: #000000;">&#123;</span>
         set_wait_states<span style="color: #000000;">&#40;</span>lots<span style="color: #000000;">&#41;</span>;
         set_mouse<span style="color: #000000;">&#40;</span>speed, very_slow<span style="color: #000000;">&#41;</span>;
         set_mouse<span style="color: #000000;">&#40;</span>action, jumpy<span style="color: #000000;">&#41;</span>;
         set_mouse<span style="color: #000000;">&#40;</span>reaction, sometimes<span style="color: #000000;">&#41;</span>;
     <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #ff0000; font-style: italic;">/* printf(&quot;Welcome to Windows 3.11&quot;); */</span>
    <span style="color: #ff0000; font-style: italic;">/* printf(&quot;Welcome to Windows 95&quot;); */</span>
    <span style="color: #0000dd;">printf</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Welcome to Windows 98&quot;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>system_ok<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
          blue_screen_of_death<span style="color: #000000;">&#40;</span>random_err<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
          crash<span style="color: #000000;">&#40;</span>to_dos_prompt<span style="color: #000000;">&#41;</span>;
    <span style="color: #000000;">&#125;</span>
    <span style="color: #0000ff;">else</span>
         system_memory = open<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;a:<span style="color: #666666; font-weight: bold;">\s</span>wp0001.swp&quot;</span>, O_CREATE<span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">while</span><span style="color: #000000;">&#40;</span>something<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
         sleep<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">50</span><span style="color: #000000;">&#41;</span>;
         get_user_input<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
         sleep<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">50</span><span style="color: #000000;">&#41;</span>;
         act_on_user_input<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
         sleep<span style="color: #000000;">&#40;</span><span style="color: #0000dd;">100</span><span style="color: #000000;">&#41;</span>;
&nbsp;
         <span style="color: #0000ff;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #0000ff;">int</span> i = <span style="color: #0000dd;">1</span>; i &lt;= get_time<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>; i++<span style="color: #000000;">&#41;</span>
           blue_screen_of_death<span style="color: #000000;">&#40;</span>random_err<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
    <span style="color: #000000;">&#125;</span>
    create_general_protection_fault<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;</pre>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=143</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog opět funguje!</title>
		<link>http://personal.tucna.net/?p=141</link>
		<comments>http://personal.tucna.net/?p=141#comments</comments>
		<pubDate>Wed, 15 Apr 2009 17:13:03 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Oznámení]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=141</guid>
		<description><![CDATA[Omlouvám se za nefunkční stránky po dobu několika dní. Neplánový výpadek byl patrně způsoben nudícím se šotkem   . V této chvíli by vše mělo fungovat, ovšem kdyby jste narazili na chybu, dejte vědět v komentářích.

]]></description>
			<content:encoded><![CDATA[<p>Omlouvám se za nefunkční stránky po dobu několika dní. Neplánový výpadek byl patrně způsoben nudícím se šotkem <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . V této chvíli by vše mělo fungovat, ovšem kdyby jste narazili na chybu, dejte vědět v komentářích.<br />
<span id="more-141"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=141</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bujinkan czech dojo &#8211; Ostrava</title>
		<link>http://personal.tucna.net/?p=139</link>
		<comments>http://personal.tucna.net/?p=139#comments</comments>
		<pubDate>Wed, 01 Apr 2009 16:57:46 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Oznámení]]></category>
		<category><![CDATA[budó]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=139</guid>
		<description><![CDATA[Náborový leták BCD Ostrava. 

]]></description>
			<content:encoded><![CDATA[<p>Náborový leták BCD Ostrava.<br />

<a href="http://personal.tucna.net/wp-content/gallery/articles/bujinkan.jpg" title="" rel="lightbox[singlepic218]" >
	<img class="ngg-singlepic" src="http://personal.tucna.net/wp-content/plugins/nextgen-gallery/nggshow.php?pid=218&amp;width=320&amp;height=240&amp;mode=" alt="bujinkan.jpg" title="bujinkan.jpg" />
</a>
<br />
<span id="more-139"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=139</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hudební videa z youtube</title>
		<link>http://personal.tucna.net/?p=137</link>
		<comments>http://personal.tucna.net/?p=137#comments</comments>
		<pubDate>Wed, 25 Mar 2009 14:12:36 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Zábava]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=137</guid>
		<description><![CDATA[V tomto velmi oddechovém článku uvedu zajímavá (a má oblíbená) hudební videa, která určitě stojí za zhlédnutí i za poslech.

Slash and Michael Jackson - Black or white and Beat it
Tyto notoricky známé songy určitě znají všichni. V následujícím videu máte výbornou live-verzi, ve které Michaelovi asistuje na kytaru Slash (Guns N' roses).

BB King / Gary [...]]]></description>
			<content:encoded><![CDATA[<p>V tomto velmi oddechovém článku uvedu zajímavá (a má oblíbená) hudební videa, která určitě stojí za zhlédnutí i za poslech.<br />
<span id="more-137"></span></p>
<h2>Slash and Michael Jackson - Black or white and Beat it</h2>
<p>Tyto notoricky známé songy určitě znají všichni. V následujícím videu máte výbornou live-verzi, ve které Michaelovi asistuje na kytaru Slash (Guns N' roses).<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/4Qylb1Y80vk&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/4Qylb1Y80vk&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h2>BB King / Gary Moore - The Thrill is Gone</h2>
<p>Výborný song B.B. Kinga The thrill is gone, v live-verzi spolu s Gary Moorem.<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/lqAuuIDU2sw&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lqAuuIDU2sw&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h2>Architecture In Helsinki - Heart It Races</h2>
<p>Podařený song i velmi nápaditý klip.<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/sZjpWs1h7pU&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/sZjpWs1h7pU&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h2>Cindy Gomez - Time Only Knows</h2>
<p>Píseň známá především ze skvělé hry Prince Of Persia - Sands of time.<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/QJtmWnVz-Sc&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/QJtmWnVz-Sc&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h2>Wohnout - Vrátnej</h2>
<p>Věčná klasika <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/g_oGOBWzY1c&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/g_oGOBWzY1c&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h2>Visací zámek - Známka Punku</h2>
<p>Naprosto kultovní kousek od Visacího zámku.<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/vwALSGmTNkA&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/vwALSGmTNkA&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<h2>Horkýže slíže - R'n'B Soul</h2>
<p>Ke konci článku dávám opravdovou perlu. Někým je píseň považována za ubohost, někým za dokonalou parodii <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  .<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/rtHnvO2nzRY&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/rtHnvO2nzRY&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=137</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vystoupení &#8211; 17.12.2008</title>
		<link>http://personal.tucna.net/?p=135</link>
		<comments>http://personal.tucna.net/?p=135#comments</comments>
		<pubDate>Fri, 30 Jan 2009 12:36:33 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Akce]]></category>
		<category><![CDATA[historický šerm]]></category>
		<category><![CDATA[nespolečenští ochlastové]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=135</guid>
		<description><![CDATA[Naše skupina studentů bojových umění (pracovní název - Nespolečenští ochlastové), měla své první vystoupení v Opavě, ve škole pro zrakově postižené děti.

Jeden z našich členů (Tomáš Peterek) na zmíněné ZŠ vyučuje a zajistil pro nás místo ke cvičení. Tělocvična je výborná a navíc je nám poskytnuta "za hubičku"   . Na oplátku, že můžeme [...]]]></description>
			<content:encoded><![CDATA[<p>Naše skupina studentů bojových umění (pracovní název - <a href="http://sermiri.tucna.net">Nespolečenští ochlastové</a>), měla své první vystoupení v Opavě, ve škole pro zrakově postižené děti.<br />
<span id="more-135"></span><br />
Jeden z našich členů (Tomáš Peterek) na zmíněné ZŠ vyučuje a zajistil pro nás místo ke cvičení. Tělocvična je výborná a navíc je nám poskytnuta "za hubičku" <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Na oplátku, že můžeme používat prostory ke cvičení, jsme připravili pro děti menší vystoupení. Jeho kvalitu můžete posoudit sami:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Q0gQ54gVDn4&hl=cs&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Q0gQ54gVDn4&hl=cs&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><strong>Účinkovali</strong><br />
Vít Kozák - herold<br />
Tomáš Peterek - sir Thomas von Dámtipětku z Chémopolis<br />
Martin Swatzina - don Martinius los Bastardos dela Banka z Ukrutovic<br />
Lukaš Staněk - baron Lukas Knopoviz z Velkopopovických Kozlic<br />
Roman Kreuziger - lord Romanius von Všechnychcu z Něvěstkovic<br />
Václav Svěrák - spanilá Brundhilda</p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=135</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Misogi &#8211; 13. 1. 2009</title>
		<link>http://personal.tucna.net/?p=133</link>
		<comments>http://personal.tucna.net/?p=133#comments</comments>
		<pubDate>Thu, 22 Jan 2009 11:29:14 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Akce]]></category>
		<category><![CDATA[budó]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=133</guid>
		<description><![CDATA[Dne 13. 1. 2009 proběhlo v Opavě Misogi. Cvičenci Katori shinto ryu tedy dostali šanci „zkusit co vydrží“. Rituál spočívá v nepřetržitém provádění seků po dobu jedné hodiny a to s jednoduchou pointou – očistit tělo a mysl.

Samotný trénink začal dost netradičně. Čekali jsme před dojo, ve kterém se zatím připravovala výzdoba a atmosféra. Doba [...]]]></description>
			<content:encoded><![CDATA[<p>Dne 13. 1. 2009 proběhlo v Opavě Misogi. Cvičenci Katori shinto ryu tedy dostali šanci „zkusit co vydrží“. Rituál spočívá v nepřetržitém provádění seků po dobu jedné hodiny a to s jednoduchou pointou – očistit tělo a mysl.<br />
<span id="more-133"></span><br />
<a rel="lightbox[]" href="http://personal.tucna.net/wp-content/gallery/articles/misogi1.jpg"><img class="ngg-singlepic ngg-left" src="http://personal.tucna.net/wp-content/gallery/articles/thumbs/thumbs_misogi1.jpg" alt="misogi1.jpg" /></a>Samotný trénink začal dost netradičně. Čekali jsme před dojo, ve kterém se zatím připravovala výzdoba a atmosféra. Doba čekání se po chvíli zdála být věčností. Napětím jsem doslova hořel (v důsledku čehož, se mi začali potit nohy <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). Nakonec se ale otevřely dveře a do chodby vešli Roman a Petr. Dostali jsme od nich instrukce a poté všichni vstoupili do tělocvičny. Okamžitě nás upoutala vyzdobená kamiza.Po tradičním uvítání jsme se rozestoupili po prostoru a začali cvičit. Romanem zvolené tempo bylo velmi příjemné, a nenutilo k rychlejším či pomalejším pohybům než na které jsem běžně zvyklý. Prostě „tak akorát do pohody“ <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Pro vaši představu – průměrná rychlost byla jeden sek za sekundu, ke konci pak vyšší.</p>
<p>Na začátku cviční jsem dával především pozor na správné dýchání. Když už jsem si byl jistý, že si tělo zvyklo, všímal jsem si pohybu nohou, boků a rukou. Zároveň jsem se snažil dávat pozor na to, aby byl každý můj sek „opravdovým“ sekem a ne jen pouhým máchnutím, či přemístěním bokenu z bodu A do bodu B. Vůbec netuším, jak dlouho mi trvalo toto vše zautomatizovat, neboť přehled o čase jsem ztratil hned na začátku (přesně řečeno, jsem se ani nepokoušel čas sledovat). Ovšem v té chvíli, už jsem neměl potřebu sledovat pohyby těla, ale veškerou pozornost věnoval mysli. Kontroly pohybů byly čím dál méně časté a v pozdějších fázích mi každá taková způsobila výpadek z tempa. Naštěstí nešlo o nic kritického a téměř ihned jsem se zase chytil <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p>Mysl jsem držel čistou a prázdnou. Cvičil jsem v místě, na kterém byla přímo proti mně, na zdi pověšená papírová bota. Ta se stala mým předmětem zájmu a po nějakou dobu sloužila jako bod, na který jsem upjal svou pozornost a relaxoval. Když už jsem se cítil dostatečně uvolněný, začala má mysl létat pryč. Chvílemi jsem na bojišti přímo uprostřed bitvy zápolil se samuraji, chvílemi bojoval s imaginárním protivníkem, nebo třeba z nebe pozoroval ubíhající louky a lesy pode mnou. Tyto imaginace ovšem začaly pozvolna ustupovat a já vyzkoušel zaměřit pozornost na nějaký konkrétní problém. Toto se ovšem ukázalo jako zcela nemožné. Kdykoliv jsem se pokusil řešit věci typu příprava na zkoušku, nebo v hlavě vyřešit pracovní úkol, jako kdybych narazil do zdi. Měl jsem pocit, že můžu přímo slyšet, jak mi mysl říká „Ne, tohle neberu“. Prostě jsem se dostal do fáze, kdy naprosto nejpřijatelnější a v podstatě jediný možný stav byl nemyslet na nic a nechat vše plynout tak jak to je.</p>
<p>Tak jsem naprosto uvolněný cvičil, bez pocítění únavy či nudy (věřím, že pro lidi, kteří toto nikdy nezažili, může znít fráze „hodinu v kuse sekat“ cekem nudně <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) uslyšel zvonek ohlašující konec hodiny a nevěřil, že už je to tady. Plynule jsme přešli na posledních sto seků, u kterých se postupně zvyšovala rychlost a pak už vrátili bokeny k pasu.</p>
<p><a rel="lightbox[]" href='http://personal.tucna.net/wp-content/gallery/articles/misogi2.jpg' title=''><img src='http://personal.tucna.net/wp-content/gallery/articles/thumbs/thumbs_misogi2.jpg' alt='OLYMPUS DIGITAL CAMERA         ' class='ngg-singlepic ngg-right' /></a>V první chvíli se mi podlomila kolena, ale to byla jen prvotní reakce na změnu pohybu. Cítil jsem se báječně, prostě lépe než před tréninkem. Necítil jsem únavu či bolest, jen vychutnával chvíli a poté s ostatníma usedl do kruhu. Chvíli jsme klábosili a jedli výborné suši. Fotka na konec vše zapečetila a nám už teď zůstávají jen vzpomínky na tuto výbornou akci.</p>
<p>P.S.: kromě vzpomínek zůstávají i viditelné stopy, jako např. v mém případě puchýře na dlaních a na chodidlech <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=133</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dovolená 2008 &#8211; Lednicko-valitcký areál</title>
		<link>http://personal.tucna.net/?p=130</link>
		<comments>http://personal.tucna.net/?p=130#comments</comments>
		<pubDate>Fri, 16 Jan 2009 09:27:55 +0000</pubDate>
		<dc:creator>sedluska</dc:creator>
				<category><![CDATA[Akce]]></category>
		<category><![CDATA[dovolená]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=130</guid>
		<description><![CDATA[Naše společná dovolená.

Dovolenou jsme se vypravili strávit na jižní Moravu. Ubytovaní jsme byli v hotelu Čech v nádherném mezonetovém pokoji v Břeclavi-Poštorné. Odtud jsme vyráželi každý den na výlety. Cestou do Lednice jsme navštívili Janohrad a Minaret, na zámek jsme se svezli lodičkou. Prohlídka zámku byla poučná a spatřili jsme i nádherný skleník se zahradami. [...]]]></description>
			<content:encoded><![CDATA[<p>Naše společná dovolená.<br />
<span id="more-130"></span><br />
Dovolenou jsme se vypravili strávit na jižní Moravu. Ubytovaní jsme byli v hotelu Čech v nádherném mezonetovém pokoji v Břeclavi-Poštorné. Odtud jsme vyráželi každý den na výlety. Cestou do Lednice jsme navštívili Janohrad a Minaret, na zámek jsme se svezli lodičkou. Prohlídka zámku byla poučná a spatřili jsme i nádherný skleník se zahradami. Ve Valticích jsme ochutnali vínko, které bylo v ceně lístku na Kolonádu na Reistně. Prošli jsme se po rozsáhlých vinicích, i když tam byl vstup zakázán. Další den jsme strávili v Mikulově - jak na zámku, tak v Dietrichsteinské hrobce. A protože jsme měli ještě slovenské peníze, vydali jsme se do vesničky Kúty. Když jsme našli centrum (obchod), tak jsme velice litovali, že jsme tam vůbec kdy jezdili...Lednicko-valtický areál je nádherný!<br />

<div class="ngg-galleryoverview" id="ngg-gallery-9-130">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-136" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020713_resize.jpg" title="Můžem se konečně vyfotit normálně?" rel="lightbox[set_9]" >
								<img title="Můžem se konečně vyfotit normálně?" alt="Můžem se konečně vyfotit normálně?" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020713_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-137" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020714_resize.jpg" title="Už?" rel="lightbox[set_9]" >
								<img title="Už?" alt="Už?" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020714_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-138" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020715_resize.jpg" title="Ještě ne :P" rel="lightbox[set_9]" >
								<img title="Ještě ne :P" alt="Ještě ne :P" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020715_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-139" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020718_resize.jpg" title="Půjdem se podívat do kostela? Ještě nikdy jsem tam nebyl :(" rel="lightbox[set_9]" >
								<img title="Půjdem se podívat do kostela? Ještě nikdy jsem tam nebyl :(" alt="Půjdem se podívat do kostela? Ještě nikdy jsem tam nebyl :(" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020718_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-140" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020720_resize.jpg" title="Kostel - Poštorná" rel="lightbox[set_9]" >
								<img title="Kostel - Poštorná" alt="Kostel - Poštorná" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020720_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-141" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020722_resize.jpg" title="Je někdo doma?" rel="lightbox[set_9]" >
								<img title="Je někdo doma?" alt="Je někdo doma?" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020722_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-142" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020724_resize.jpg" title="Kostel - Poštorná" rel="lightbox[set_9]" >
								<img title="Kostel - Poštorná" alt="Kostel - Poštorná" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020724_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-143" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020730_resize.jpg" title="Nedívej se, chce se mi čůrat!" rel="lightbox[set_9]" >
								<img title="Nedívej se, chce se mi čůrat!" alt="Nedívej se, chce se mi čůrat!" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020730_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-144" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020731_resize.jpg" title="Břeclav - gumárny" rel="lightbox[set_9]" >
								<img title="Břeclav - gumárny" alt="Břeclav - gumárny" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020731_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-145" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020738_resize.jpg" title="Břeclavský hrad" rel="lightbox[set_9]" >
								<img title="Břeclavský hrad" alt="Břeclavský hrad" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020738_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-146" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020754_resize.jpg" title="Řeka" rel="lightbox[set_9]" >
								<img title="Řeka" alt="Řeka" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020754_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-147" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020761_resize.jpg" title="Kde jsem?" rel="lightbox[set_9]" >
								<img title="Kde jsem?" alt="Kde jsem?" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020761_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-148" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020773_resize.jpg" title="Janohrad" rel="lightbox[set_9]" >
								<img title="Janohrad" alt="Janohrad" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020773_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-150" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020789_resize.jpg" title="Ten pařez je nějaký obří" rel="lightbox[set_9]" >
								<img title="Ten pařez je nějaký obří" alt="Ten pařez je nějaký obří" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020789_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-151" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020791_resize.jpg" title="To zrcadlo nějak zkrášluje" rel="lightbox[set_9]" >
								<img title="To zrcadlo nějak zkrášluje" alt="To zrcadlo nějak zkrášluje" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020791_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-152" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020795_resize.jpg" title="Jsem frajer" rel="lightbox[set_9]" >
								<img title="Jsem frajer" alt="Jsem frajer" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020795_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-153" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020799_resize.jpg" title="Pěkný zadek ;)" rel="lightbox[set_9]" >
								<img title="Pěkný zadek ;)" alt="Pěkný zadek ;)" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020799_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-154" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020804_resize.jpg" title="Krásný strom" rel="lightbox[set_9]" >
								<img title="Krásný strom" alt="Krásný strom" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020804_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-155" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020805_resize.jpg" title="Minaret" rel="lightbox[set_9]" >
								<img title="Minaret" alt="Minaret" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020805_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-156" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/p1020809_resize.jpg" title="S tou babou celkem dobrý pokec" rel="lightbox[set_9]" >
								<img title="S tou babou celkem dobrý pokec" alt="S tou babou celkem dobrý pokec" src="http://personal.tucna.net/wp-content/gallery/dovolena-11-16-8-2008/thumbs/thumbs_p1020809_resize.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-navigation'><span>1</span><a class="page-numbers" href="http://personal.tucna.net/?p=130&amp;nggpage=2">2</a><a class="page-numbers" href="http://personal.tucna.net/?p=130&amp;nggpage=3">3</a><a class="page-numbers" href="http://personal.tucna.net/?p=130&amp;nggpage=4">4</a><a class="next" id="ngg-next-2" href="http://personal.tucna.net/?p=130&amp;nggpage=2">&#9658;</a></div> 	
</div>

</p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=130</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quinty(1) &#8211; Popis</title>
		<link>http://personal.tucna.net/?p=124</link>
		<comments>http://personal.tucna.net/?p=124#comments</comments>
		<pubDate>Fri, 10 Oct 2008 09:24:22 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Programování]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[quinty]]></category>
		<category><![CDATA[SDL]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=124</guid>
		<description><![CDATA[Popis mého aktuálně vyvíjeného enginu pro usnadnění tvorby 2D her.

Základní charakteristika
Cílem je zapouzdřit nestandartní knihovny do jednolitého a soudržného celku a navíc co nejvíce zjednodušit tvorbu her napsáním stále se opakujících rutin. Programátor tedy nebude muset řešit věci kolem, ale může se zaměřit na hru jako takovou.
Hlavní důvod je ovšem ten, že jsem v podstatě [...]]]></description>
			<content:encoded><![CDATA[<p>Popis mého aktuálně vyvíjeného enginu pro usnadnění tvorby 2D her.<br />
<span id="more-124"></span></p>
<h2>Základní charakteristika</h2>
<p>Cílem je zapouzdřit nestandartní knihovny do jednolitého a soudržného celku a navíc co nejvíce zjednodušit tvorbu her napsáním stále se opakujících rutin. Programátor tedy nebude muset řešit věci kolem, ale může se zaměřit na hru jako takovou.</p>
<p>Hlavní důvod je ovšem ten, že jsem v podstatě nikdy nic většího nedotáhl do konce. A to mě začalo štvát <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Vždy jsem narazil na nějákém mezi-problém po jehož vyřešení už klidně mohlo následovat dokončení hry (doladění příběhu, návrh levelů, vybrání spritů, ...), jenže už na to prostě nezbyl čas ani chuť. Rozhodl jsem se tedy tyto žrouty časy zpracovat do takové formy, abych se kdykoliv kdy dostanu nápad mohl pustit opravdu do tvorby hry a né věcí, které jsou často zcela stejné. Motivací budiž blog <a href="http://www.kloonigames.com/blog/">Kloonigames</a>, jehož autor chrlí jednu zábavnou hru za druhou a to zjevně na programátorsky stejných základech.</p>
<p>Pracovní název enginu je Quinty. Jestli mu toto jméno zůstane i do budoucna je ve hvězdách <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Ve zdrojácích prozatím používám prosté <strong>GameEngine</strong> a prefix <strong>GE_</strong>.</p>
<h2>Aktuální situace</h2>
<p><strong>Programovací jazyk</strong>: C++<br />
<strong>Nestandartní knihovny</strong>: SDL, SDL_image, SDL_ttf</p>
<p>Engine vyvýjím postupně s použitím principů různých her. Rozhodl jsem se následovat článek <a href="http://www.gamedev.net/reference/articles/article892.asp">'How do I make games?' A Path to Game Development</a> a pracovat na nich ve zmíněném pořadí. Začínám tedy tetrisem a vždy když vidím něco obecně použitelného z jeho myšlenky, zahrnu to do Quinty. Poté budu pokračovat přes další hry dál a dál ...</p>
<p>Tetris jsem dokončil, teď už přidělávám další vychytávky. Napadlo mě pár invencí, které by mohly hru oživit (sbírání bonusů; panáček který vběhne na scénu a ustřelí kus padající kostky; laser, který zničí i řadu která není zcela zaplněná; atd.), což sebou přineslo mimo jiné další věci zahrnutelné do enginu.</p>
<p>V součastnosti Quinty zapouzdřuje pouze pár SDL knihoven pro práci s grafikou a textem. Následující diagram ukazuje v součastnosti implementované prvky a jejich vzájemný vztah.</p>
<p><a rel="lightbox[]" href="http://personal.tucna.net/wp-content/gallery/articles/quintydiagram.jpg"><img class="ngg-singlepic ngg-none" src="http://personal.tucna.net/wp-content/gallery/articles/thumbs/thumbs_quintydiagram.jpg" alt="Diagram" /></a></p>
<p>Do budoucna mám v plánu přidat SDL_mixer na práci se zvuky a hudbou a fyzikální knihovnu Box2D. V součastnosti nejintenzivněji zpracovávám systém spritů, což bude tématem některého z dalších článků.</p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=124</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Co budete potřebovat k programování</title>
		<link>http://personal.tucna.net/?p=123</link>
		<comments>http://personal.tucna.net/?p=123#comments</comments>
		<pubDate>Thu, 09 Oct 2008 12:14:40 +0000</pubDate>
		<dc:creator>Pavel Vlašánek</dc:creator>
				<category><![CDATA[Programování]]></category>
		<category><![CDATA[Úvahy]]></category>

		<guid isPermaLink="false">http://personal.tucna.net/?p=123</guid>
		<description><![CDATA[Souhrn freeware nástrojů, které se vám můžou hodit.

Nástroje
Následující nástroje denně používám a jsem s nimi velmi spokojen  
IDE, kompilátor a debugger
Toto je samozřejmě neoddiskutovatelné. IDE jako takové sice nepotřebujete (to ovšem znamená, že se bez něj sotva obejdete   ), ale kompilátor zcela určitě, stejně jako debugger.
Pro C/C++ můžu vřele doporučit Code::blocks spolu [...]]]></description>
			<content:encoded><![CDATA[<p>Souhrn freeware nástrojů, které se vám můžou hodit.<br />
<span id="more-123"></span></p>
<h2>Nástroje</h2>
<p>Následující nástroje denně používám a jsem s nimi velmi spokojen <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>IDE, kompilátor a debugger</strong><br />
Toto je samozřejmě neoddiskutovatelné. IDE jako takové sice nepotřebujete (to ovšem znamená, že se bez něj sotva obejdete <img src='http://personal.tucna.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ), ale kompilátor zcela určitě, stejně jako debugger.<br />
Pro C/C++ můžu vřele doporučit <a href="http://personal.tucna.net/2008/09/codeblocks-sdl/">Code::blocks</a> spolu s MinGW (pro windows).</p>
<p><strong>Textový editor</strong><br />
Jistě v mnohých situacích oceníte také pořádný textový editor. <a href="http://www.pspad.com/cz/">PSPad</a> zvládá mimo běžného zpracování textu i zvýraznění syntaxe určitých typů souborů s možností definovat vlastní pravidla zvýraznění, HEX editor, nastavení kódování <a href="http://www.pspad.com/cz/pspad.htm">a mnoho dalšího</a>.</p>
<p><strong>Dokumentace</strong><br />
Stačí když ve svých zdrojových kódech budete držet určitý systém psaní komentářů, aby mohl nástroj <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a> automaticky vygenerovat dokumentaci a to v mnoha formátech (HTML, Latex, RTF, XML, PDF, ...). Umí i velmi dobře vykreslit příslušné UML diagramy a celkový výstup vypadá velmi přehledně a funkčně. Pro snadnější práci můžete použít i intuitivní GUI.</p>
<p><strong>Reversní inženýrství</strong><br />
Někdy můžete potřebovat prostředek, který dokáže disassemblovat a umožní dále analyzovat váš binární soubor. K tomu můžete použít <a href="http://www.ollydbg.de/">OllyDbg</a>. Jako příklad práce s programem můžete vzít <a href="http://www.lodusweb.net/index.php?option=com_content&amp;task=view&amp;id=91&amp;Itemid=41">toto</a>.</p>
<p><strong>UML</strong><br />
Výborná pomůcka je také UML kreslítko. <a href="http://staruml.sourceforge.net/en/">StarUML</a> umí generovat kód přímo z diagramů a to do jazyků C++, C# a Java. Navíc dokáže i opačný proces, tedy generovat diagramy přímo z kódu.</p>
<p><strong>SVN</strong><br />
Naprostá nutnost při práci několika lidí na jednom projektu. Mohu doporučit versovací systém <a href="http://tortoisesvn.net/about">TortoiseSVN</a>.</p>
<h2>Pár slov na závěr</h2>
<p>Článek alespoň zhruba nastiňuje a dává přehled o současné situaci vhodných freeware programů. Pokud máte pocit, že jsem na něco zapomněl, klidně to napište do komentáře.</p>
]]></content:encoded>
			<wfw:commentRss>http://personal.tucna.net/?feed=rss2&amp;p=123</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
