[PD] Some sunday morning fun with PONG

Frank Barknecht fbar at footils.org
Mon Nov 1 12:50:00 CET 2004


Hi,

data structures are fun, aint't they? ;)
Lots of bugs included, though.

Ciao
-- 
 Frank Barknecht                               _ ______footils.org__
-------------- next part --------------
#N struct rect float x float y float h float w float color;
#N canvas 204 92 940 646 10;
#N canvas 0 0 450 300 field 0;
#X scalar rect 0 0 300 400 0 \;;
#X scalar rect 200 0 300 2 999 \;;
#X coords 0 0 400 300 400 300 1;
#X restore 467 24 pd field;
#N canvas 378 603 568 292 rect 0;
#X obj 63 130 filledpolygon color color 1 w 0 w h 0 h 0 0;
#X obj 63 57 struct rect float x float y float h float w float color
;
#X restore 32 44 pd rect;
#N canvas 323 357 506 523 make_pad1 0;
#X obj 166 148 t b b b;
#X msg 166 117 bang;
#X obj 220 218 pointer;
#X msg 219 198 traverse pd-game \, bang;
#X msg 161 203 100;
#X msg 116 200 10;
#X msg 40 196 200;
#X obj 87 252 append rect x w h color;
#X obj 230 112 r \$0-create;
#X obj 87 283 s \$0-pad1pointer;
#X msg 193 201 999;
#X msg 78 197 1;
#X connect 0 0 11 0;
#X connect 0 1 4 0;
#X connect 0 1 10 0;
#X connect 0 1 5 0;
#X connect 0 2 3 0;
#X connect 1 0 0 0;
#X connect 2 0 7 4;
#X connect 3 0 2 0;
#X connect 4 0 7 2;
#X connect 5 0 7 1;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X connect 8 0 0 0;
#X connect 10 0 7 3;
#X connect 11 0 7 0;
#X restore 26 191 pd make_pad1;
#N canvas 0 0 601 569 make_pad2 0;
#X obj 166 148 t b b b;
#X msg 166 117 bang;
#X obj 220 218 pointer;
#X msg 219 198 traverse pd-game \, bang;
#X msg 161 203 100;
#X msg 116 200 10;
#X obj 87 252 append rect x w h color;
#X obj 230 112 r \$0-create;
#X obj 87 283 s \$0-pad2pointer;
#X msg 193 201 999;
#X msg 80 197 389;
#X connect 0 0 10 0;
#X connect 0 1 4 0;
#X connect 0 1 9 0;
#X connect 0 1 5 0;
#X connect 0 2 3 0;
#X connect 1 0 0 0;
#X connect 2 0 6 4;
#X connect 3 0 2 0;
#X connect 4 0 6 2;
#X connect 5 0 6 1;
#X connect 6 0 8 0;
#X connect 7 0 0 0;
#X connect 9 0 6 3;
#X connect 10 0 6 0;
#X restore 29 225 pd make_pad2;
#N canvas 0 0 450 300 make_ball 0;
#X obj 182 86 t b b b;
#X msg 182 55 bang;
#X obj 236 156 pointer;
#X msg 235 136 traverse pd-game \, bang;
#X msg 132 138 10;
#X obj 103 190 append rect x w h color;
#X msg 177 141 10;
#X msg 96 135 200;
#X obj 238 40 r \$0-create;
#X obj 103 217 s \$0-ballpointer;
#X msg 209 139 999;
#X connect 0 0 7 0;
#X connect 0 1 6 0;
#X connect 0 1 10 0;
#X connect 0 1 4 0;
#X connect 0 2 3 0;
#X connect 1 0 0 0;
#X connect 2 0 5 4;
#X connect 3 0 2 0;
#X connect 4 0 5 1;
#X connect 5 0 9 0;
#X connect 6 0 5 2;
#X connect 7 0 5 0;
#X connect 8 0 0 0;
#X connect 10 0 5 3;
#X restore 27 251 pd make_ball;
#N canvas 0 0 583 497 make_borders 0;
#X obj 182 86 t b b b;
#X msg 182 55 bang;
#X obj 236 156 pointer;
#X obj 103 190 append rect x w h color;
#X obj 103 221 outlet;
#X obj 238 40 r \$0-create;
#X msg 237 132 traverse pd-field \, bang;
#X msg 209 139 0;
#X msg 95 141 0;
#X msg 177 141 300;
#X msg 132 138 400;
#X msg 241 325 300;
#X msg 273 323 999;
#X msg 196 322 2;
#X msg 119 323 200;
#X obj 190 281 t b b;
#X connect 0 0 8 0;
#X connect 0 0 15 0;
#X connect 0 1 9 0;
#X connect 0 1 7 0;
#X connect 0 1 10 0;
#X connect 0 2 6 0;
#X connect 1 0 0 0;
#X connect 2 0 3 4;
#X connect 3 0 4 0;
#X connect 5 0 0 0;
#X connect 6 0 2 0;
#X connect 7 0 3 3;
#X connect 8 0 3 0;
#X connect 9 0 3 2;
#X connect 10 0 3 1;
#X connect 11 0 3 2;
#X connect 12 0 3 3;
#X connect 13 0 3 1;
#X connect 14 0 3 0;
#X connect 15 0 14 0;
#X connect 15 1 12 0;
#X connect 15 1 11 0;
#X connect 15 1 13 0;
#X restore 21 322 pd make_borders;
#X msg 51 386 bang;
#X obj 51 506 s \$0-create;
#X msg 81 443 \; pd-game clear \; pd-field clear \;;
#N canvas 577 216 450 300 game 0;
#X scalar rect 1 160 100 10 999 \;;
#X scalar rect 389 200 100 10 999 \;;
#X scalar rect -0.000484586 140.075 10 10 999 \;;
#X coords 0 0 400 300 400 300 1;
#X restore 467 24 pd game;
#X obj 51 415 t b b;
#N canvas 626 190 509 461 move_ball 0;
#X obj 155 74 r \$0-ball_vector;
#X text 262 176 ball vector: (angle \, speed);
#X obj 103 285 cos;
#X obj 152 286 sin;
#X obj 103 325 *;
#X obj 152 324 *;
#X text 260 347 send x \, y-changes of ball;
#X obj 103 375 outlet;
#X obj 152 377 outlet;
#X obj 62 106 r \$0-update;
#X obj 155 111 unpack 0 0;
#X obj 132 159 f;
#X obj 168 158 f;
#X connect 0 0 10 0;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 7 0;
#X connect 5 0 8 0;
#X connect 9 0 11 0;
#X connect 10 0 11 1;
#X connect 10 1 12 0;
#X connect 11 0 3 0;
#X connect 11 0 2 0;
#X connect 12 0 5 1;
#X connect 12 0 4 1;
#X restore 144 84 pd move_ball;
#X obj 50 113 s \$0-ball_dx;
#X obj 244 110 s \$0-ball_dy;
#N canvas 432 239 637 678 collisions 0;
#X obj 52 67 r \$0-ball_x;
#X obj 356 74 r \$0-ball_y;
#X obj 356 119 < 0;
#X obj 372 214 r \$0-ball_vector;
#X obj 372 243 unpack 0 0;
#X msg 356 271 -1;
#X obj 356 332 *;
#X obj 356 360 pack 0 0;
#X obj 356 396 s \$0-ball_vector;
#X obj 67 226 r \$0-ball_vector;
#X obj 67 259 unpack 0 0;
#X obj 52 382 -;
#X text 371 434 angle = -angle \; if outside y-screen;
#X text 52 500 angle = pi - angle \; if outside x-screen;
#X obj 52 181 select 1;
#X obj 356 191 select 1;
#X obj 52 436 pack 0 0;
#X obj 52 472 s \$0-ball_vector;
#X obj 52 322 f 3.14159;
#X obj 52 109 < 0;
#X obj 100 144 change;
#X obj 52 144 change;
#X obj 408 146 change;
#X obj 356 146 change;
#X obj 142 194 s \$0-pad1_out?;
#X obj 142 172 s \$0-pad2_out?;
#X obj 240 248 print whwerr;
#X obj 100 106 > 390;
#X obj 408 119 > 290;
#X connect 0 0 19 0;
#X connect 0 0 27 0;
#X connect 1 0 2 0;
#X connect 1 0 28 0;
#X connect 2 0 23 0;
#X connect 3 0 4 0;
#X connect 4 0 6 1;
#X connect 4 1 7 1;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 9 0 10 0;
#X connect 10 0 11 1;
#X connect 10 1 16 1;
#X connect 11 0 16 0;
#X connect 14 0 18 0;
#X connect 15 0 5 0;
#X connect 16 0 17 0;
#X connect 18 0 11 0;
#X connect 19 0 21 0;
#X connect 20 0 14 0;
#X connect 20 0 25 0;
#X connect 21 0 14 0;
#X connect 21 0 24 0;
#X connect 22 0 15 0;
#X connect 23 0 15 0;
#X connect 27 0 20 0;
#X connect 28 0 22 0;
#X restore 141 145 pd collisions;
#X obj 181 380 s \$0-ball_vector;
#X obj 180 343 pack 0 0;
#X obj 410 478 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
1;
#X obj 410 537 s \$0-update;
#N canvas 47 578 450 300 set_ball 0;
#X obj 231 52 r \$0-ballpointer;
#X obj 39 32 r \$0-ball_dx;
#X obj 133 32 r \$0-ball_dy;
#X obj 135 62 t b f;
#X obj 160 105 +;
#X obj 40 82 t b f;
#X obj 65 125 +;
#X floatatom 189 210 5 0 0 0 - - -;
#X floatatom 149 216 5 0 0 0 - - -;
#X obj 133 242 set rect x y;
#X obj 127 103 f 0;
#X obj 32 123 f 0;
#X msg 266 140 0;
#X obj 279 113 r \$0-create;
#X obj 32 207 s \$0-ball_x;
#X obj 76 164 s \$0-ball_y;
#X connect 0 0 9 2;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 10 0;
#X connect 3 1 4 1;
#X connect 4 0 10 1;
#X connect 5 0 11 0;
#X connect 5 1 6 1;
#X connect 6 0 11 1;
#X connect 7 0 9 1;
#X connect 8 0 9 0;
#X connect 10 0 4 0;
#X connect 10 0 9 1;
#X connect 10 0 15 0;
#X connect 11 0 6 0;
#X connect 11 0 9 0;
#X connect 11 0 14 0;
#X connect 12 0 10 1;
#X connect 12 0 11 1;
#X connect 13 0 12 0;
#X restore 256 149 pd set_ball;
#X floatatom 190 119 5 0 0 0 - - -;
#X floatatom 151 118 5 0 0 0 - - -;
#X obj 138 520 r \$0-ball_vector;
#X obj 135 558 unpack 0 0;
#X floatatom 133 582 5 0 0 0 - - -;
#X floatatom 191 584 5 0 0 0 - - -;
#X msg 225 319 1;
#X obj 410 500 metro 5;
#X floatatom 460 475 5 0 0 0 - - -;
#N canvas 64 534 731 428 checkpads 0;
#X obj 37 41 r \$0-pad1_out?;
#X obj 37 74 select 1;
#X obj 191 123 r \$0-pad1pointer;
#X obj 147 145 pointer;
#X obj 147 201 +;
#X obj 147 168 get rect y h;
#X obj 53 146 r \$0-ball_y;
#X obj 37 189 f;
#X obj 37 104 t b b;
#X obj 357 75 select 1;
#X obj 467 146 pointer;
#X obj 467 202 +;
#X obj 467 169 get rect y h;
#X obj 373 147 r \$0-ball_y;
#X obj 357 190 f;
#X obj 357 105 t b b;
#X obj 511 124 r \$0-pad2pointer;
#X obj 357 42 r \$0-pad2_out?;
#X obj 357 390 s \$0-PAD2_OUT;
#X obj 37 381 s \$0-PAD1_OUT;
#X floatatom 532 259 5 0 0 0 - - -;
#X floatatom 486 257 5 0 0 0 - - -;
#X floatatom 442 257 5 0 0 0 - - -;
#X floatatom 207 250 5 0 0 0 - - -;
#X floatatom 161 248 5 0 0 0 - - -;
#X floatatom 117 248 5 0 0 0 - - -;
#X obj 332 359 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 15 345 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
;
#X obj 357 249 <;
#X obj 399 249 >;
#X obj 37 248 <;
#X obj 79 248 >;
#X obj 37 357 select 1;
#X obj 357 366 select 1;
#X obj 37 324 ||;
#X obj 357 333 ||;
#X obj 355 217 clip 0 300;
#X obj 37 215 clip 0 300;
#X obj 400 277 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 324 269 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 94 285 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 16 271 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
;
#X obj 48 284 t b f;
#X obj 367 302 t b f;
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 2 0 3 1;
#X connect 3 0 5 0;
#X connect 4 0 23 0;
#X connect 4 0 31 1;
#X connect 5 0 4 0;
#X connect 5 0 24 0;
#X connect 5 0 30 1;
#X connect 5 1 4 1;
#X connect 6 0 7 1;
#X connect 7 0 37 0;
#X connect 8 0 7 0;
#X connect 8 1 3 0;
#X connect 9 0 15 0;
#X connect 10 0 12 0;
#X connect 11 0 20 0;
#X connect 11 0 29 1;
#X connect 12 0 11 0;
#X connect 12 0 21 0;
#X connect 12 0 28 1;
#X connect 12 1 11 1;
#X connect 13 0 14 1;
#X connect 14 0 36 0;
#X connect 15 0 14 0;
#X connect 15 1 10 0;
#X connect 16 0 10 1;
#X connect 17 0 9 0;
#X connect 28 0 35 0;
#X connect 28 0 39 0;
#X connect 29 0 38 0;
#X connect 29 0 43 0;
#X connect 30 0 34 0;
#X connect 30 0 41 0;
#X connect 31 0 40 0;
#X connect 31 0 42 0;
#X connect 32 0 19 0;
#X connect 33 0 18 0;
#X connect 34 0 27 0;
#X connect 34 0 32 0;
#X connect 35 0 26 0;
#X connect 35 0 33 0;
#X connect 36 0 28 0;
#X connect 36 0 29 0;
#X connect 36 0 22 0;
#X connect 37 0 30 0;
#X connect 37 0 31 0;
#X connect 37 0 25 0;
#X connect 42 0 34 0;
#X connect 42 1 34 1;
#X connect 43 0 35 0;
#X connect 43 1 35 1;
#X restore 143 168 pd checkpads;
#N canvas 162 474 598 475 movepads 0;
#X obj 92 329 r \$0-pad1pointer;
#X obj 27 357 set rect y;
#X obj 27 296 r \$0-player1;
#X obj 17 10 keyname;
#X obj 17 35 pack 0 s;
#X obj 17 58 route 1;
#X obj 17 84 symbol;
#X obj 17 174 s \$0-y1+;
#X obj 47 142 s \$0-y1-;
#X obj 276 51 clip 0 200;
#X obj 171 74 f 0;
#X obj 236 75 f 0;
#X obj 193 165 f;
#X obj 219 95 - 10;
#X obj 266 101 + 10;
#X obj 166 27 r \$0-y1-;
#X obj 237 28 r \$0-y1+;
#X obj 194 195 s \$0-player1;
#X obj 195 54 clip 0 200;
#X obj 17 105 select a q Up Down;
#X obj 485 53 clip 0 200;
#X obj 380 76 f 0;
#X obj 445 77 f 0;
#X obj 402 167 f;
#X obj 428 97 - 10;
#X obj 475 103 + 10;
#X obj 404 56 clip 0 200;
#X obj 446 30 r \$0-y2+;
#X obj 403 197 s \$0-player2;
#X obj 298 351 set rect y;
#X obj 363 323 r \$0-pad2pointer;
#X obj 298 290 r \$0-player2;
#X obj 375 29 r \$0-y2-;
#X obj 107 142 s \$0-y2+;
#X obj 77 174 s \$0-y2-;
#X obj 312 90 r \$0-padspeed;
#X connect 0 0 1 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 3 1 4 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 19 0;
#X connect 9 0 11 1;
#X connect 10 0 13 0;
#X connect 10 0 14 0;
#X connect 10 0 12 0;
#X connect 11 0 12 0;
#X connect 11 0 13 0;
#X connect 11 0 14 0;
#X connect 12 0 17 0;
#X connect 13 0 18 0;
#X connect 14 0 9 0;
#X connect 15 0 10 0;
#X connect 16 0 11 0;
#X connect 18 0 10 1;
#X connect 19 0 7 0;
#X connect 19 1 8 0;
#X connect 19 2 34 0;
#X connect 19 3 33 0;
#X connect 20 0 22 1;
#X connect 21 0 24 0;
#X connect 21 0 25 0;
#X connect 21 0 23 0;
#X connect 22 0 23 0;
#X connect 22 0 24 0;
#X connect 22 0 25 0;
#X connect 23 0 28 0;
#X connect 24 0 26 0;
#X connect 25 0 20 0;
#X connect 26 0 21 1;
#X connect 27 0 22 0;
#X connect 30 0 29 1;
#X connect 31 0 29 0;
#X connect 32 0 21 0;
#X connect 35 0 14 1;
#X connect 35 0 13 1;
#X connect 35 0 24 1;
#X connect 35 0 25 1;
#X restore 251 173 pd movepads;
#X obj 348 362 nbx 5 14 -1e+37 1e+37 0 0 \$0-padspeed empty padspeed
0 -6 0 10 -262144 -1 -1 0 256;
#X msg 178 319 0.3;
#X obj 335 403 r \$0-PAD1_OUT;
#X obj 436 404 r \$0-PAD2_OUT;
#X msg 332 433 0;
#X msg 434 431 0;
#X obj 546 472 + 1;
#X obj 345 470 + 1;
#X obj 310 497 s \$0-score1;
#X obj 508 497 s \$0-score2;
#X obj 538 34 nbx 5 14 -1e+37 1e+37 0 0 empty \$0-score2 empty 0 -6
0 10 -1 -262144 -1 8 256;
#X obj 732 33 nbx 5 14 -1e+37 1e+37 0 0 empty \$0-score1 empty 0 -6
0 10 -1 -262144 -1 6 256;
#X obj 494 436 print pad2;
#X obj 219 432 print pad1;
#X obj 516 522 key;
#X obj 514 594 select 32;
#X obj 177 271 loadbang;
#X text 664 392 Move pads with (q \, a) and (Up \, Down);
#X text 664 414 Restart ball with <Spacebar>;
#X obj 561 393 bng 32 250 50 0 empty empty RESET_SCORE 0 -6 0 8 -258699
-1 -1;
#X msg 586 436 0;
#X obj 512 472 f 0;
#X obj 311 470 f 0;
#X connect 6 0 10 0;
#X connect 10 0 7 0;
#X connect 10 1 8 0;
#X connect 11 0 12 0;
#X connect 11 0 21 0;
#X connect 11 1 13 0;
#X connect 11 1 20 0;
#X connect 16 0 15 0;
#X connect 17 0 27 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 23 1 25 0;
#X connect 26 0 16 1;
#X connect 27 0 18 0;
#X connect 28 0 27 1;
#X connect 32 0 16 0;
#X connect 33 0 35 0;
#X connect 33 0 44 0;
#X connect 33 0 52 0;
#X connect 34 0 36 0;
#X connect 34 0 43 0;
#X connect 34 0 53 0;
#X connect 35 0 17 0;
#X connect 36 0 17 0;
#X connect 37 0 52 1;
#X connect 38 0 53 1;
#X connect 45 0 46 0;
#X connect 46 0 17 0;
#X connect 47 0 10 0;
#X connect 47 0 26 0;
#X connect 47 0 32 0;
#X connect 50 0 51 0;
#X connect 50 0 39 0;
#X connect 51 0 52 1;
#X connect 51 0 53 1;
#X connect 51 0 40 0;
#X connect 51 0 39 0;
#X connect 52 0 37 0;
#X connect 52 0 40 0;
#X connect 53 0 38 0;
#X connect 53 0 39 0;


More information about the Pd-list mailing list