Subversion Repositories AndroidProjects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
244 chris 1
 
2
           PopCap Games Open Source Framework Demos
3
 
4
               http://developer.popcap.com
5
 
6
   Author: Jeff "Architekt" Weinstein
7
 
8
   	These demos are designed to quickly get you up to speed on
9
   	the most common and powerful features of the PopCap Framework.
10
   	Start at the first demo and completely read through each
11
   	.h and .cpp file. The suggested reading order is:
12
   	main.cpp, GameApp.h/.cpp, Board.h/.cpp and then any newly
13
   	added files after that. The demos are meant to illustrate some
14
   	of the most common and powerful features of the framework and
15
   	will not explain every single detail. However, after having
16
   	read through and understood each demo, you will be able
17
   	to figure out and understand the rest of the framework's
18
   	features.
19
       	Please note that the included images, sounds, and music
20
   	are taken from various PopCap games and may not be used
21
   	for commercial purposes. They are provided as a resource to
22
   	you to help out with the learning process.
23
       	If you find any inaccuracies, bugs, or have suggestions
24
   	for improving the demos, please use the forums on the
25
   	main website, http://developer.popcap.com
26
 
27
					VERSION HISTORY
28
 
29
					Framework 1.3:
30
 
31
		* Updated all demos to work with the wide string projects.
32
			Do not be alarmed by all the _S() macros: they don't do
33
			anything in normal apps and are designed for the WideString
34
			projects. All std::string's have been replaced with SexyString,
35
			which is a typedef that is std::string in non-widestring versions,
36
			and std::wstring in widestring versions.
37
 
38
		* Fixed bug in all projects where the SexyAppFramework project was for some
39
			reason not marked to build: this meant that you had to manually compile
40
			the framework before you compiled all the demos. You should now simply be
41
			able to do a Rebuild All without any manual fussing around.
42
 
43
					Framework 1.22:
44
 
45
		* Support for Visual Studio 2005
46
		* Fixed some C++ language conformance issues
47
		* Fixed some bugs with the flash widget and rendering issues
48
		* Got tired of casting warnings, properly casting stuff now
49
		* Fixed some demo bugs and bad programming practices
50
		* IMPORTANT NEW CHANGE: in order to cut filesize bloat, caused
51
			by the addition of the software triangle rasterizer
52
			code in 1.21, you now need to do the following IF you
53
			use DrawImageMatrix or DrawImageTransform (with a
54
			complex transformation) or if you get errors compiling
55
			or at run time you get the assert "You need to call
56
			SWTri_AddDrawTriFunc or SWTri_AddAllDrawTriFuncs"
57
 
58
			1. Include "SexyAppFramework/SWTri.h"
59
			2. Call the function SWTri_AddAllDrawTriFuncs()
60
			3. Alternatively to #2, if you know which triangle draw
61
			functions you need, you can add them specifically via
62
			SWTri_AddDrawTriFunc(...) and specifying which draw
63
			function you need (check SWTri.h for a list).
64
 
65
 
66
					Framework 1.2:
67
 
68
		* Corrected comment about the Popup function not working
69
			in fullscreen mode.
70
		* Removed call to Shutdown() in LoadingThreadProc (although
71
			this is no longer incorrect as of Framework 1.2, it
72
			IS incorrect in previous framework versions. For
73
			backwards compatibility, it has been changed.)
74
		* Removed some incorrect comments about resource manager
75
			calling Shutdown
76
		* Added new demo, XMLDemo, showing how to use the XMLParser
77
			class for most video game XML needs.
78
		* Added new demo, V12Demo, showing the new features of
79
			Framework 1.2
80
		* Updated Demo5::DemoDialog.cpp::ButtonDepress to work with
81
			the 1.2 changes, as well as the options dialog in
82
			Hun-garr.
83
 
84
	Framework 1.0:
85
		Initial release
86
 
87
 
