NME is proving to be a great framework on top of haxe to use for multi-platform development. Currently learning the ins and outs of it by porting my CoronaSDK game to the language and platform.
Blog post will be coming showing my setup and how to get started so be on the lookout. Till then if you are at all doing Flash dev and want a more optimized platform for multi-platform development you should start checking this out.
Here are the bullet points of you should look at using to get started.
Going to start playing around with Starling and the new Stage3d for mobile in the next week or two and ran across this great FDT video. The debugging they give you looks awesome and you can debug wirelessly to the device!
Grab it on GitHub
This is an attempt to create a simple view manager class for corona sdk projects. The goal is to keep it simple and light. basically swapping out one view for another and adding some simple transition effects.
About the project
This project was started for my own personal use but please feel free too fork and add. I would like to add some other classes for doing stuff like modal or popup windows.
Questions or thoughts?
Send me a github message or hit me up on twitter http://twitter.com/matthewswallace
I recently had to create a sliding menu for a game I am working on. Coming from a Flash background I usually think in terms of, “how would I do this in flash?”, and it translates really well. Same goes for the functionality that I came up with for the menu component that I created so the user can swip from left to right to get to the next set of buttons.
The difference in Corona and flash that I found was the way you listen for events on the “stage”. The following video has some great little bits of info for advanced touch event features and logic. The first tip solved the issue I was having and it only took adding a couple more lines of code.
In hopes to save someone else a few hours of reading and digging I figured I would start posting some quick tips about some of the small things that will make your programming experience on iOS with coronasdk a little easier and let’s face it, make you feel more awesome that your applications does what it’s supposed to do when a user interacts with it.
If the user hits the home button on iOS the app closes and if they where in the middle of doing something, by default they will not be returned to that state in the app. Not sure why this is the default functionality but none the less I started searching on how to “save state” of the app when it’s interrupted by navigating to another application or clicking the home button to get back to the main screen.
If you do some googling as I did for “saving state”, or “coronasdk suspend” and so forth you will more than likely come across a few posts that suggest listening for and event that the applications is exiting and then figuring out a way to save the state of all the variables and logic needed to load the screen the user is on when they return to the app. This is totally the case and something you should do if you want to return them to that state if the app quit but suspend is different that quitting or exiting the app all together.
If you want the app to suspend and return to the screen and state that it’s in when the user navigates away and returns via “iOS multitasking” then the solution is very simple. Go into your app build.settings file and add the following line “UIApplicationExitsOnSuspend = false”. By default a corona app “Exits” the app when suspended by default. You are basically telling the app to suspend rather than exit by adding this to your build settings.
Coming in the next daily build (2011.645—should be up around 2am on the 25th of October), is a MAJOR update to the widget library.
The documentation pages have already been updated to reflect the changes, and I recommend viewing the list of “Known Issues” and “Recent Changes” to become familiar with this update.
Here are the main changes:
tableViews and scrollViews
These have been completely redesigned for stability and flexibility. Those who had problems with the tableViews before should immediately notice that there is no more losing rows, no more strange issues with category items, and now, you are completely free to decide WHAT goes in each row.
Each row, to include category items, are just another display group. You’ll decide what goes into each row by specifying an ‘onRender’ listener for each row and inserting objects into the listener’s event.view property. This means there’s a little more “setup” involved when it comes to creating tableViews, but you are now given a tremendous amount of flexibility that was not possible before.
During testing, we’ve noticed that on older devices (which include 2nd generation iPod touches and older), tableViews with 500+ rows (or just a huge amount) do tend to stutter and cause some problems. It’s not very user-friendly to have that many rows in a tableView anyway, so we recommend splitting up your lists by having a ‘Load 25 More’ row as the last item.
While the scrollView hasn’t changed all that much, the parameters have been made to be more consistent with the tableView (as well as the other widgets), and an unfortunate side effect to all the refinements of this update is the absence of scrollBars (same goes for tableViews). Please be patient as we’re working on restoring these in a future update. Until then, please enjoy the enhanced stability and flexibility these widgets now provide.
Since the pickerWheel actually relies heavily on the tableView widget, we had to revamp this widget as well. You’ll notice there’s more customization options and no more limit to how many rows you can have. We’ve also added an “alignment” and “startIndex” property to each column.
Currently, there are two known issues that we’re working on addressing in a future update. The first one is the fact that rows do not soft-land on specific items (as they do with the native iOS pickerWheel). The selected item will be whatever is in the selection area, whether it is centered or not.
The second known issue is that if you change the ‘y’ value of the pickerWheel (such as with a transition.to, to slide the pickerWheel up), then the ‘getValue()’ method will stop working. We recommend you instead “fade” the pickerWheel in if you want some kind of animation, as you cannot move the pickerWheel once it has been created without experiencing issues.
tabBar (brand new widget)
This is the much-requested tabBar widget that is brand new to this upcoming version of the widget library. It supports plenty of customization and an unlimited amount of tab buttons.
For iOS users, the default tabBar should look and feel just-right. For other platforms, or apps that need to deviate from the standard look, there are plenty of parameters you can set to get it looking just the way you want.
Here is the API documentation for the new tabBar:
Prior to this version, themes were hard-coded into the widget library and relied on updates to provide you with new themes. That is no longer the case.
Now, themes are Lua modules which contain tables (similar to config.lua) that correspond to specific widgets. Since widgets have been made to be more flexible, themes are simply preset parameters for the widget (that you can override on a per-widget basis). Themes will have a folder that also needs to be included in your project folder (along with the Lua module), which will contain the graphical assets that are required for that particular theme.
At the moment, there is only an iOS theme. We are working on an Android theme. You can take the iOS theme and modify it to create your own custom themes to share with others, or to simply have unique-looking widgets for your game or app.
Previously, the widget library modified the display.newText() function, which caused problems with the new multi-line text capabilities.
Now, the widget library no longer touches the display.newText(), and as of build 2011.645, there is now display.newRetinaText() and display.newEmbossedText() to take care of your retina-display and embossed text needs.
The segmented control has been removed from the widget library, but has been made open-source for anyone who still wants it:
The tabBar is more cross-platform friendly and serves almost the same purpose as the segmented control, still, the source is available for those who absolutely need/want it.
The toolbar has also been removed, because you can now create an empty tabBar (or just use an image) and place embossed text over it using the display.newEmbossedText() function.
Unfortunately, if you were currently using the widget library in your projects and you update to this new version that will come out with build 2011.246, your code will break. This library is still in beta and is subject to changes, but we feel like these changes were necessary to keep moving this library forward, and closer to a more stable condition. Most-likely there will not be anymore changes to this widget library as major as this one, since I believe this update addresses most of the major issues that were present in previous versions.
Please take a moment to look over the documentation, and prepare to migrate your previous widget code to be compatible with this new version—you’ll be glad you did 🙂
The WidgetDemo in Daily Build 2011.646 has also been completely revamped to take advantage of all these changes, and to further demonstrate basic widget usage.
All year I have been playing with the Corona SDK. I took a bit of a break over the summer because I got busy with my full time Flex / Flash Consulting. I started back working on a game about a month ago.
Anyway … I am really excited to have a subscription to coronasdk now so I can use all the great daily builds that are coming out. It’s apparent that the team is really working hard to roll out features that make the sdk more usable and I am sure we will continue to see a lot of great stuff come our way.
As of right now Bubble Ball is the number #1 app in the app store. “Big Deal” right? Well what makes this awesome is a couple of things. First and formost the app was developed by a 14 year old developer, Robert Nay. Number 2 the game play is awesome. Number 3 the developer used CoronaSDK to develop the app. Download it now and give it a try.
So, what does Bubble Ball have going for it? One word: Gameplay!
In Bubble Ball, you’re tasked with a simple mission: Get the ball from point A to point B. Each of the game’s 21 levels gives you a different route to navigate with different game pieces to assist in your deceptively simple-worded quest. Place the geometric pieces however which way you please to create ramps, platforms, and even catapults to send your ball to the finish line. At first, it’s easy; but in the later levels, it can be quite the stumper — but, you will not put your phone down until you figure the very last one out!
I have been using CoronaSDK for a while now. I am always on the lookout for tools that will make development faster. Keith Peters just developed and put out a tool that I know without a doubt that I will use. Enter SWFSheet, an AIR application that takes swf files and creates sprite sheets for you from the time line animations that you created in Flash. This is totally awesome. Now I can use my animation skills in Flash to create great png based sprites without too much effort at all.