Here I intend to publish all my software work, including problems I will have while implementing it. Also, there might be some posts added with no respect to the main subject. I apologise for that in advance.
This time you are in a role of paratrooper saver. It is you (and your boat) that can save those poor souls from shark jaws.
Game is another remake of Nintendo's handheld game Parachute. It has two game modes and slitghtly differs from my first remake of handheld game called Octopus.
Those three buttons on the right (top-down):
Game A mode
Game B mode
Time mode
Game center support provides two leaderboards - one for each game mode.
Well, after quite a time I have an interesting topic.
Let's say you've created a setup project in MS visual studio. That will give you MSI file, but with some limitation in creating process. Suppose you need some custom actions?
You can implement your own installer class with custom actions, that is explained in many places. You can run external programs within installation procedure (as well as at unistall step.)
But suppose you would like to configure installation procedure at runtime? How can you do that? With command line parameters.
Here is an example that worked for me. But it took me some before I figured out all parts of underlying mechanism and spice it up.
It's rather tricky. In custom action's CustomActionData property you must specify all parameters you expect (see this link's figure 4). If you don't, you won't get any data from command line at all.
In 'command line' instalation procedure you specify custom parameters like this:
param_name=param_value
You cannot pass just parameter name!
In code (VB), you get parameter's value like this:
It is wise to check a presence of parameter with ContainsKey function first.
The point is, that mechanism (if parameter is specified in customActionData property) always reports that parameter exists. It is it's value that counts.
If you set parameter value in command line, than you will get that value.
If you ommit parameter entirely, you will not get Nothing, but empty string!
It took me couple of hours to figure that out; I did not find any info on that...
This is a remake of ancient handheld game from 80's.
You are in a role of diver diving for treasure. But you have a lethal octopus on your way - it will kill you if it catches you. You move your diver with LEFT and RIGHT buttons. When you reach treasure chest press RIGHT again to grab some treasure. You must then return with treasure onboard the boat - without treasure you cannot board it.
Your diver will not just wait onboard to be 'pushed' into the sea. He will jump over board by himself when possible.
iPhone screenshot of version 3.
Game has two modes. A mode starts slow, B mode is faster. Game speed increases with score.
Time button displays local time when game is not running.
If you are logged into game canter it's shortcut icon will appear and score will be sent to leaderboard. If game is paused and user is switched, game will reset.
Report issues under comments, please.
Application update is available on iTunes AppStore.
I have began learning to play a guitar some time ago. However, I still have problems with left hand coordination and reading guitar tabs at the same time.
So I came up with this solution. I developed a program that can animate sequence of chords in a song. While playing a chord, next chord begins dropping down one tick before it must be played. Chords are also color-labeled so are easier to recognize and memorize. Open chords (base note, minor and 7) are colored by default. You can assign your own color to any chord, even default one.
This is a movie of a concept proof:
Final version is slightly modified:
Song name and tempo are read from file. You can change tempo when you're not 'running' file. After you touch 'GO!' you have 6 ticks to prepare for playing. Tempo ticks are marked with green indicator. Application also displays next 4 chords that are to be played. You can also mark chord with comment that is displayed above chord sequence like refrain or verse.
Song file format is simple and you can adopt your guitar tabs easily. Bellow is an example: Tammy Wynette's 'Stand By Your Man' written for this application and also displayed in screenshots. I think chord sequence should be mostly correct (but I am not much of the musician myself) - I checked it with original YouTube spot comparison. Save this text with acc (do not use capitals) extension and upload it into application file space through iTunes application file sharing.
<document spec="chordplayer">
<track name="Stand By Your Man" tempo="53"/>
<colors>
<color chord="C#m" r="255" g="20" b="147"/>
<color chord="C#" r="205" g="105" b="180"/>
<color chord="C#7" r="255" g="131" b="250"/>
<color chord="F#" r="0" g="199" b="140"/>
</colors>
<chords>
<!-- FIRST -->
<chord name="A" tacts="4" comment = "First"/>
<chord name="E" tacts="4"/>
<chord name="Bm" tacts="2"/>
<chord name="E7" tacts="2"/>
<chord name="A" tacts="4"/>
<chord name="D" tacts="4"/>
<chord name="A" tacts="4"/>
<chord name="B" tacts="4"/>
<chord name="E" tacts="4"/>
<!-- SECOND -->
<chord name="A" tacts="4" comment = "Second"/>
<chord name="E" tacts="4"/>
<chord name="Bm" tacts="2"/>
<chord name="E7" tacts="2"/>
<chord name="A" tacts="4"/>
<chord name="D" tacts="4"/>
<chord name="A" tacts="2"/>
<chord name="D" tacts="2"/>
<chord name="A" tacts="2"/>
<chord name="E7" tacts="2"/>
<chord name="A" tacts="1"/>
<chord name="D" tacts="1"/>
<chord name="A" tacts="1"/>
<chord name="E" tacts="1"/>
<!-- REF -->
<chord name="A" tacts="2" comment = "Refrain"/>
<chord name="C#" tacts="2"/>
<chord name="D" tacts="4"/>
<chord name="C#m" tacts="1"/>
<chord name="Bm" tacts="1"/>
<chord name="A" tacts="2"/>
<chord name="E7" tacts="2"/>
<chord name="C#7" tacts="1"/>
<chord name="F#" tacts="1"/>
<chord name="A" tacts="2"/>
<chord name="C#" tacts="2"/>
<chord name="C#m" tacts="1"/>
<chord name="Bm" tacts="1"/>
<chord name="A" tacts="2"/>
<chord name="E7" tacts="2"/>
<chord name="C#7" tacts="2"/>
<chord name="F#" tacts="2"/>
<chord name="D" tacts="2"/>
<chord name="E" tacts="2"/>
<chord name="A" tacts="2"/>
<chord name="D" tacts="1"/>
<chord name="A" tacts="1"/>
<chord name="E" tacts="1"/>
<chord name="A" tacts="1"/>
<chord name="D" tacts="1"/>
</chords>
</document>
Then simply open file in application, hit Go! and begin playing guitar. With this utility following chords while playing guitar should be easier.
Info ver.1.0: (no more available) colorization worked with open chords (base note, minor and 7). 'Unassigned' chords were grey.
Info ver.2.0:(current version) you can specify your own color scheme for chords with color HTML elements. Should you select a chord that has color assigned by default then it's color will be replaced with new one.
If you're looking for instructions of how to use iOS GPS Trainer application, this is the right place.
Application should be easy to use. It's core idea is that you can track your path for later use in Google Earth's KML format, but besides that, tracks are also timed so next time you will be able to 'compete' with yourself and hopefully watch your 'ghost from last run' falling behind you.
Stored tracks are accessible from iTunes. When you select this application they will appear on list. After they are stored on computer they can be opened in Google Earth with double click.
There is also a file named 'settings'. If you delete it, units format will be miles until changed and file will be created again. You cannot delete tracks from applicaiton, you can delete them from iTunes.
Each track has two files: KML (coordinates) and SPD (timing marks). You need both for 'ghost' mode. You can rename these files - but their names must match exactly - letter by letter, space by space. File names are also capital letters-dependant!
You can also upload tracks from other users on your device and compete with their ghosts. In this case they must give you KML and SPD file of their track and after you put them on your iPhone through iTunes you can compete immediately.
Track are named in following manner:
day_month_year_hour_minute_second
Track is saved only if at least one coordinate has been recorded.
When you start the application, you see map window with signal quality indicator (red or green light), distance displayed and settings button:
Zooming factor can be set with 'expand' gesture and will remain so until changed.
When you touch settings button, you enter Settings screen:
On this screen you can:
set units format,
start tracking,
display your current location
start competing with ghost
load previously saved track onto map
go back to map without changes
Set Units Format You can choose between kilometers or miles.
Tracking Start When you flip tracking switch to ON you go to 'tracking' mode. Application starts saving coordinates as soon as GPS signal is strong enough. Your recorded path is visible on map until you choose some other mode or flip tracking switch to OFF.
You should use following procedure list (it's easy as 1,2,3):
trigger tracking (flip Tracking switch to ON)
Run, run, run... and finish your track
stop tracking (flip Tracking switch to OFF)
and you'll have a track recorded. It will be visible on the track list next time you open settings page.
Display your current location You can see where you are, but any tracking or track viewing mode is suspended and curret track is saved.
Start competing with ghost You must select track from track list and GPS signal must be strong enough. There are two runner silhouetts displayed: ghosted one is your selected track, black one is your current location. You start with total track distance whitch decreaes with your movement. Path is tracked and therefore saved automaticaly - until you flip Tracking switch to OFF or choose other mode.
Loading saved track This is static representation of saved track. Path with start and stop pins is displayed. You must select track from list before you can use this mode.
There are no audio messages in this application (saving battery as much as possible). If tracing is ON, track is stored even if iPhone is deactivated - as long as application is active.
Since I plan to sell my iOS apps (and hopefully earn some pocket allowance) I had to fix financial aspects with Apple. Which means registering my bank account @ allmighty fruit.
Just couldn't do it! Utility kept informing me that my IBAN is invalid.
Googling gave some incomplete answers and I began steaming. But then enlightment came: I will contact Apple and wait a couple of weeks (so I have read). What else could I do?
Imagine my surprise then when I got response half an hour later! I was to send my IBAN so Apple accountants would 'decode' it.
That was B4 I went sleeping. Believe it or not - this morning complete answer was waiting in my e-mail and problem was fixed.