Why did Apple include shapes in Applesoft BASIC? There are no sprites on the Apple II, but shapes provide a simple vector drawing tool. As graphics go the shapes are kind of an odd duck, they provide a little bit of what Quickdraw could do later on the Mac. Shapes lack some useful features like fill and xor, so only simple games/programs can use them.
-
1somebody must have thought that having them was better than not, and had enough memory to implement it– LorraineNov 30, 2020 at 18:09
-
The Apple II has no hardware sprites so shapes are a way to have sprites in software.– Tim LockeNov 30, 2020 at 18:11
-
5It's a compact way to represent a shape. The drawing code even has collision detection, suggesting it was intended for games. The performance wasn't great, but if you weren't in a hurry it worked fine. (If you were writing your game in Applesoft, you probably weren't in a hurry.)– faddenDec 1, 2020 at 0:55
1 Answer
Why did Apple include shapes in Applesoft BASIC?
Because they were introduced with the 'Programmers Aid #1 ROM' for Integer BASIC, so it was rather natural for Applesoft to support it as well.
Shapes lack some useful features like fill and xor,
To start with, there was a XOR mode. In addition, they provided features only vector graphic could add: Arbitrary rotation and scaling.
From Grandpa's Memory:
In fact, one of my earliest Applesoft programs based on the benefits shapes offer. A little program drawing an Adventskranz with its four candles,which could be lighted according to date. I guess one would call it today a 'Seasonal APP' :)
While wreath and candles were static drawn, I used two shapes to draw the flame, which randomly
- grew and shrinked a bit (using
SCALE=
) - tilted to the sides (using
ROT=
)
The second shape was smaller than the main shape and drawn inside. Always wit the same tilting, but growing and shrinking on it's own within the main shape. THe resulting image was quite natural ... at least to me.
There was a keystroke to enlight one or more and another to blow them - which first tilted them all to one side, flickering a lot, and only if pressed long enough put them off.
Doing the same with sprites (or similar drawing routines) would have meant to draw more than a dozend sprites to cover each size/tilt combination, while with shapes it was just one for all
Given, not the biggest fish in town, but the whole idea grew when reading the description of shapes and ... well, it was about the same time of the year, 42 years ago: Adventszeit.
-
That's an interesting story. I assume you lived in German speaking Europe at that time? Were the Apple II common there? I assumed it was virtually nonexistent there because of its NTSC thing, plus I have never seen one in Denmark or further north.– LorraineNov 30, 2020 at 19:30
-
1@OmarL Location is still the same as in my bio :)) The A2 was quite popular - at least when counting all clones as well. So hard to give numbers. Commodore may have had larger sales with PETs to schools, an later one home computers did ofc outrun the A2, but it was as well the preferred machine for university students - at least until the PC took over in the late 1980s. NTSC wasn't an issue, as green CRTs didn't care. With the II euro+ (and it's clone) PAL colour output was done via an encoder card.– RaffzahnNov 30, 2020 at 19:47
-
2I was never able to determine any situations where shapes drawn at anything other than scale=1 and multiply-of-90-degrees rotation would look good. A function to draw a 7WxH stripe stored in a string would seem like it would have been more useful, especially if combined with a function to left-shift or right-shift a shape stored in a string (thus allowing a program to take one string and produce from it a set of pre-shifted shapes).– supercatNov 30, 2020 at 19:51