88
Demo1:
89
-------
90
* Setting app width/height
91
* Drawing primitives
92
* Changing colors
93
* Loading thread proc
94
* Widget basics: Adding, removing, drawing, updating
95
 
96
Demo2:
97
------
98
* Loading and displaying fonts
99
* Loading and displaying images
100
* Colorizing images
101
* Additive drawing
102
* Paletizing images
103
* Loading/playing sounds
104
 
105
Demo3:
106
------
107
* Enabling auto-detect 3D
108
* Modifying image bits
109
* Stretching images
110
* Mirroring/flipping images
111
* Animation using image strips
112
* Widgets: buttons, listeners, basic events, adding/removing, mouse move/drag/down/up
113
 
114
Demo4:
115
------
116
* Using the resource manager
117
* Title screen with progress bar
118
* Loading/playing music
119
* Playing sounds with pitch and panning values changed
120
* smooth motion with UpdateF
121
* Reading/writing to files/registry
122
* Getting command line switches
123
* Widgets: Hyperlink widget, edit widget, checkbox, list, scrollbars, safedeletewidget
124
 
125
Demo5:
126
------
127
* Drawing differently if 3D or 2D
128
* Using Translate instead of using XYs
129
* Keyboard input, setting focus
130
* Widgets: Dialog box, sliders, an options dialog box
131
* Advanced widget topics: mClip, using Layout_ flags, using images
132
* Random numbers
133
* Catching memory leaks
134
* Profiling
135
 
136
 
137
Demo6:
138
------
139
* Game, using topics from above and including:
140
* Custom cursors
141
 
142
V12Demo:
143
--------
144
This demo shows off the new features in the 1.2 release of the framework.
145
It builds on the knowledge of demos 1-5 so you MUST have read and understood
146
those demos prior to reading this one, as previously covered material
147
will either be not commented or minimally so. In addition, you REALLY REALLY
148
should have read through the documentation included with the 1.2 release.
149
 
150
 
151
* How to use the new InitHook/ShutdownHook for slightly safer/easier
152
	init/shutdown procedures
153
 
154
* How to use the new DialogListener class, to listen to button events
155
	specifically from a dialog (in contrast to using ButtonListener and
156
	checking if the button ID is dialog ID + 2000 or 3000).
157
 
158
* How to use flags to set the default behavior of a dialog box
159
 
160
* How to use flags to modify widget behavior, such as always marking
161
	dirty, not allowing mouse events, etc.
162
 
163
* How to take advantage of the new widget heirarchy, which lets you
164
	very easily add/place widgets within a parent widget with less code
165
	and less mess and do some neat things without tons of code.
166
 
167
* How to use the new overlay drawing system, which eliminates the need
168
	for a widget overlay (like the one in the Hun-garr demo for pausing).
169
 
170
* How to easily push/pop/preserve graphics state
171
 
172
* How to use the new and powerful Graphics::DrawImageTransform/F to
173
	very quickly and easily apply rotation, scaling, translation, or any combo
174
	to an image, as opposed to the previous messy way of doing things.
175
 
176
* How to use the also new and also cool Graphics::DrawImageMatrix
177
	function to draw an image in 2D and/or 3D with a matrix. This allows
178
	some neat and fast tricks like easy flipping, mirroring, scaling, etc
179
	with a minimal number of lines.
180
 
181
* How to use UpdateApp to help with transitions
182
 
183
* How to be master of the universe. OK maybe not.
184
 
185
 
186
XMLDemo:
187
--------
188
* How to use the XMLParser class to read in XML files
189
* How to sift through the XML data and extract the information you need
190
 
191
NOTE: You should have read and understood demos 1 and 2 before
192
this, as topics that are already covered will be either not commented
193
or minimally so. In addition, this demo uses just a couple features from the v.1.2
194
release of the framework, so it is beneficial to have read and understood
195
V12Demo as well. Though, if you fully understand demos 1 and 2, you'll probably
196
be fine enough.
197
 
198
 
199