Lo and behold! GridPaint version 2 has been revived!
Here’s a screenshot, made from the the app!
GP2 is powered by LibGdx and OpenGL. It supports a limitless world and zoom and move features.
I’m developing the menu handling for the MOGA controller in my maze game MultiMaze. When the KEYCODE_DPAD_UP button is pressed I want to change focus to the button below the current button. I had some trouble finding a nextFocus method but I’ve now found the excellent getNextFocusDownId method.
So I’ll specify a button in the XML like this:
<Button android:id="@+id/multiplayer_button" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/singleplayer_button" android:text="@string/main_menu_multiplayer_text"/>
Then when I detect a DPAD_UP signal I’ll focus the button above with the following code:
Button upButton = (Button)findViewById(multiplayerButton.getNextFocusUpId()); upButton.requestFocus();
I’ve started looking on implementing the MOGA game controller to MultiMaze!
To get something working I ripped out the controller logic from a sample project downloaded from here
Now I’m not using the standard Android InputDevice method but a MOGA library. My dream was to implement the MOGA controller and then MultiMaze would kind-of support all controllers but this will not be the case with this solution.
So I got the actual game logic to work with the controller, i.e. moving north, east, south, west, up, down and back, using the D(irectional)-PAD and the A(up/down) and B(back) buttons. Now I’ve got to make a nice solution so that the user can also navigate the menus and dialogs.
Progress so far:
Good MOGA Pro Controller FAQ
Here’s a good intro to Android game controllers:
Finally, nine months after the last release, MultiMaze has a new release. And what a release! New features:
There’s also work done to get the long awaited third level, but I’ll come in the next big release together with Google Play Games Realtime Multiplayer support!
Today I added a flash screen to MultiMaze. On the screen I wanted to have a MultiMaze “player” run across the screen. This is how I achieved it:
// Animate the players fluttering cape ImageView playerImageView = (ImageView)this.findViewById(R.id.player); AnimationDrawable playerFlutterAnimation = new AnimationDrawable(); Drawable p1 = this.getResources().getDrawable(R.drawable.player_1); Drawable p2 = this.getResources().getDrawable(R.drawable.player_2); playerFlutterAnimation.addFrame(p1, 200); playerFlutterAnimation.addFrame(p2, 200); playerFlutterAnimation.setOneShot(false); playerImageView.setImageDrawable(playerFlutterAnimation); playerFlutterAnimation.start(); // Animate player movement from left to right ObjectAnimator playerMoveAnimation = ObjectAnimator.ofFloat(playerImageView, "translationX", -100f, 1000f); playerMoveAnimation.setDuration(3000); playerMoveAnimation.start();
Got my first real user boost yesterday. Usually I have around 20 installs per day. Yesterday that number was 128! Almost all the new users come from China, so a localized version of MM in simplified Chinese is a priority now! That and an improved South Korean version. The surge of new users resulted in a new Premium purchase! A good start of the new year!
MultiMaze Android game
Throughout the fall and winter I’ve been implementing Google Play Games Services to add leaderboards and achievements to the game. To get it working was quite simple but as always there are special cases to be dealt with that’s causing “delays”. For instance, the player must be signed in to Google Plus in the app to be able to unlock achievements but if the player unlocks achievements while not logged in the player’ll want to unlock them the next time he/she logs in!
I’ve also added NFC setup of Bluetooth sessions! It’s pretty damn cool!
Future tasks: Add Play Games Realtime-multiplayer support. SHOULD not be that hard but there’ll obviously be hard cases I haven’t thought about… Also, I’d like to add sound effects and a soundtrack to the game. The other major task is to add a third level to the game – the lava-level!
Sundsvall ÅVC Android app
Before christmas I released a new version of the app with improved notifications for when it’s time to roll out the garbage containers. I’ve also improved the inputting of data to the server and pushing of data to GCM/clients. I’ve posted one Sundsvall ÅVC-ad on the local recycling station. No new users though.
Future tasks: Make the startup-ad in the app dynamic with images and link. Post more ads on the recycling stations in the city.
Project Run Sundsvall website
This fall/winter I’ve made long due improvements to the inputting of data to the server. Now it’s much easier to push a new track to the server so hopefully I’ll update my running tracks/event much more frequently in the future!
Future tasks: Add controls to the main page of the project. For example make it possible to see only the last three months or last year or a specific year and so on. It would also be nice to be able to filter on track-type (e.g. only from home to home).
GridPaint Android app
After the summer I made a total re-haul of the pattern-making-app using LibGDX (an OpenGL wrapper/library). I got cool mirroring functionality working but there were some bugs that I didn’t have the determination to push through so the project is put on hold…
Let’s solve the last layer of the Rubic’s cube!
In this, the last post, I’ll show you how to solve the last and hardest layer.
1. Create a yellow cross in the last layer using the algorithm:
if you have the following placement of yellow bits:
if you have the following yellow placements:
2. Place the four corner bits on the correct places using:
3. Flip three corners up to complete the yellow layer using:
4. Fix the middle pieces in the last layer by applying: