KK Controllers 1.7.0 script by karim kashefy: http://www.creativecrash.com/maya/downloads/scripts-plugins/character/c/kk_controllers--2
KK Controllers 1.7.0 is a MEL script for creating various 3D rig control icons.
Language: MEL
Type: Maya Editor Script
Script Files: 1
Number of lines: 1773
Functionality: 8.5
The script has some nice functionality in creating 28 different kinds of control icons as well as 1D and 2D sliders. The UI allows for selecting different colors as well as locking various transform, rotate, scale and visibility controls on the controls created. There are also options for mirroring and combining the controls.
Design: 5.5
The code has a lot of magic strings and builtin curves, but overall does a pretty good job of separating out the logic into separate small functions. There are a few quite large functions that have a number of long if/else checks that make the code a little more complex than it should be. In a few cases some of the functionality is repeated with one variable change (which should be separate out into a function that takes that variable).
Style: 5
The formatting and spacing is inconsistent and in a few places even some of the functions are intended which makes the code hard to read. The bracket nesting is not consistent and a few places make the code difficult to read. The naming of functions and variables could be a little more descriptive, since a function name b1-b28 does not really clearly state what is happening in those functions.
Documentation: 5.5
The code comes with a readme and a history example, but has very little comments in the code itself. Since there are such non-descriptive function and variable names, the code really needs some extra comments to help separate out what functionality is supposed to be doing.
Reusability: 5
The code has a few functions that could be reusable, but the code in a lot of places is not obvious what it is supposed to do based on the function names. The code style would also help improve how much debugging would be required in maintaining this script.
Overall: 7
The functionality is actually quite nice, and the controls that are created are well done. The code itself works, but there might be a bit more room for improvement in making it more flexible for extensions and bug fixes.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Tuesday, February 14, 2012
Monday, February 13, 2012
Code of the Day: XPM
XPM.mel 2.0.0 script by ewertb: http://www.creativecrash.com/maya/downloads/scripts-plugins/interface-display/c/xpm-mel
XPM.mel 2.0.0 allows MEL access to the builtin .xpm Maya icons located in the MayaRes.dll
Language: MEL
Type: Maya Editor Script
Script Files: 1
Number of lines: 8236
Functionality: 4.5
The script is interesting in that it attempts to create a window with all the icons from the MayaRes.dll, unfortunately instead of querying the dll or the icons folder, it uses an if/else for each version (and does not appear to include the 20XX series of Maya). The script creates a window with all the icons from the list and the name of the icon in the display (which is useful if you want to use builtin icons in any of your interfaces).
Design: 5.5
The code does not really share any of the list entries, nor does it have a base list that is common in all versions, but instead creates a single list (often with a significant number of duplicates, for each version). While it would complicate the code a bit to have options like (add or remove certain files), it would overall help better understand what has changed over the different versions of Maya. Otherwise, the code is very simple, but well organized.
Style: 6.5
The formatting and spacing is quite well organized, but it is really quite hard to look past a 8129 line function even if it is straightforward. Separating out the lists into separate functions would make the code more readable and while that is also an element of design, would definitely improve the style of this massive function.
Documentation: 7.5
The header and in code documentation give a good amount of information to the reader explaining what the code does (in a lot of cases with multi-line explanations which are nice). The code is not overly complex, but the comments are still nice to have on what is and is not included in the lists (no textures larger than 32x32).
Reusability: 4.5
The code is very specific to these lists of images, although the code does a pretty good job of commenting what is going on, and the actual functionality that is not related to the lists of images is pretty small. The first thing that would be worthwhile is some minor refactoring to separate out getting the lists into separate functions and organizing the code that displays the images from the code that gets the correct list of images. Otherwise the code should be fairly easy to maintain, but most of the icons in later versions of Maya seem available from the install anyway.
Overall: 4.5
It is probably still useful in older versions of Maya to see what icons are used, but about half the icons no longer exist in Maya 2012. Conceptually the idea is interesting of reusing Maya's icons, however because you do not have any control over which icons Maya keeps (or renames). From a maintenance (and often from a clarity perspective to avoid confusion if your script does something different than the icon script) it can often be better to use your own icons.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
XPM.mel 2.0.0 allows MEL access to the builtin .xpm Maya icons located in the MayaRes.dll
Language: MEL
Type: Maya Editor Script
Script Files: 1
Number of lines: 8236
Functionality: 4.5
The script is interesting in that it attempts to create a window with all the icons from the MayaRes.dll, unfortunately instead of querying the dll or the icons folder, it uses an if/else for each version (and does not appear to include the 20XX series of Maya). The script creates a window with all the icons from the list and the name of the icon in the display (which is useful if you want to use builtin icons in any of your interfaces).
Design: 5.5
The code does not really share any of the list entries, nor does it have a base list that is common in all versions, but instead creates a single list (often with a significant number of duplicates, for each version). While it would complicate the code a bit to have options like (add or remove certain files), it would overall help better understand what has changed over the different versions of Maya. Otherwise, the code is very simple, but well organized.
Style: 6.5
The formatting and spacing is quite well organized, but it is really quite hard to look past a 8129 line function even if it is straightforward. Separating out the lists into separate functions would make the code more readable and while that is also an element of design, would definitely improve the style of this massive function.
Documentation: 7.5
The header and in code documentation give a good amount of information to the reader explaining what the code does (in a lot of cases with multi-line explanations which are nice). The code is not overly complex, but the comments are still nice to have on what is and is not included in the lists (no textures larger than 32x32).
Reusability: 4.5
The code is very specific to these lists of images, although the code does a pretty good job of commenting what is going on, and the actual functionality that is not related to the lists of images is pretty small. The first thing that would be worthwhile is some minor refactoring to separate out getting the lists into separate functions and organizing the code that displays the images from the code that gets the correct list of images. Otherwise the code should be fairly easy to maintain, but most of the icons in later versions of Maya seem available from the install anyway.
Overall: 4.5
It is probably still useful in older versions of Maya to see what icons are used, but about half the icons no longer exist in Maya 2012. Conceptually the idea is interesting of reusing Maya's icons, however because you do not have any control over which icons Maya keeps (or renames). From a maintenance (and often from a clarity perspective to avoid confusion if your script does something different than the icon script) it can often be better to use your own icons.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Sunday, February 12, 2012
Code of the Day: AutoTangent
AutoTangent 1.0.3 script by martin freitag: http://www.creativecrash.com/maya/downloads/scripts-plugins/animation/c/autotangent
AutoTangent 1.0.3 is a script for changing selected Graph Editor Keys to a smooth tangent.
Language: MEL
Type: Maya Editor Script
Script Files: 1
Number of lines: 242
Functionality: 6.5
There are only two main options (flattening start and end keys, and a slider for setting the softness), yet the functionality is very helpful, and in some ways feels like it should be built into Maya as a default option. The results are good, the keys smooth nicely without overshooting.
Design: 6
The code is broken up into a number of functions, the UI is small and compact and the code does not use too many variables (one global variable). There are a few magic numbers (specifically 3.0) that doesn't seem to have much documentation on why it was used either. The error checking handles most cases generally. The main function is fairly long and could have a few areas broken up into smaller pieces to make them more reusable and smaller more robust code base.
Style: 5.5
The formatting is a little inconsistent and the spacing and indentation (especially on the comments) do not seem to follow a consistent standard. There are areas of the code (mostly print statements) that are commented out, which just clutters up the code base.
Documentation: 6.5
The header documentation is decent and some of the comments in the code are pretty good. For being a small file it is not too bad, although it would make for a nicer read if there was not any commented code left in the script.
Reusability: 5
The code is tightly coupled to the UI, and the use of global variables means than no function is capable of reuse without the rest of the code base. Maintainability wise, the code base is tiny, so would be easy to update or modify any bugs as required.
Overall: 6.5
Quick and helpful little script for quickly modifying animation key tangents. In some ways I would not be surprised to see this functionality eventually built into Maya, as it sounds like other packages (like MAX) already have a similar function. It can be a useful little script for now.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
AutoTangent 1.0.3 is a script for changing selected Graph Editor Keys to a smooth tangent.
Language: MEL
Type: Maya Editor Script
Script Files: 1
Number of lines: 242
Functionality: 6.5
There are only two main options (flattening start and end keys, and a slider for setting the softness), yet the functionality is very helpful, and in some ways feels like it should be built into Maya as a default option. The results are good, the keys smooth nicely without overshooting.
Design: 6
The code is broken up into a number of functions, the UI is small and compact and the code does not use too many variables (one global variable). There are a few magic numbers (specifically 3.0) that doesn't seem to have much documentation on why it was used either. The error checking handles most cases generally. The main function is fairly long and could have a few areas broken up into smaller pieces to make them more reusable and smaller more robust code base.
Style: 5.5
The formatting is a little inconsistent and the spacing and indentation (especially on the comments) do not seem to follow a consistent standard. There are areas of the code (mostly print statements) that are commented out, which just clutters up the code base.
Documentation: 6.5
The header documentation is decent and some of the comments in the code are pretty good. For being a small file it is not too bad, although it would make for a nicer read if there was not any commented code left in the script.
Reusability: 5
The code is tightly coupled to the UI, and the use of global variables means than no function is capable of reuse without the rest of the code base. Maintainability wise, the code base is tiny, so would be easy to update or modify any bugs as required.
Overall: 6.5
Quick and helpful little script for quickly modifying animation key tangents. In some ways I would not be surprised to see this functionality eventually built into Maya, as it sounds like other packages (like MAX) already have a similar function. It can be a useful little script for now.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Saturday, February 11, 2012
Code of the Day: Tornado Maker
Tornado Maker 1.1 script by maya.user: http://www.creativecrash.com/maya/downloads/scripts-plugins/c/tornadomaker
Tornado Maker 1.1 is a script for creating custom particle based tornado system.
Language: MEL
Type: Maya Editor Script
Script Files: 1
Number of lines: 1998
Functionality: 7.5
The code offers quite a number of options for creating an interesting tornado shape from a cylinder and control lattice, as well as quite a lot of control over the particles and emitters. The options are quite thorough and gives quite a bit of fine grain control over the emitters and movement of the particles.
Design: 6
The code is broken up into a number of small functions which are mostly encapsulated and single use. There are however quite a few global variables being used, and in a few cases the globals are used instead of passing variables into the functions. There is also somewhat of a routing table of functions where a string variable is passed to trigger a function. However, since there is not any additional processing that is done through the function routing table, it actually makes the code more confusing, since the function requires dummy variables to be passed which are often not actually used by the function that is eventually called.
Style: 6
The formatting and indentation and not entirely consistent and in a few places the scoping of nested if statements is difficult to read since the brackets are all in the same column. The variable names are fairly good and functions are fairly descriptive which helps. There was at least one instance where switch/case statements did not use very intuitive names (such as case 1 throught to case 14). This is a little confusing to follow and is not clearly documented what each case does which leads to even more confusion.
Documentation: 6.5
The user documentation located here: http://www.worldofmaya.com/d_tornado.html is very straightforward and does a good job of explaining the tools. The in code documentation is quite sparse however, and the code itself (outside the header) are barely commented at all (would be nice to know what the individual cases were used for).
Reusability: 5
The UI seems to be tightly coupled to a number of functions, which makes debugging more complicated and reuse far more unlikely. It is really the heavy use of globals and unusual formatting that would make this code difficult to maintain or extend.
Overall: 7
The functionality exceeds the code base, the tornado script is a little bit older than some of the other scripts available, but still does a nice job creating an interesting tornado quickly and easily.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Tornado Maker 1.1 is a script for creating custom particle based tornado system.
Language: MEL
Type: Maya Editor Script
Script Files: 1
Number of lines: 1998
Functionality: 7.5
The code offers quite a number of options for creating an interesting tornado shape from a cylinder and control lattice, as well as quite a lot of control over the particles and emitters. The options are quite thorough and gives quite a bit of fine grain control over the emitters and movement of the particles.
Design: 6
The code is broken up into a number of small functions which are mostly encapsulated and single use. There are however quite a few global variables being used, and in a few cases the globals are used instead of passing variables into the functions. There is also somewhat of a routing table of functions where a string variable is passed to trigger a function. However, since there is not any additional processing that is done through the function routing table, it actually makes the code more confusing, since the function requires dummy variables to be passed which are often not actually used by the function that is eventually called.
Style: 6
The formatting and indentation and not entirely consistent and in a few places the scoping of nested if statements is difficult to read since the brackets are all in the same column. The variable names are fairly good and functions are fairly descriptive which helps. There was at least one instance where switch/case statements did not use very intuitive names (such as case 1 throught to case 14). This is a little confusing to follow and is not clearly documented what each case does which leads to even more confusion.
Documentation: 6.5
The user documentation located here: http://www.worldofmaya.com/d_tornado.html is very straightforward and does a good job of explaining the tools. The in code documentation is quite sparse however, and the code itself (outside the header) are barely commented at all (would be nice to know what the individual cases were used for).
Reusability: 5
The UI seems to be tightly coupled to a number of functions, which makes debugging more complicated and reuse far more unlikely. It is really the heavy use of globals and unusual formatting that would make this code difficult to maintain or extend.
Overall: 7
The functionality exceeds the code base, the tornado script is a little bit older than some of the other scripts available, but still does a nice job creating an interesting tornado quickly and easily.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Friday, February 10, 2012
Code of the Day: Playblast Window
Playblast Window 0.0.2 script by Seamus O'Hearn: http://www.creativecrash.com/maya/downloads/scripts-plugins/camera/c/playblast-window
Playblast Window 0.0.2 is a simple script UI for creating specific playblast options.
Language: Python
Type: Maya Editor Script
Script Files: 1
Number of lines: 119
Functionality: 4.5
The code only offers a few options, mostly related to size which isn't a lot considering that many studios want to display certain elements or use certain compressions, formats etc. The code writes specifically to qt, with compression "H.264", everything off in the display except for polymeshes (with an option for ornaments) and using frame padding = 4. If those are the desired specs (with options for quality and size in the UI), than perhaps the functionality is enough. There do seems to be issues when attempting to add a file path (such as .avi) where the code cuts the last two digits off, the code should instead split on the . or preferably use os.path.splitext. It also looks like the code removes any spaces in directory names, which can invalid paths such as when used for example on a path that include "Program Files".
Design: 5.5
The code base is quite very small, and the functions are separated into UI, getting the file path and initializing the playblast. The code could be split into a few more functions and do a bit more error checking. Attempting to cancel out of the directory selection generates an error. In the UI there is a large warning mentioning which camera to use which is fine, but instead of the message, setting the camera and panel as options may be more intuitive and reusable.
Style: 5
The code comments itself says "it's pretty sloppy", which is honest. Overall, python by its nature does a pretty good job of keeping indentation and formatting similar, but there are a few places where variable names (such as "TheMagicalDirectory") are a little unusual and may not be entirely clear. The code only saw 12 style errors when run against pep8, but for the size of the file that is approximately 10%.
Documentation: 6.5
The code documentation in the header is pretty good. The code itself seems to be a bit overly commented (two of the functions have every line commented). In a few places the comments are useful, however in other places such as the example below, they are not necessary, and end up just cluttering the code.
#printed statement
print("Saved To")
Reusability: 5.5
The code base is tiny so it will be easy to maintain and extend. There are a few places that should have error checks, and the file extension code should be modified as I mentioned.
Overall: 4.5
Overall, the script is just too specific and with a few too many errors on basic use to be too reusable. I imagine that certain studios/artists would use it if there needs exactly matched the specifics of this file, but otherwise needs a few more options for widespread use (perhaps enabling the artist to choose to use the current playblast and/or modelPanel settings to override the builtin script settings).
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Playblast Window 0.0.2 is a simple script UI for creating specific playblast options.
Language: Python
Type: Maya Editor Script
Script Files: 1
Number of lines: 119
Functionality: 4.5
The code only offers a few options, mostly related to size which isn't a lot considering that many studios want to display certain elements or use certain compressions, formats etc. The code writes specifically to qt, with compression "H.264", everything off in the display except for polymeshes (with an option for ornaments) and using frame padding = 4. If those are the desired specs (with options for quality and size in the UI), than perhaps the functionality is enough. There do seems to be issues when attempting to add a file path (such as .avi) where the code cuts the last two digits off, the code should instead split on the . or preferably use os.path.splitext. It also looks like the code removes any spaces in directory names, which can invalid paths such as when used for example on a path that include "Program Files".
Design: 5.5
The code base is quite very small, and the functions are separated into UI, getting the file path and initializing the playblast. The code could be split into a few more functions and do a bit more error checking. Attempting to cancel out of the directory selection generates an error. In the UI there is a large warning mentioning which camera to use which is fine, but instead of the message, setting the camera and panel as options may be more intuitive and reusable.
Style: 5
The code comments itself says "it's pretty sloppy", which is honest. Overall, python by its nature does a pretty good job of keeping indentation and formatting similar, but there are a few places where variable names (such as "TheMagicalDirectory") are a little unusual and may not be entirely clear. The code only saw 12 style errors when run against pep8, but for the size of the file that is approximately 10%.
Documentation: 6.5
The code documentation in the header is pretty good. The code itself seems to be a bit overly commented (two of the functions have every line commented). In a few places the comments are useful, however in other places such as the example below, they are not necessary, and end up just cluttering the code.
#printed statement
print("Saved To")
Reusability: 5.5
The code base is tiny so it will be easy to maintain and extend. There are a few places that should have error checks, and the file extension code should be modified as I mentioned.
Overall: 4.5
Overall, the script is just too specific and with a few too many errors on basic use to be too reusable. I imagine that certain studios/artists would use it if there needs exactly matched the specifics of this file, but otherwise needs a few more options for widespread use (perhaps enabling the artist to choose to use the current playblast and/or modelPanel settings to override the builtin script settings).
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Thursday, February 9, 2012
Code of the Day: PAIE
PAIE 1.3.2 script by Jakob Welner: http://www.creativecrash.com/maya/downloads/scripts-plugins/animation/c/paie
PAIE 1.3.2 (Python Attribute Import/Export) is a script for exporting animation and pose information to a file, and importing them onto the same (or similar) character.
Language: Python
Type: Maya Editor Script
Script Files: 1
Number of lines: 2293
Functionality: 8
The code is quite useful is saving out and loading poses and attributes onto similar (at least in name) objects. It does rely heavily on naming conventions, but is overall a useful tool (giving information about when a file was saved, as well as uses the python pickle module to save out its data.
Design: 8
The code base makes good use of classes and object oriented programming techniques. The code does a good job of checking for exceptions, although in a few places I think checking the input may well prevent an exception from being thrown (such as initializing the GUI class), but some programmers do prefer exceptions in some cases (I prefer not to see it on class initialization without any variables however). There are a few places where both evalDeferred are used to spawn MEL code, but in unusual ways that seem like they might have other solutions (especially when creating the UI). While the data uses the pickle module, I can't help but feeling that using a standard format (like XML or JSON) might make the data more reusable and extendable than writing a custom format.
Style: 8
The code follows pep8 pretty closely (only ~20 warnings from running the code). However there are a few areas that would perhaps benefit from moving the code out into separate files. While the class architecture does help, the overall size of the file is bordering on being a bit larger than it needs to be, especially with standalone classes available which would promote reuse of the package/module. A few of the functions (especially reading and writing) are quite large and the code path can be a bit complex in these cases.
Documentation: 7
The header information is quite good, and there are comments through the code base, but not every class is documented, and doc strings are not consistently used, which would help improve the readability of the code. The example documentation of the structure is good and it helps that most of the code has good variable and class names.
Reusability: 8
The code has a number of pieces that could be reusable as the class architecture and OO development approach naturally does. There are a few places that the code may benefit from additional comments, and there are a couple global variables (debugger and UI) that would make debugging a bit more complicated. Using a custom file format means more care has to be done on writing any extensions, but otherwise is quite straightforward.
Overall: 8.5
Overall, nice functionality implemented in a useful and elegant way. The functionality is pretty useful, and while there are some tools that do similar things, I think the underlying architecture of this script is for the most part well thought through.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
PAIE 1.3.2 (Python Attribute Import/Export) is a script for exporting animation and pose information to a file, and importing them onto the same (or similar) character.
Language: Python
Type: Maya Editor Script
Script Files: 1
Number of lines: 2293
Functionality: 8
The code is quite useful is saving out and loading poses and attributes onto similar (at least in name) objects. It does rely heavily on naming conventions, but is overall a useful tool (giving information about when a file was saved, as well as uses the python pickle module to save out its data.
Design: 8
The code base makes good use of classes and object oriented programming techniques. The code does a good job of checking for exceptions, although in a few places I think checking the input may well prevent an exception from being thrown (such as initializing the GUI class), but some programmers do prefer exceptions in some cases (I prefer not to see it on class initialization without any variables however). There are a few places where both evalDeferred are used to spawn MEL code, but in unusual ways that seem like they might have other solutions (especially when creating the UI). While the data uses the pickle module, I can't help but feeling that using a standard format (like XML or JSON) might make the data more reusable and extendable than writing a custom format.
Style: 8
The code follows pep8 pretty closely (only ~20 warnings from running the code). However there are a few areas that would perhaps benefit from moving the code out into separate files. While the class architecture does help, the overall size of the file is bordering on being a bit larger than it needs to be, especially with standalone classes available which would promote reuse of the package/module. A few of the functions (especially reading and writing) are quite large and the code path can be a bit complex in these cases.
Documentation: 7
The header information is quite good, and there are comments through the code base, but not every class is documented, and doc strings are not consistently used, which would help improve the readability of the code. The example documentation of the structure is good and it helps that most of the code has good variable and class names.
Reusability: 8
The code has a number of pieces that could be reusable as the class architecture and OO development approach naturally does. There are a few places that the code may benefit from additional comments, and there are a couple global variables (debugger and UI) that would make debugging a bit more complicated. Using a custom file format means more care has to be done on writing any extensions, but otherwise is quite straightforward.
Overall: 8.5
Overall, nice functionality implemented in a useful and elegant way. The functionality is pretty useful, and while there are some tools that do similar things, I think the underlying architecture of this script is for the most part well thought through.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Book Review: More Python Programming for the Absolute Beginner
One thing I always want to do is try and look at programming from a fresh pair of eyes. While I am certainly not an absolute beginner it is sometimes interesting to see how a development book tries to instill the core concepts of programming into the new reader. In More Python Programming for the Absolute Beginner by Jonathan S. Harbour the focus is to hit the ground running. The book focuses on the pygame module to create 13 small games/demos including: Pie Game, Trivia, Bomb Catcher, Analog Clock, Orbiting Spaceship, Escape the Dragon, Zombie Mob, Block Breaker, Oil Spill, Snake, Tank Battle, Artillery Gunner and Dungeon RPG.
Overall, the code is quite straightforward and well contained, although in a few places it seemed like a little extra engineering might go over a few people's heads, but still produce more concrete code. The code examples actually get better with more classes and better encapsulation later on, and I suppose it can be a bit much to introduce everything to an "absolute beginner". One thing that I thought was interesting was the workarounds necessary to deal with the pygames sprite rotations: "Pygame does not correctly adjust for the change in image size when a sprite is rotated", the fix is to "shift the image by the amount of change in dimensions from the normal image to the rotated image" (pg 203, 205).
Overall, this is a pretty entertaining read, and gives some good quick examples of pygame. The book also links to the author's forum where there is more information and updates: http://jharbour.com/forum/index.php?PHPSESSID=f8s6pkk6tdvb47ullmqormult4&board=23.0
One of the most expansive topics was the Dungeon "Roguelike" RPG. For an example of that, see the link posted in the above forum at: http://roguebasin.roguelikedevelopment.org/index.php/Main_Page
It may be fun to experiment a bit more with pygame for some simple examples, but for now, I am focused far more on other python modules.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Overall, the code is quite straightforward and well contained, although in a few places it seemed like a little extra engineering might go over a few people's heads, but still produce more concrete code. The code examples actually get better with more classes and better encapsulation later on, and I suppose it can be a bit much to introduce everything to an "absolute beginner". One thing that I thought was interesting was the workarounds necessary to deal with the pygames sprite rotations: "Pygame does not correctly adjust for the change in image size when a sprite is rotated", the fix is to "shift the image by the amount of change in dimensions from the normal image to the rotated image" (pg 203, 205).
Overall, this is a pretty entertaining read, and gives some good quick examples of pygame. The book also links to the author's forum where there is more information and updates: http://jharbour.com/forum/index.php?PHPSESSID=f8s6pkk6tdvb47ullmqormult4&board=23.0
One of the most expansive topics was the Dungeon "Roguelike" RPG. For an example of that, see the link posted in the above forum at: http://roguebasin.roguelikedevelopment.org/index.php/Main_Page
It may be fun to experiment a bit more with pygame for some simple examples, but for now, I am focused far more on other python modules.
Until next time,
Michael Hubbard
http://michaelhubbard.ca
Subscribe to:
Posts (Atom)