<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.sparrow-framework.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.sparrow-framework.org/feed.php">
        <title>Sparrow Wiki - tutorials</title>
        <description></description>
        <link>https://wiki.sparrow-framework.org/</link>
        <image rdf:resource="https://wiki.sparrow-framework.org/_media/wiki/dokuwiki.svg" />
       <dc:date>2026-10-12T06:35:56+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/a_simple_way_to_let_xcode_stop_on_an_error?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/accelerometer_setup_and_easy_fine-tuning?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/advanced_animation_techniques?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/all_about_textfields?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/auto-rotating_the_interface?rev=1369910854&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/automatically_update_the_screen_orientation?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/basic_collision_detection?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch_xcode_3?rev=1404376519&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch_xcode_4?rev=1404376355&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch?rev=1404731446&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/creating_color_gradients?rev=1369906195&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/custom_transitions?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/drawing_trails?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/finding_out_the_fps?rev=1369932453&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/flipping_an_object?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/intertial_scrolling?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/iterating_over_child_objects?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/making_a_button?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/making_hd_games?rev=1369910731&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/managing_game_scenes?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/math_utilities?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/media_class?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/modifying_the_color_of_an_image?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/more_about_jugglers?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/more_about_tweens?rev=1372239486&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/non_destructive_drawing?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/point_in_rotated_object?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/pvr_textures?rev=1369910556&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/rendering_objects_into_a_uiimage?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/rotating_an_object_around_a_custom_point?rev=1378293289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/sound_on_ios_-_best_practices?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/start?rev=1713595600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/texture_formats_best_practices?rev=1369910497&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/tilemaps_with_compiled_sprites?rev=1369906803&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/using_a_texture_atlas?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/using_bitmap_fonts?rev=1362475192&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/using_iads_with_sparrow?rev=1452627640&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/using_landscape_mode?rev=1369910833&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.sparrow-framework.org/tutorials/using_openfeint_with_sparrow?rev=1362475192&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.sparrow-framework.org/_media/wiki/dokuwiki.svg">
        <title>Sparrow Wiki</title>
        <link>https://wiki.sparrow-framework.org/</link>
        <url>https://wiki.sparrow-framework.org/_media/wiki/dokuwiki.svg</url>
    </image>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/a_simple_way_to_let_xcode_stop_on_an_error?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>A simple way to let Xcode stop on an error</title>
        <link>https://wiki.sparrow-framework.org/tutorials/a_simple_way_to_let_xcode_stop_on_an_error?rev=1362475192&amp;do=diff</link>
        <description>A simple way to let Xcode stop on an error

Developing an application is always more or less trial and error. You write some code. You test it. You write more code. You test it. This goes on for a long while. During this process, even the best of us make lots of mistakes</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/accelerometer_setup_and_easy_fine-tuning?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Introduction</title>
        <link>https://wiki.sparrow-framework.org/tutorials/accelerometer_setup_and_easy_fine-tuning?rev=1362475192&amp;do=diff</link>
        <description>Introduction

Using the accelerometer in applications has become an intuitive and popular way of allowing user input, especially for gaming applications.  This tutorial will cover the following in regard to accelerometer use:

	*  Setup and Retrieval Code
	*  Fine-tuning Accelerometer Data
	*  Movement Using Accelerometer Data: An Example
	*  Appendix: Mathematics Behind Fine-tuning

Objective-C proficiency is assumed.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/advanced_animation_techniques?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Advanced Animation Techniques</title>
        <link>https://wiki.sparrow-framework.org/tutorials/advanced_animation_techniques?rev=1362475192&amp;do=diff</link>
        <description>Advanced Animation Techniques

Now, you think you know all about Sparrow&#039;s animation system after what you have read so far? But we have merely scratched the surface! Get ready for the final part of this tutorial to find uses of the juggler you have probably never thought of!</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/all_about_textfields?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>All About TextFields</title>
        <link>https://wiki.sparrow-framework.org/tutorials/all_about_textfields?rev=1362475192&amp;do=diff</link>
        <description>All About TextFields

A Textfield is a Label or way to show text without an image. You can use and make a TextField quite simply using the following code samples.


// create the text field
SPTextField *textField = [SPTextField textFieldWithText:@&quot;blah!&quot;];
textField.fontName = @&quot;Georgia-Bold&quot;;
textField.fontSize = 18;
textField.color = 0xaaaaff; //0xRRGGBB

