Some Tips and Tricks with Tweenlite

Well partaking of some forays into AS3 I came across this sweet utility: TweenLite. I highly recommend checking it out.

Here are some cool tricks that I wish I had known earlier.

1. Tweening scrollRect

        const scroller:DisplayObject; // This is the object that we want to display a portion of via scrollRect
	const scrollRect:Rectangle; // This is the scroll rect we tween the properties of
        private function centerScroll(player:Player) {
            TweenLite.to(scrollRect, 1.2, {x:player.x, y:player.y, onUpdate:updateScroll});
        }
	private function updateScroll():void {
		scroller.scrollRect = scrollRect;
	}

It is seriously that easy. The trick is knowing to use the onUpdate parameter to get around being unable to tween scrollRect directly.

2. Random Assemblage

Say you have a logo built out of dozens of tiny stars. You want this logo to assemble from a random starting configuration, but who has the time to micro-manage a bunch of little instances? Well, now, no one needs to. Behold:

for(var i:int = 0; i < numChildren; i++) {
	star = getChildAt(i);

	TweenLite.from(star, duration, {x:String(Math.random()*800 - 400), y:String(Math.random()*800 - 400)});
}

Just place this little snippet in the actions of your MovieClip. The secret here is using the iteration over all the child elements so we don’t have to name them. Also, we can use random numbers so we don’t have to bother laying them out, they just end up in the correct layout from wherever they happen to start.

I’m sure there are many more ways to utilize TweenLite to simply accomplish many amazing things, and I’d like to hear about them!

Web-ad((minn)|(amantiumm))-ing

I’ve been on hiatus from programming recently and instead have been focusing on getting the STRd6 site up and running. It is now to the point where content can start growing up out of it like a fertile ground. Soon it may even have a forum. I decided to use Joomla to power the site, it provides many things I need and takes much of the trouble out of getting a site that is easy to maintain, cross-browser compatible, and easy on the eyes. I’m going with Joomla 1.5 RC3 right now, which should save the trouble of upgrading later. One disadvantage is that there are limited extensions at present, but that should change over the next couple of months.

In other news, my computer has been on the fritz for ages, it freezes occasionally, but only occasionally. After an elaborate and boring diagnosis I tried doing random things. I uninstalled my Programmer Dvorak keyboard layout and switched to the ANSI Dvorak; that didn’t fix it. I updated the drivers to just about everything. Then I tried updating the BIOS and that’s when it got mad. Reset… power on … blank screen … “Beeeeeeeeeep. Beep. Beeeeeeeeep. … Beeep. … Beeeeeeeeeeep. Beeeeeeeeeeeeeep. … Beep.” I couldn’t find that exact sequence in the “Award BIOS Beep Code” section of my motherboard user’s manual, but the message was clear. “Ooohhhhh Shhhhhhiitt. … Beep” was what my motherboard was telling me.

After confirmed, please follow steps below to relief.
1. Clear the CMOS data.
(See "Close CMOS Header: JCMOS1" section)
2. Wait for seconds.
3. Power on the system again.

Oh, I cleared the CMOS data (after seeing “Close CMOS Header: JCMOS1” section). Oh, I waited for seconds. Oh, I powered on the system again. It made it. How many times have you been ballz deep in your PC toggling a CMOS jumper? I might try another BIOS update now that I have learned the knowledge to fix it when I mess it up. For now I’ll just live with the freezing… for now… !!!

Air Pressure Simulation

Here’s some images of the beginning stages of an atmospheric physics program. It uses the ideal gas law to determine the flow of molecules from high pressure areas to low pressure areas. It still needs tweaking to get a less turbulent dispersion; currently the pressure swings are around 5 kPa which is quite a lot compared to how real air mixes on a calm day.

1500ºK - 11500ºK - 21500ºK - 31500ºK - 4

This begins with randomly assigned temperatures from 0 – 3000 ºK for each cell, then lets the pressure naturally disperse them. Each cell begins with the same amount of molecules (134 moles) and occupies 3 cubic meters.

275ºK -1275ºK -2275ºK -3275ºK -4275ºK -5275ºK -6275ºK -8275ºK -10

Here is another selection, with starting temperatures from  0-550 ºK.

The eventual goal of this physics engine is to get a more realistic physical model for games similar to Dwarf Fortress. It will expand to cover liquids, combustion, state changes in matter, etc. The model is based on cellular automata so each cell only needs to check its neighbors.

It’s Astrotastic

Over the Thanksgiving holiday I was able to begin play-testing my latest project. The game is a quick little space adventure where the players explore their damaged spacecraft and collect items before escaping. The rooms are on cards, similar to Zombies; there are a few fixed rooms to begin with, with the rest being dealt out as the players explore. Players pick up bonus items to score points as well as power-ups to make exploration easier. Once the first player exits the craft the others have a limited time to escape as well.

The play-tests showed that the game is quick and fun, but that the card and room distribution could be optimized. Also, allowing trading might be a good way to make the game more interactive without adding too much complexity.

The next step is going from the pencil-on-notecards prototype to getting actual art and shippable materials. With luck it may be available before Christmas.