Date
1 - 5 of 5
Getting Started with Animations
Dave
Hi All,
I’m about to add some animations to my game and was wondering if any could give me some advice on the implementation given my App. This is for iOS Landscape only at present but I am intending on doing a Mac version too, so if it can be made as compatible as possible that would be good. The App is a Board Game, there are two main views, the left had side is a Player Area and the right hand side is the Board. The View Hierarchy is something like this: RootView LeftAreaView BoardView CellView’s (81 in total - 9 x 9). RightAreaView BagView ScrollView Containing the Host layer’s current Pieces Scroll View Containing the Player has the current turn. The way the game works is that Players pick pieces at Random from the Bag - the Actually “Picking” is done by the GameEngine and the View Controller gets sent a “Player X picked Piece Y” type message. When this occurs I want to Animate the piece Dropping from the “Bag” into the Players “Stash” (One of the Scroll Views). When a player makes a Move, the View Controller gets sent “Player X Moved Piece Y into Cell X” type message, in this case I want to animate the Piece being removed from the “Stash” and Placed on the board. What is the best way to achieve this? Do I use CALayer? All the Best Dave |
|
Yup, I would recommend using CALayers for the whole UI, pretty much. Back when Core Animation first came out I wrote a framework for building board/card games: It hasn’t been updated since 2011 so it probably needs some fixes for API changes, but I still think the basic design is pretty well thought out. The goal was that you could implement a simple game UI in <200 lines of code, and there are examples included for checkers, tic-tac-toe, Klondike solitaire, and a few others. —Jens |
|
Dave
Thanks a lot Jens. I’ll download it now and take a look.
toggle quoted message
Show quoted text
All the Best Dave On 13 Jul 2017, at 15:13, Dave <dave@...> wrote: |
|
Dave
Hi Again,
toggle quoted message
Show quoted text
I’ve taken a look at Geek Game Board and I’m finding it a but hard to know where to start. I’ve developed my game to the point where the game engine sends messages to the Game View Controller which cause a Subview to the Game Cell. I now just want to animate that process, so basically in my view controller I want the View to fly across the screen from the left player area to a position in the board view. In order to do this, do I create a new CALayer or do I use the CALayer of the View I’m moving. I’m just having problems seeing where I add the code, simplified, the it looks like this: GameViewController RootView LeftView ScrollView PieceView This View is taken from the Scroll View and RightView BoardView CellView1 to CellView81 Added as a Subview of one of these Views. If anyone knows of a really simple Sample App that shows how to do this I’d be really grateful if you could point me to it. All the Best Dave
|
|
It’s been years since I did much with CoreAnimation, but IIRC a layer is clipped to its parent layer, so if you want this to happen you need to make the view temporarily be a direct subview of your RootView. I.e. remove it from its superview, add it to the RootView (doing some coordinate transformation so its at the same place on the screen), run the animation, and when the animation finishes do the same in reverse but ending up in the BoardView. You may want to consider not using a view hierarchy, at least for the views that need to move around a lot. —Jens |
|