// add it to the display list!
[self addChild:textField];</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/auto-rotating_the_interface?rev=1369910854&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-30T10:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Auto-rotating a game</title>
        <link>https://wiki.sparrow-framework.org/tutorials/auto-rotating_the_interface?rev=1369910854&amp;do=diff</link>
        <description>Auto-rotating a game

Note: If you&#039;re using the Scaffold project of Sparrow 1.3 or 2.x, auto-rotation is already prepared for you. Find out all about it here.

If your game should support different orientations and be updated automatically when you rotate your device, that&#039;s easy to do.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/automatically_update_the_screen_orientation?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Automatically update the screen orientation</title>
        <link>https://wiki.sparrow-framework.org/tutorials/automatically_update_the_screen_orientation?rev=1362475192&amp;do=diff</link>
        <description>Automatically update the screen orientation

Here&#039;s a very useful code-snippet from this forum thread. Thanks, Arend!

One great thing about the iDevices is that you can detect the orientation of the screen and rotate the content accordingly. Here is a way to do it in Sparrow.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/basic_collision_detection?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Basic Collision Detection</title>
        <link>https://wiki.sparrow-framework.org/tutorials/basic_collision_detection?rev=1362475192&amp;do=diff</link>
        <description>Basic Collision Detection

Collision detection is a substantial part of almost all games. Unfortunately it is also a part where lots of CPU cycles can get lost, resulting in choppy game-play and short battery life. In order to keep calculation costs down, it helps to exit collision detection code as soon as possible. Gradually refining the detection complexity helps doing so. Using Sparrow, we recommend a 3 step approach to collision detection:</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch_xcode_3?rev=1404376519&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-07-03T08:35:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to create a Sparrow project from scratch (Xcode 3)</title>
        <link>https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch_xcode_3?rev=1404376519&amp;do=diff</link>
        <description>How to create a Sparrow project from scratch (Xcode 3)

Sometimes, you want to use Sparrow without having the option to use the app scaffold or the Xcode template. This can happen e.g. when you want to integrate Sparrow into an existing project. This is a topic that pops up regularly in the forum.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch_xcode_4?rev=1404376355&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-07-03T08:32:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to create a Sparrow project from scratch (Xcode 4)</title>
        <link>https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch_xcode_4?rev=1404376355&amp;do=diff</link>
        <description>How to create a Sparrow project from scratch (Xcode 4)

Sometimes, you want to use Sparrow without having the option to use the app scaffold or the Xcode template. This can happen e.g. when you want to integrate Sparrow into an existing project. This is a topic that pops up regularly in the forum.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch?rev=1404731446&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-07-07T11:10:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to create a Sparrow Project from Scratch</title>
        <link>https://wiki.sparrow-framework.org/tutorials/creating_a_sparrow_project_from_scratch?rev=1404731446&amp;do=diff</link>
        <description>How to create a Sparrow Project from Scratch

This tutorials shows you how to get from a brand-new, empty Xcode project to a Sparrow-powered scaffold. It requires at least Sparrow 2.1 and Xcode 5.

Create a new Xcode Project

Via “File - New - Project</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/creating_color_gradients?rev=1369906195&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-30T09:29:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to create color gradients</title>
        <link>https://wiki.sparrow-framework.org/tutorials/creating_color_gradients?rev=1369906195&amp;do=diff</link>
        <description>How to create color gradients

In Sparrow, gradients are created with the help of the SPQuad-class. A quad is just a rectangle with a color (but without a texture). And if you look at the interface of SPQuad, you’ll see that you can not only set one color, but four of them: one per vertex. This is a very simple and efficient way to create color gradients.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/custom_transitions?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Custom transitions</title>
        <link>https://wiki.sparrow-framework.org/tutorials/custom_transitions?rev=1362475192&amp;do=diff</link>
        <description>Custom transitions

To add a custom transition, you just have to extend the SPTransitions class using a category, and add your custom transition. The name of the transition method will be the name that you have to use when you create the tween. Here is a sample:</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/drawing_trails?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Drawing Trails</title>
        <link>https://wiki.sparrow-framework.org/tutorials/drawing_trails?rev=1362475192&amp;do=diff</link>
        <description>Drawing Trails

You can use Sparrow&#039;s SPrenderTexture to draw trails and create interesting effects.  to do this we stamp an object repeatedly onto a render texture then stamp a colored quad on top to fade it out.  

