|
  
|
|
|||||||
| Development Discussions All developers who are coding games may stop by here for any help, suggestions, and everything development related. |
![]() |
|
|
LinkBack | Thread Tools |
|
|
#1 (permalink) |
|
Jr. Zuner
Join Date: May 2008
Posts: 33
Reputation: 15
Donate |
All
Very early days, just wanted to something is happening. I know there's at least one other Pac Man dev on the boards but I want to create something *very, very* close to the original. Cheers. - Gunston |
|
|
|
| Remove Advertisements Sponsored Links | |
Advertisement |
|
|
|
#3 (permalink) |
|
Support Team
Super Zuner Join Date: Mar 2007
Location: New York
Posts: 1,629
Reputation: 130
Donate |
I don't even think he's finished yet, so I don't think he will post a download.
Good luck and keep up the good work, I'm looking forward to playing.
__________________
To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. Throw Ya L's Up To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. ![]() ![]() |
|
|
|
|
|
#4 (permalink) | |
|
Pending
Support Team
zB Programmer Super Zuner Join Date: Nov 2006
Posts: 1,873
Reputation: 190
Donate |
http://www.zuneboards.com/forums/dev...ss-pacman.html
WTG. This is an a near-exact clone of pacman as well, what's your point?
__________________
Quote:
To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. |
|
|
|
|
|
|
#6 (permalink) |
|
Support Team
Expert Zuner Join Date: Nov 2007
Posts: 2,902
Reputation: 178
Donate |
Woot another pacman.
I guess i'll use whichever comes out first. ![]()
__________________
To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. ![]() ![]() |
|
|
|
|
|
#8 (permalink) | |
|
Jr. Zuner
Join Date: May 2008
Posts: 33
Reputation: 15
Donate |
Quote:
Maybe you're doing the same thing, I haven't seen any footage or screen shots yet - care to share? By the way, I'm happy to share all my code and assets if you're interested. Good luck. Cheers, Gunston. |
|
|
|
|
|
|
#9 (permalink) | |
|
Jr. Zuner
Join Date: Jun 2008
Posts: 40
Reputation: 10
Donate |
Quote:
But wow, love ITTTTT!!!! =D ![]() |
|
|
|
|
|
|
#10 (permalink) | ||
|
Pending
Support Team
zB Programmer Super Zuner Join Date: Nov 2006
Posts: 1,873
Reputation: 190
Donate |
Quote:
__________________
Quote:
To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. Last edited by Marshillboy : 06-11-2008 at 08:11 PM. |
||
|
|
|
|
|
#12 (permalink) |
|
Jr. Member
Join Date: Nov 2007
Posts: 470
Reputation: 21
Donate |
Wow! It looks so great!!!!
__________________
To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. Alright! Here is my new website, about the ZUNE!!! Visit if you like and tell me how it looks! To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. Supporting DarkZune! To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. ![]() |
|
|
|
|
|
#14 (permalink) |
|
Jr. Zuner
Join Date: May 2008
Posts: 33
Reputation: 15
Donate |
@Marshillboy
What you're doing re collision rectangles for the maze sounds like a lot of work. If you're using the original Pac Man maze, it's just a grid of 28 columns and 31 rows. Each 'cell' in the grid is 8x8 pixels. This fits neatly on the Zune screen. Here's my string layout: XXXXXXXXXXXXXXXXXXXXXXXXXXXX X000000000000XX000000000000X X0XXXX0XXXXX0XX0XXXXX0XXXX0X X*XXXX0XXXXX0XX0XXXXX0XXXX*X X0XXXX0XXXXX0XX0XXXXX0XXXX0X X00000000000000000000000000X X0XXXX0XX0XXXXXXXX0XX0XXXX0X X0XXXX0XX0XXXXXXXX0XX0XXXX0X X000000XX0000XX0000XX000000X XXXXXX0XXXXXVXXVXXXXX0XXXXXX XXXXXX0XXXXXVXXVXXXXX0XXXXXX XXXXXX0XXVVVVVVVVVVXX0XXXXXX XXXXXX0XXVXXXXXXXXVXX0XXXXXX XXXXXX0XXVXXXXXXXXVXX0XXXXXX ------0VVVXXXXXXXXVVV0------ XXXXXX0XXVXXXXXXXXVXX0XXXXXX XXXXXX0XXVXXXXXXXXVXX0XXXXXX XXXXXX0XXVVVVVVVVVVXX0XXXXXX XXXXXX0XXVXXXXXXXXVXX0XXXXXX XXXXXX0XXVXXXXXXXXVXX0XXXXXX X000000000000XX000000000000X X0XXXX0XXXXX0XX0XXXXX0XXXX0X X0XXXX0XXXXX0XX0XXXXX0XXXX0X X*00XX0000000VV0000000XX00*X XXX0XX0XX0XXXXXXXX0XX0XX0XXX XXX0XX0XX0XXXXXXXX0XX0XX0XXX X000000XX0000XX0000XX000000X X0XXXXXXXXXX0XX0XXXXXXXXXX0X X0XXXXXXXXXX0XX0XXXXXXXXXX0X X00000000000000000000000000X XXXXXXXXXXXXXXXXXXXXXXXXXXXX 'X' is a solid block. '-' is causes Ghost slowdown (as they go through tunnels). 'V' is a void cell (nothing going on). '0' is a pacdot. '*' is a power pellet. I basically read this string layout (from an XML file) and generate a Maze object. I can then use 'if (maze[col, row + 1] is SolidBlock)' to determine whether a Ghost (or Pac Man) can move down). Simplistic but effective. I used a similar scheme for my Manic Miner game (download at gameprojects.com). Many retro games can be represented in this block fashion. FWIW, my Ghosts are just moving randomly at the moment with some subtleties around *preferring* to go left or right if they hit a wall when moving up or down (and vice versa). Cheers. - Gunston |
|
|
|
|
|
#15 (permalink) |
|
zB Programmer
Member Join Date: Feb 2008
Posts: 509
Reputation: 62
Donate |
Collaboration is preferable. I like the mapping, it goes along with my idea of making pacman run on a track (pacman begins the game moving a specified direction on a specified chunk of track, and +/- roughly 5 pixels in any direction as pacman approaches any track intersections, the game signals the button polling to see if left, right, up, or down is pressed.. and if so, and it's a usable direction change, do it when pacman hits the intersection coordinates.)
![]() |
|
|
|
|
|
#16 (permalink) |
|
Jr. Zuner
Join Date: May 2008
Posts: 33
Reputation: 15
Donate |
@umisguy
Just to give you more of a flavour, here's my Ghost.Update() method (at end of this post). Code requires some tidying up and is posted as is. The Ghost object has a Vector2-type Position attribute which is per pixel (Ghosts typically move at 2 pixels per frame [same as Pac Man]). 'Direction' defined as a bitwise enum: enum Direction { None = 0, Left = 1, Right = 2, Up = 4, Down = 8 } Here's the code to choose a random direction, given a set of available directions (specified in mask): private Direction RandomDirection(Direction mask) { Direction direction = Direction.None; while (direction == Direction.None) { Direction anyDirection = (Direction)(1 << (Ghost.random.Next(0, 4))); if ((mask & anyDirection) != 0) { direction = anyDirection; break; } } return direction; } public override void Update(GameTime gameTime) { IFrame frame = this.Frame; if (frame.HasRunTimeElapsed(this.LastUpdateTime, Ghost.UpdateInterval)) { IBlockLayout layout = this.Maze.Layout; // Is Ghost at a maze intersection? if (layout.IsWholeCol(this.X) && layout.IsWholeRow(this.Y)) { int col; int row; layout.Translate(this.Position, out col, out row); Direction directions = Direction.None; // Left? if (col > 0) { if (!(this.Maze[col - 1, row] is SolidBlock)) { directions |= Direction.Left; } } // Right? if (col < layout.Cols - 1) { if (!(this.Maze[col + 1, row] is SolidBlock)) { directions |= Direction.Right; } } // Up? if (row > 0) { if (!(this.Maze[col, row - 1] is SolidBlock)) { directions |= Direction.Up; } } // Down? if (row < layout.Rows - 1) { if (!(this.Maze[col, row + 1] is SolidBlock)) { directions |= Direction.Down; } } // CRITICAL: unless the maze is broken, we should have a place to go ValidationHelper.ValidateAssertion(directions != Direction.None); if (this.direction == Direction.None) { this.direction = this.RandomDirection(directions); } else if ((this.direction & (Direction.Up | Direction.Down)) != 0) { Direction mask = directions & (Direction.Left | Direction.Right); if (mask != 0) { if (Ghost.random.Next(0, 4) != 0) { this.direction = this.RandomDirection(mask); } } } else if ((this.direction & (Direction.Left | Direction.Right)) != 0) { Direction mask = directions & (Direction.Up | Direction.Down); if (mask != 0) { if (Ghost.random.Next(0, 4) != 0) { this.direction = this.RandomDirection(mask); } } } if ((this.direction & directions) == 0) { // NOTE: can't continue in current direction but logic above did not // throw up a 'random' route so just pick a new direction this.direction = this.RandomDirection(directions); } } switch (this.direction) { case Direction.Left: this.FrameIndex = (this.frameSet * this.Sheet.FrameCols) + this.frameOffset; this.X -= 2; break; case Direction.Right: this.FrameIndex = (this.frameSet * this.Sheet.FrameCols) + 1 + this.frameOffset; this.X += 2; break; case Direction.Up: this.FrameIndex = (this.frameSet * this.Sheet.FrameCols) + 2 + this.frameOffset; this.Y -= 2; break; case Direction.Down: this.FrameIndex = (this.frameSet * this.Sheet.FrameCols) + 3 + this.frameOffset; this.Y += 2; break; } // this.Screen.Layout.Focus = this.Position + this.Center; this.LastUpdateTime = frame.RunTime; } if (frame.HasRunTimeElapsed(this.lastAnimationTime, Ghost.AnimationInterval)) { if (this.frameOffset == 0) { this.frameOffset = 4; } else { this.frameOffset = 0; } this.lastAnimationTime = frame.RunTime; } } Cheers. - Gunston |
|
|
|
|
|
#20 (permalink) |
|
Experienced Zuner
Join Date: May 2008
Location: somewhere in NC my zunetag is username
Posts: 171
Reputation: 11
Donate |
wow amazing. ive been waiting for so long for this.
__________________
To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. To view links or images in signatures your post count must be 0 or greater. You currently have 0 posts. error occered, no keyboard, press (F1) to continue ![]() |
|
|
|