README.txt
3D Pong v.0.3
by Bill Kendrick
kendrick@zippy.sonoma.edu
New Breed Software
http://zippy.sonoma.edu/kendrick/nbs/
January, 1998
WHAT IS 3D PONG?
3D Pong is an X-Window game for 1 or 2 players. It's a 3D game based
on the first arcade game, "Pong." Like "Pong," it's a game played with
a ball and paddles. The object is to hit the ball and get it in the
other player's goal. Use your paddle to deflect the ball and keep it
from getting in your goal.
3D Pong has three game modes:
1. Two player - requires two X servers
2. One player - against a computer player
3. Handball - one player against gravity
INSTALLING
To install 3D Pong, edit the "makefile" as needed. Predefined variables
are declared for:
CC - Your C Compiler. "gcc" is recommended.
XLIB - The location and name of your X window library.
From a telnet session, simply type "make". The "3dpong" executable should
be created.
Some #define's are available in the "3dpong.c" source code if you really
wish to tweak with the game. For details, see the DEFINES section below.
RUNNING THE GAME
To run the game, type "3dpong" followed by the following, depending on the
game mode:
Two player game:
player 1's server
player 2's server
Example: 3dpong $DISPLAY server.domain.com:0.0
3dpong server.domain.com:0.0 machine.domain.com:0.0
One player game:
player's server
the word "computer"
Example: 3dpong $DISPLAY computer
3dpong machine.domain.com:0.0 computer
Handball game:
player's server
Example: 3dpong $DISPLAY
3dpong server.domain.com:0.0
You can also specify the "gravity" to be used in the game. In the
one- and two-player ping-pong games, this defines gravity towards the
"floor" of the game. (The floor is marked with a divider in the middle
between the two players's sides.) You CAN have negative gravity (where
the ball flies towards the ceiling)!
In the handball game, gravity is defined towards your goal/paddle.
The minimum gravity is 0.1; negative gravity is not allowed. If you
enter a negative gravity, it's absolute value will be taken. If the
gravity is less than 0.1, 0.1 will be used.
To specify gravity, append "-gravity value" or "-g value" to the
command line.
Example: 3dpong $DISPLAY -gravity 0.5
3dpong server.domain.com:0.0 machine.domain.com:0.0 -g 0.5
To play a game with a net (not available in "handball" mode), append
"-net value" or "-n value" to the command line. The net appears in the
middle of the game arena, where the marker normally is. If the ball hits
the net, it bounces back with full force. You can specify a net height up
to 0.75 (one third the height of the game arena). Values under 0.0 get
taken as their absolute value. Values over 0.75 are taken as 0.75.
The "-net" switch must appear after the "-gravity" switch, if you used one.
Example: 3dpong $DISPLAY -computer -net 0.5
3dpong $DISPLAY other.domain.com:0.0 -gravity 0.2 -n 0.75
To play a game with sound, append "-sound" or "-s" to the command
line. (It must appear after the "-net" switch, if you used one.)
Example: 3dpong $DISPLAY -sound
3dpong $DISPLAY computer -g 0.5 -sound
The sound will be played on the machine on which the game is
executing. (The program simply sends ".au" audio files to the
"/dev/audio" device. The sounds were "stolen" from the game
"xboing"; thanks guy(s)!)
To control the paddle in the game without holding the mouse button down,
add "-noclick1" for player one, and "-noclick2" for player two.
They must be after any of the previously mentioned options, and player
one's "-noclick1", if any, should come first.
Two extremely simple scripts have been created to start a one-player
3dpong session:
./go - Play against the computer on your default $DISPLAY with
a 0.5-high net
./handball - Play handball on your default $DISPLAY
So, in summary, you have the following switches available to you, in this
order:
3dpong server1 [server2 | -computer] [-gravity value]
[-net value] [-sound] [-nockick1] [-noclick2]
ON THE SCREEN:
The game is viewed in 3D. Depending on your viewing mode, you see the
game from a different angle. (See "3D PONG CONTROLS" below.)
One- And Two-Player Ping Pong Mode:
* There is a white divider line in the middle of the court to show
you where the "floor" is.
* Player one's paddle is a red square. Player two's is blue.
* Score is displayed at the upper left. Player one's score is red.
Player two's score is blue.
Handball Mode:
* Your paddle is a red square.
* Score and high score are displayed at the upper left.
Both Modes:
* The ball is a green diamond shape.
* Dark green markers appear on two walls of the court, showing you
relative positions of the ball.
3D PONG CONTROLS:
Moving the paddle:
Left-Click in your window and drag (holding the left mouse button,
unless you've specified "noclick" mode; see above) to move the paddle
around.
Serving:
In a one- or two-player ping-pong game, when it's your turn to serve,
or to start a game in handball mode:
* Position your paddle where you wish the ball to start
* Right-Click to launch the ball
Changing views:
Press the [V] key to change your viewing perspective. There are six
modes it cycles through:
1. Normal - First person perspective from behind your paddle.
2. Bleacher - From the side of the game. (Your paddle on the left.)
3. Above - From above the game. (Your paddle on the top.)
4. FreeView - Choose any angle. (Use Middle-Click and drag to change
angles. Careful not to get confused!)
5. Follow the Ball - The perspective moves and zooms depending on the
position of the ball.
6. From the Paddle - The perspective is similar to "Normal" mode,
but keeps your paddle in the center.
Press the [3] keyto toggle 3D glasses (red/blue) mode.
When using 3D glasses, you must use red/blue glasses with the red
lense on your left eye. For best 3D results, get very close to the
screen. (Careful of health risks though!!!) Your milage may vary.
Changing controls:
To toggle whether your paddle is controlled while mouse button one
is down (normal) or not ("-noclick..."), press [C].
So, in summary, you have the following keyboard controls:
[V] - Change view
[3] - Toggle 3D glasses mode
[C] - Toggle "noclick" mode
[Q] - Quit
GAME RULES:
One and two-player ping-pong games:
* The game is played until the player(s) decide to quit.
* The ball moves faster and faster until someone scores, at which point
it slows down again.
* Score is accumulated during the game when the ball goes past a
player's paddle and into their goal.
* When a player scores (the ball goes into their opponent's goal),
they get to serve.
Handball game:
* Multiple games are played until the player decides to quit.
* Score is accumulated during the game when the ball bounces off the
player's paddle.
* The score is zeroed and the game starts over when
the ball goes past the player's paddle and into their goal.
* A high score is kept for the session.
DEFINES:
The following "#define"s are available in the "3dpong.c" file.
Change these and recompile with the "make" command to put them
into effect.
* DOUBLE_BUFFER
- Set to "True" to use a "double buffer" or "backbuffer." This
uses a pixmap to redraw the window, and then copies the pixmap all
at once into the window. This prevents flicker.
- Set to "False" to turn this feature off. The game may run slowly
with the double buffer on, or it may fail completely if your
X Window Manager doesn't have enough RAM for the buffer.
Default is False.
* WIDTH
* HEIGHT
The width and height (in pixels) of the game window.
Default is 580 pixels by 580 pixels.
* X_WIDTH
* Y_HEIGHT
* Z_DEPTH
The width, height and depth (in "units") of the 3D game arena.
Default is 100 units wide x 100 high x 150 deep.
* PADDLE_WIDTH
* PADDLE_HEIGHT
The width and height (in "units") of the players' paddles.
Default is 25 units wide by 25 high.
* BALL_SIZE
The size of the ball (in "units").
Default is 15 units.
* ASPECT
The "aspect" value which alters how the 3D positions are converted into
two dimensions.
Default is 200.
* GLASS_OFFSET
The offset (in "units") of the 3D glasses. In a sense, this is how
far apart your eyes are.
Default is 3 units.
* FRAMERATE
The number of microseconds between frames. The lower the number, the
faster the game will play and the faster the windows will refresh.
Be careful adjusting this!!!
Default is 100,000 microseconds.
* SHIMMER_TIME
How many frames the "X" stays on a paddle when the ball hits it.
Default is 5 frames.
* DEBRIS_TIME
How many frames (approximately) the "debris" last. (They are the bits
of colored lines that appear when the ball hits a paddle.)
Default is 50 frames.
* DEBRIS_MIN
* DEBRIS_MAX
The minimum and maximum number of debris lines to create when the ball
hits a paddle. A random number between these two values will be
picked.
Default is between 5 and 10 lines.
* DEBRIS_SPEED
How fast debris lines move.
Default is 2.
* COMPUTER_SPEED
How fast the computer moves in its sorry attempt to catch the ball.
Default is 5 units per frame.
* BALL_SPEED
The maximum speed that the ball moves.
Default is 15 units per frame.
* ANGLE_DIVIDE
A value used to scale down the angle that the ball goes when it hits
the paddle. The bigger the paddle, the higher this number should be
to compensate. A low number (ie, 1) causes the ball to move at high
angles off of the paddle. A high number (ie, 10) causes the ball to
move mostly forward off of th epaddle.
Default is 3.
CREDITS:
* 3D Pong was written by Bill Kendrick, (c) New Breed Software 1997, 1998.
* Original 3D source code based on a Linear Algebra project by
Bill Kendrick, 1997.
* "Pong" is (c) Atari, now a division of JTS.
* Thanks to:
Brian Jerskey, my Linear Algebra professor
Brian Mordecai, a Lin.Alg. friend who helped a little with the 3D
James O'Connor, a Lin.Alg. friend who gave me a pair of 3D glasses
(which I promptly lost, but fortunately AFTER coding the 3D glasses mode)
Geoff Kruth (kruth@zippy.sonoma.edu), a friend with a Linux box to play on.
Scott Flattman (mrman@europa.com), for the "makefile" XLIB tweaks.
The folks who made Unix, Linux, Mac-X, FVWM, etc.!
And everyone who plays 3D Pong! :)
CHANGES
* Version 0.3 - January 26, 1997
"ftime()" function calls changed to "gettimeofday()" function calls
(for portability)
A "DOUBLE_BUFFER" constant has been definied. If set to "True",
double-buffering (backbuffering) will be used. (As in v.0.2)
BUT, this sometimes breaks the program ("Can't create Pixmap" error
and abort), so you can set it to "False" to turn double-buffering off.
(As in v.0.0 and v.0.1) There may be some flicker, though, but at
least it will run.
Better documentation.
* Version 0.2 - December 15, 1997
Tested under RedHat Linux.
Added simple /dev/audio sound support. (Sounds from "xboing.")
Added clickless mouse control for the paddles.
Made the default (#define'd) window size bigger.
The sparks were turned into actual 3D lines (looks 1000x better!)
A net was added.
The game now uses a backbuffer. (I may turn this into an option, as
it seems to go a tad slower.)
A few tweaks here and there.
Red/blue mode has the colors reversed (someone told me red is usually
on the left, not the right).
* Version 0.1 - December 11, 1997
Added "free view", "follow the ball" and "follow the paddle" mode.
Added ball angle control using the paddle.
Added "sparks" (or "debris") when the ball hits walls/etc.
* Version 0.0 - December 10, 1997
First release
CONTACT ME!
Please tell me what you think of 3D Pong!
Or send some money or a postcard to encourage me to release more and
more and more for X!
New Breed Software
c/o Bill Kendrick
7673 Melody Drive
Rohnert Park, CA 94928 USA
kendrick@zippy.sonoma.edu
http://zippy.sonoma.edu/kendrick/nbs/
1-707-795-1234 ext. 2
1-707-795-5678 FAX
3D Pong's website is at:
http://zippy.sonoma.edu/kendrick/nbs/unix/x/3dpong/
Check out my other X-Window software at:
http://zippy.sonoma.edu/kendrick/nbs/unix/x/
A much more important factor in the social movement than those already mentioned was the ever-increasing influence of women. This probably stood at the lowest point to which it has ever fallen, during the classic age of Greek life and thought. In the history of Thucydides, so far as it forms a connected series of events, four times only during a period of nearly seventy years does a woman cross the scene. In each instance her apparition only lasts for a moment. In three of the four instances she is a queen or a princess, and belongs either to the half-barbarous kingdoms of northern Hellas or to wholly barbarous Thrace. In the one remaining instance208— that of the woman who helps some of the trapped Thebans to make their escape from Plataea—while her deed of mercy will live for ever, her name is for ever lost.319 But no sooner did philosophy abandon physics for ethics and religion than the importance of those subjects to women was perceived, first by Socrates, and after him by Xenophon and Plato. Women are said to have attended Plato’s lectures disguised as men. Women formed part of the circle which gathered round Epicurus in his suburban retreat. Others aspired not only to learn but to teach. Arêtê, the daughter of Aristippus, handed on the Cyrenaic doctrine to her son, the younger Aristippus. Hipparchia, the wife of Crates the Cynic, earned a place among the representatives of his school. But all these were exceptions; some of them belonged to the class of Hetaerae; and philosophy, although it might address itself to them, remained unaffected by their influence. The case was widely different in Rome, where women were far more highly honoured than in Greece;320 and even if the prominent part assigned to them in the legendary history of the city be a proof, among others, of its untrustworthiness, still that such stories should be thought worth inventing and preserving is an indirect proof of the extent to which feminine influence prevailed. With the loss of political liberty, their importance, as always happens at such a conjuncture, was considerably increased. Under a personal government there is far more scope for intrigue than where law is king; and as intriguers women are at least the209 equals of men. Moreover, they profited fully by the levelling tendencies of the age. One great service of the imperial jurisconsults was to remove some of the disabilities under which women formerly suffered. According to the old law, they were placed under male guardianship through their whole life, but this restraint was first reduced to a legal fiction by compelling the guardian to do what they wished, and at last it was entirely abolished. Their powers both of inheritance and bequest were extended; they frequently possessed immense wealth; and their wealth was sometimes expended for purposes of public munificence. Their social freedom seems to have been unlimited, and they formed combinations among themselves which probably served to increase their general influence.321 The old religions of Greece and Italy were essentially oracular. While inculcating the existence of supernatural beings, and prescribing the modes according to which such beings were to be worshipped, they paid most attention to the interpretation of the signs by which either future events in general, or the consequences of particular actions, were supposed to be divinely revealed. Of these intimations, some were given to the whole world, so that he who ran might read, others were reserved for certain favoured localities, and only communicated through the appointed ministers of the god. The Delphic oracle in particular enjoyed an enormous reputation both among Greeks and barbarians for guidance afforded under the latter conditions; and during a considerable period it may even be said to have directed the course of Hellenic civilisation. It was also under this form that supernatural religion suffered most injury from the great intellectual movement which followed the Persian wars. Men who had learned to study the constant sequences of Nature for themselves, and to shape their conduct according to fixed principles of prudence or of justice, either thought it irreverent to trouble the god about questions on which they were competent to form an opinion for themselves, or did not choose to place a well-considered scheme at the mercy of his possibly interested responses. That such a revolution occurred about the middle of the fifth century B.C., seems proved by the great change of tone in reference to this subject which one perceives on passing from Aeschylus to Sophocles. That anyone should question the veracity of an oracle is a supposition which never crosses the mind of the elder dramatist. A knowledge of augury counts among the greatest benefits222 conferred by Prometheus on mankind, and the Titan brings Zeus himself to terms by his acquaintance with the secrets of destiny. Sophocles, on the other hand, evidently has to deal with a sceptical generation, despising prophecies and needing to be warned of the fearful consequences brought about by neglecting their injunctions. The stranger had a pleasant, round face, with eyes that twinkled in spite of the creases around them that showed worry. No wonder he was worried, Sandy thought: having deserted the craft they had foiled in its attempt to get the gems, the man had returned from some short foray to discover his craft replaced by another. “Thanks,” Dick retorted, without smiling. When they reached him, in the dying glow of the flashlight Dick trained on a body lying in a heap, they identified the man who had been warned by his gypsy fortune teller to “look out for a hidden enemy.” He was lying at full length in the mould and leaves. "But that is sport," she answered carelessly. On the retirement of Townshend, Walpole reigned supreme and without a rival in the Cabinet. Henry Pelham was made Secretary at War; Compton Earl of Wilmington Privy Seal. He left foreign affairs chiefly to Stanhope, now Lord Harrington, and to the Duke of Newcastle, impressing on them by all means to avoid quarrels with foreign Powers, and maintain the blessings of peace. With all the faults of Walpole, this was the praise of his political system, which system, on the meeting of Parliament in the spring of 1731, was violently attacked by Wyndham and Pulteney, on the plea that we were making ruinous treaties, and sacrificing British interests, in order to benefit Hanover, the eternal millstone round the neck of England. Pulteney and Bolingbroke carried the same attack into the pages of The Craftsman, but they failed to move Walpole, or to shake his power. The English Government, instead of treating Wilkes with a dignified indifference, was weak enough to show how deeply it was touched by him, dismissed him from his commission of Colonel of the Buckinghamshire Militia, and treated Lord Temple as an abettor of his, by depriving him of the Lord-Lieutenancy of the same county, and striking his name from the list of Privy Councillors, giving the Lord-Lieutenancy to Dashwood, now Lord Le Despencer. "I tell you what I'll do," said the Deacon, after a little consideration. "I feel as if both Si and you kin stand a little more'n you had yesterday. I'll cook two to-day. We'll send a big cupful over to Capt. McGillicuddy. That'll leave us two for to-morrer. After that we'll have to trust to Providence." "Indeed you won't," said the Surgeon decisively. "You'll go straight home, and stay there until you are well. You won't be fit for duty for at least a month yet, if then. If you went out into camp now you would have a relapse, and be dead inside of a week. The country between here and Chattanooga is dotted with the graves of men who have been sent back to the front too soon." "Adone do wud that—though you sound more as if you wur in a black temper wud me than as if you pitied me." "Wot about this gal he's married?" "Don't come any further." "Davy, it 'ud be cruel of us to go and leave him." "Insolent priest!" interrupted De Boteler, "do you dare to justify what you have done? Now, by my faith, if you had with proper humility acknowledged your fault and sued for pardon—pardon you should have had. But now, you leave this castle instantly. I will teach you that De Boteler will yet be master of his own house, and his own vassals. And here I swear (and the baron of Sudley uttered an imprecation) that, for your meddling knavery, no priest or monk shall ever again abide here. If the varlets want to shrieve, they can go to the Abbey; and if they want to hear mass, a priest can come from Winchcombe. But never shall another of your meddling fraternity abide at Sudley while Roland de Boteler is its lord." "My lord," said Edith, in her defence, "this woman has sworn falsely. The medicine I gave was a sovereign remedy, if given as I ordered. Ten drops would have saved the child's life; but the contents of the phial destroyed it. The words I uttered were prayers for the life of the child. My children, and all who know me, can bear witness that I have a custom of asking His blessing upon all I take in hand. I raised my eyes towards heaven, and muttered words; but, my lord, they were words of prayer—and I looked up as I prayed, to the footstool of the Lord. But it is in vain to contend: the malice of the wicked will triumph, and Edith Holgrave, who even in thought never harmed one of God's creatures, must be sacrificed to cover the guilt, or hide the thoughtlessness of another." "Aye, Sir Treasurer, thou hast reason to sink thy head! Thy odious poll-tax has mingled vengeance—nay, blood—with the cry of the bond." HoME古一级毛片免费观看
ENTER NUMBET 0017
beizi4.net.cn
www.dusu0.com.cn
nige5.com.cn
www.banri5.com.cn
duchi7.net.cn
www.chesi5.com.cn
maome3.net.cn
www.tehua5.com.cn
www.chama5.com.cn
9131ych.com.cn