Try it with particles for some serious fun.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/finding_out_the_fps?rev=1369932453&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-30T16:47:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to find out the current number of frames per second</title>
        <link>https://wiki.sparrow-framework.org/tutorials/finding_out_the_fps?rev=1369932453&amp;do=diff</link>
        <description>How to find out the current number of frames per second

Sparrow 2.x

You can set the target frame rate by updating a property on the “SPViewController”:


viewController.preferredFramesPerSecond = 60;


However, this won&#039;t tell you what the real framerate is. If there are many objects on the screen or your game logic needs a lot of CPU power, the device won&#039;t be able to render as many frames per second as you requested.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/flipping_an_object?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Flipping an object</title>
        <link>https://wiki.sparrow-framework.org/tutorials/flipping_an_object?rev=1362475192&amp;do=diff</link>
        <description>Flipping an object

Sometimes, you need to flip an object horizontally or vertically. Sparrow&#039;s display objects do not contain a property that allow you to do so directly. However, it&#039;s easy to do so with the scaleX and scaleY properties. You just have to use negative values!</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/intertial_scrolling?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Inertial Scrolling</title>
        <link>https://wiki.sparrow-framework.org/tutorials/intertial_scrolling?rev=1362475192&amp;do=diff</link>
        <description>Inertial Scrolling

On the iOS, scrolling works in way that feels very natural: when you move, say, a page in Safari, it doesn&#039;t stop moving immediately when you lift the finger off the screen. Instead, the page moves on and gets slower over time, coming to a full halt after about a second.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/iterating_over_child_objects?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to quickly iterate over the children of a container</title>
        <link>https://wiki.sparrow-framework.org/tutorials/iterating_over_child_objects?rev=1362475192&amp;do=diff</link>
        <description>How to quickly iterate over the children of a container

Display object containers (like SPSprite) can have numerous children. It&#039;s a common mission to do something with all of those children. This is, of course, done with a loop. Most of you will already have used a code like the following:</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/making_a_button?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Making a Button</title>
        <link>https://wiki.sparrow-framework.org/tutorials/making_a_button?rev=1362475192&amp;do=diff</link>
        <description>Making a Button

Making a Button in Sparrow is simple. The first thing you need to do is create a texture by using the following code:


SPTexture *texturename = [SPTexture textureWithContentsOfFile:@&quot;filename.png&quot;];


This create a placeholder named texturename that you can use many times to make buttons or just put it to the screen. This helps with speed of loading so you only have to load an image once and you can use it many times.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/making_hd_games?rev=1369910731&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-30T10:45:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Making HD games</title>
        <link>https://wiki.sparrow-framework.org/tutorials/making_hd_games?rev=1369910731&amp;do=diff</link>
        <description>Making HD games

[The Demo project in HD]

Before the release of the iPhone 4, developers were in the comforting situation that all iPhones had the same screen resolution (unlike Android developers, which have to support many kinds of displays). Now, with the arrival of the iPhone 4, there are two screen resolutions that can be targeted:</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/managing_game_scenes?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Managing Game Scenes</title>
        <link>https://wiki.sparrow-framework.org/tutorials/managing_game_scenes?rev=1362475192&amp;do=diff</link>
        <description>Managing Game Scenes

My Wiki Page



One of the most common questions I have encountered on the forums is regarding scene and memory management. I had trouble with this at first myself so here is a tutorial to explain it all.


Tutorial Request from markjsb

First of all, there are a couple things to explain.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/math_utilities?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Additions to SPPoint</title>
        <link>https://wiki.sparrow-framework.org/tutorials/math_utilities?rev=1362475192&amp;do=diff</link>
        <description>Additions to SPPoint

The following two functions are used in the below classes, that could go to SPPoint implementation. 


- (float) perpPoint: (SPPoint*) point {
    return self.x * point.y - self.y * point.x;
}
 
- (float) dot: (SPPoint*) p {
    return self.x * p.x + self.y * p.y;
}</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/media_class?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>A Media class</title>
        <link>https://wiki.sparrow-framework.org/tutorials/media_class?rev=1362475192&amp;do=diff</link>
        <description>A Media class

Textures and sounds are used throughout any game, so they should be collected in one place where they are easy to access. One way to do that is with the “Media” class that is shown below.

Add the class to your game and modify it to your needs (loading the correct texture atlas, etc.). This is how you use it:</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/modifying_the_color_of_an_image?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to modify the color of an image</title>
        <link>https://wiki.sparrow-framework.org/tutorials/modifying_the_color_of_an_image?rev=1362475192&amp;do=diff</link>
        <description>How to modify the color of an image

Have you ever wondered why Sparrow&#039;s SPImage class contains a color-property? Well, you can use that property to tint a texture in any color! 

While this can be used for different things, e.g. highlighting items of interest, I want to show you an especially useful way to save texture memory.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/more_about_jugglers?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>More about Jugglers</title>
        <link>https://wiki.sparrow-framework.org/tutorials/more_about_jugglers?rev=1362475192&amp;do=diff</link>
        <description>More about Jugglers

In reality, tweens and jugglers are very simple objects. If you understand how they work, you can handle all time-based stuff in your games very elegantly.

Tweens, inside out

Before we look at the juggler, however, we need to understand how tweens work internally. Let&#039;s look at the security door tween we&#039;ve created above:</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/more_about_tweens?rev=1372239486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-26T09:38:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>More about Tweens</title>
        <link>https://wiki.sparrow-framework.org/tutorials/more_about_tweens?rev=1372239486&amp;do=diff</link>
        <description>More about Tweens

What&#039;s a Tween, you ask? Let&#039;s have a look at Wikipedia: It tells us that Tweening is “the process of generating intermediate frames between two images to give the appearance that the first image evolves smoothly into the second image. Inbetweens are the drawings between the key frames which help to create the illusion of motion.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/non_destructive_drawing?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Non-destructive Drawing</title>
        <link>https://wiki.sparrow-framework.org/tutorials/non_destructive_drawing?rev=1362475192&amp;do=diff</link>
        <description>Non-destructive Drawing

Sparrow&#039;s SPRenderTexture allows you to do nondestructive drawing on a bitmapped style canvas.  You can use different images with transparency to create interesting brushes.



To do this you will want to create 2x SPImages.  1 with your brush texture and 1 with your canvas.  The canvas will need to use an SPRenderTexture as it&#039;s backing.  You will then want to create an a touch handler and an enter frame handler to process the touch events, since render textures can get…</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/point_in_rotated_object?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Check if point is in a rotated object</title>
        <link>https://wiki.sparrow-framework.org/tutorials/point_in_rotated_object?rev=1362475192&amp;do=diff</link>
        <description>Check if point is in a rotated object

Hey everyone,

This is based on this Corona snippet. (I just converted it to Obj-C :P)

You&#039;d probably use this for collision detection and run this in the enter frame:


-(bool) isPoint:(SPPoint *)point inRotatedObject:(SPDisplayObject *)obj {
    double c = cos(-obj.rotation * (PI/180));
    double s = sin(-obj.rotation * (PI/180));
    float rotatedX = obj.x + c * (point.x - obj.x) - s * (point.y - obj.y);
    float rotatedY = obj.y + s * (point.x - obj.…</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/pvr_textures?rev=1369910556&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-30T10:42:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PVR Textures</title>
        <link>https://wiki.sparrow-framework.org/tutorials/pvr_textures?rev=1369910556&amp;do=diff</link>
        <description>PVR Textures

The contents of this tutorial was moved into the manual: PVR Textures</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/rendering_objects_into_a_uiimage?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to render objects into an image</title>
        <link>https://wiki.sparrow-framework.org/tutorials/rendering_objects_into_a_uiimage?rev=1362475192&amp;do=diff</link>
        <description>How to render objects into an image

For , Holger needed to render Sparrow objects into a JPG file.

In order to accomplish that the whole display tree has to be rendered to an exportable image. That&#039;s why he extended the SPRenderTexture to allow rendering it to an UIImage.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/rotating_an_object_around_a_custom_point?rev=1378293289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-09-04T11:14:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Rotating an object around a custom point</title>
        <link>https://wiki.sparrow-framework.org/tutorials/rotating_an_object_around_a_custom_point?rev=1378293289&amp;do=diff</link>
        <description>Rotating an object around a custom point

Beginning with Sparrow 1.2, it&#039;s very easy to rotate an object around a custom point, thanks to the new “Pivot Point” feature. Nevertheless, it is interesting to know how it is done without pivot points ---</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/sound_on_ios_-_best_practices?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sound on iOS: Best practices</title>
        <link>https://wiki.sparrow-framework.org/tutorials/sound_on_ios_-_best_practices?rev=1362475192&amp;do=diff</link>
        <description>Sound on iOS: Best practices



The Sparrow audio classes were designed in a way that you don&#039;t have to care about the file format; no matter what kind of sound you play, you use the same code.

However, because of the hardware limitations of the iPhone family, there are some guidelines you should follow for best performance. This post summarizes the most important points and shows you how to apply them.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/start?rev=1713595600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-20T06:46:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Tutorials</title>
        <link>https://wiki.sparrow-framework.org/tutorials/start?rev=1713595600&amp;do=diff</link>
        <description>สุขภาพที่ดีเป็นพื้นฐานที่สำคัญสำหรับการมีคุณภาพชีวิตที่ดีในสังคมปัจจุบัน การดูแลสุขภาพที่ดีไม่เพียงแต่เป็นเรื่องของการรักษาโรคและการออกกำลังกายเพื่อความแข็งแรงของร่างกายเท่านั้น แต่ยังเป็นการรักษาสุขภาพจิต การสร้างความสุขในชีวิต และการเสริมสร้างความสัมพันธ์ที่ดีกับผู้อื่น การมี…</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/texture_formats_best_practices?rev=1369910497&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-30T10:41:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Texture Formats: Best practices</title>
        <link>https://wiki.sparrow-framework.org/tutorials/texture_formats_best_practices?rev=1369910497&amp;do=diff</link>
        <description>Texture Formats: Best practices

The contents of this tutorial was moved into the manual:

	*  Textures and Images
	*  Texture Formats</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/tilemaps_with_compiled_sprites?rev=1369906803&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-30T09:40:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Tilemaps with compiled sprites</title>
        <link>https://wiki.sparrow-framework.org/tutorials/tilemaps_with_compiled_sprites?rev=1369906803&amp;do=diff</link>
        <description>Tilemaps with compiled sprites



Creating large tile maps is a challenging thing to do with opengles, especially with older IOS hardware.  Once done however you can design very large levels with minimal collision code.   For more info on tile based games there is a very good (if old)</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/using_a_texture_atlas?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Using a texture atlas</title>
        <link>https://wiki.sparrow-framework.org/tutorials/using_a_texture_atlas?rev=1362475192&amp;do=diff</link>
        <description>Using a texture atlas

This tutorial has moved into the Manual: Textures and Images</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/using_bitmap_fonts?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Using bitmap fonts</title>
        <link>https://wiki.sparrow-framework.org/tutorials/using_bitmap_fonts?rev=1362475192&amp;do=diff</link>
        <description>Using bitmap fonts

Almost any game will have to display some text sooner or later. Sparrow makes it easy to do so:


SPTextField *textField = [SPTextField textFieldWithWidth:300 height:100 
                                      text:@&quot;This is some text.&quot;];
textField.fontName = @&quot;Georgia-Bold&quot;;
textField.fontSize = 18;
textField.hAlign = SPHAlignCenter; // horizontal alignment
textField.vAlign = SPVAlignCenter; // vertical alignment</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/using_iads_with_sparrow?rev=1452627640&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-12T19:40:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Using iAds with Sparrow</title>
        <link>https://wiki.sparrow-framework.org/tutorials/using_iads_with_sparrow?rev=1452627640&amp;do=diff</link>
        <description>Using iAds with Sparrow

My Wiki Page 

Tutorial Forum Post

iAds are a great way to make some money off the free version of your application. I have seen a couple people in the forums wanting to do ads and I was also curious about it. After playing around with iAds, I have successfully integrated them with Sparrow at the top or bottom of the screen in all orientations and on all devices.</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/using_landscape_mode?rev=1369910833&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-05-30T10:47:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Using Landscape Mode</title>
        <link>https://wiki.sparrow-framework.org/tutorials/using_landscape_mode?rev=1369910833&amp;do=diff</link>
        <description>Using Landscape Mode

Update: If you are using the Scaffold project of Sparrow 1.3 or 2.x, the process described below is already prepared for you. Find out all about it here.

When you create a new game in Sparrow, it uses portrait mode by default. Theoretically, you could rotate the Cocoa view object that Sparrow renders into</description>
    </item>
    <item rdf:about="https://wiki.sparrow-framework.org/tutorials/using_openfeint_with_sparrow?rev=1362475192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-05T09:19:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Using OpenFeint with Sparrow</title>
        <link>https://wiki.sparrow-framework.org/tutorials/using_openfeint_with_sparrow?rev=1362475192&amp;do=diff</link>
        <description>Using OpenFeint with Sparrow

My Wiki Page



OpenFeint is a powerful social framework for iOS games. It makes it easy to handle achievements, leaderboards, and sharing. You can even synchronize it with Game Center. This tutorial only covers a basic OpenFeint integration and not any advanced features.</description>
    </item>
</rdf:RDF>
