Changeset 3109 for libcaca/trunk/caca-php/examples/demo.php
- Timestamp:
- Oct 26, 2008, 2:38:47 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/caca-php/examples/demo.php
r3108 r3109 13 13 } 14 14 15 display_menu($cv, $dp);16 15 17 16 caca_set_display_time($dp, 40000); … … 21 20 22 21 /* Main menu */ 23 display_menu($cv, $dp );22 display_menu($cv, $dp, $bounds, $outline); 24 23 caca_refresh_display($dp); 25 24 … … 48 47 case ord('O'): 49 48 $outline = ($outline + 1) % 3; 50 display_menu($cv, $dp );49 display_menu($cv, $dp, $bounds, $outline); 51 50 break; 52 51 case ord('b'): 53 52 case ord('B'): 54 53 $bounds = ($bounds + 1) % 2; 55 display_menu($cv, $dp );54 display_menu($cv, $dp, $bounds, $outline); 56 55 break; 57 56 case ord('d'): … … 59 58 $dithering = ($dithering + 1) % 5; 60 59 caca_set_feature($cv, $dithering); 61 display_menu($cv, $dp );60 display_menu($cv, $dp, $bounds, $outline); 62 61 break; 63 62 case ord('f'): … … 106 105 107 106 if ($menu || ($mouse && !$demo)) { 108 display_menu($cv, $dp );107 display_menu($cv, $dp, $bounds, $outline); 109 108 if ($mouse && !$demo) { 110 109 caca_set_color_ansi($cv, CACA_RED, CACA_BLACK); … … 117 116 118 117 if ($demo) { 119 $demo($cv, $bounds, $outline, $dithering); 118 if (function_exists($demo)) 119 $demo($cv, $bounds, $outline, $dithering); 120 120 121 121 caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); 122 122 caca_draw_thin_box($cv, 1, 1, caca_get_canvas_width($cv) - 2, caca_get_canvas_height($cv) - 2); 123 $rate = (1000000 / caca_get_display_time($dp)).".".((10000000 / caca_get_display_time($dp)) % 10);123 $rate = sprintf("%01.2f", 1000000 / caca_get_display_time($dp)); 124 124 caca_put_str($cv, 4, 1, "[$rate fps]----"); 125 125 caca_refresh_display($dp); … … 128 128 } 129 129 130 function display_menu($cv, $dp) { 130 function demo_all($cv, $dp, $bounds, $outline) { 131 global $i; 132 133 $i++; 134 135 caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); 136 caca_clear_canvas($cv); 137 138 /* Draw the sun */ 139 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 140 $xo = caca_get_canvas_width($cv) / 4; 141 $yo = caca_get_canvas_height($cv) / 4 + 5 * sin(0.03 * $i); 142 143 for ($j = 0; $j < 16; $j++) { 144 $xa = $xo - (30 + sin(0.03 * $i) * 8) * sin(0.03 * $i + M_PI * $j / 8); 145 $ya = $yo + (15 + sin(0.03 * $i) * 4) * cos(0.03 * $i + M_PI * $j / 8); 146 caca_draw_thin_line($cv, $xo, $yo, $xa, $ya); 147 } 148 149 $j = 15 + sin(0.03 * $i) * 8; 150 caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK); 151 caca_fill_ellipse($cv, $xo, $yo, $j, $j / 2, '#'); 152 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 153 caca_draw_ellipse($cv, $xo, $yo, $j, $j / 2, '#'); 154 155 /* Draw the pyramid */ 156 $xo = caca_get_canvas_width($cv) * 5 / 8; 157 $yo = 2; 158 159 $xa = caca_get_canvas_width($cv) / 8 + sin(0.03 * $i) * 5; 160 $ya = caca_get_canvas_height($cv) / 2 + cos(0.03 * $i) * 5; 161 162 $xb = caca_get_canvas_width($cv) - 10 - cos(0.02 * $i) * 10; 163 $yb = caca_get_canvas_height($cv) * 3 / 4 - 5 + sin(0.02 * $i) * 5; 164 165 $xc = caca_get_canvas_width($cv) / 4 - sin(0.02 * $i) * 5; 166 $yc = caca_get_canvas_height($cv) * 3 / 4 + cos(0.02 * $i) * 5; 167 168 caca_set_color_ansi($cv, CACA_GREEN, CACA_BLACK); 169 caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya, '%'); 170 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 171 caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya); 172 173 caca_set_color_ansi($cv, CACA_RED, CACA_BLACK); 174 caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, '#'); 175 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 176 caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); 177 178 caca_set_color_ansi($cv, CACA_BLUE, CACA_BLACK); 179 caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc, '%'); 180 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 181 caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc); 182 183 /* Draw a background triangle */ 184 $xa = 2; 185 $ya = 2; 186 187 $xb = caca_get_canvas_width($cv) - 3; 188 $yb = caca_get_canvas_height($cv) / 2; 189 190 $xc = caca_get_canvas_width($cv) / 3; 191 $yc = caca_get_canvas_height($cv) - 3; 192 193 caca_set_color_ansi($cv, CACA_CYAN, CACA_BLACK); 194 caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); 195 196 $xo = caca_get_canvas_width($cv) / 2 + cos(0.027 * $i) * caca_get_canvas_width($cv) / 3; 197 $yo = caca_get_canvas_height($cv) / 2 - sin(0.027 * $i) * caca_get_canvas_height($cv) / 2; 198 199 caca_draw_thin_line($cv, $xa, $ya, $xo, $yo); 200 caca_draw_thin_line($cv, $xb, $yb, $xo, $yo); 201 caca_draw_thin_line($cv, $xc, $yc, $xo, $yo); 202 203 /* Draw a trail behind the foreground sprite */ 204 for($j = $i - 60; $j < $i; $j++) { 205 $delta = caca_rand(-5, 6); 206 caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); 207 caca_put_char($cv, 208 caca_get_canvas_width($cv) / 2 + cos(0.02 * $j) * ($delta + caca_get_canvas_width($cv) / 4), 209 caca_get_canvas_height($cv) / 2 + sin(0.02 * $j) * ($delta + caca_get_canvas_height($cv) / 3), 210 '#'); 211 } 212 } 213 214 function display_menu($cv, $dp, $bounds, $outline) { 131 215 $xo = caca_get_canvas_width($cv) - 2; 132 216 $yo = caca_get_canvas_height($cv) - 2; … … 153 237 154 238 caca_put_str($cv, 4, 16, "settings:"); 155 caca_put_str($cv, 4, 17, "'o': outline: ".(( outline == 0) ? "none" : ((outline == 1) ? "solid" : "thin")));156 caca_put_str($cv, 4, 18, "'b': drawing boundaries: ".(( bounds == 0) ? "screen" : "infinite"));239 caca_put_str($cv, 4, 17, "'o': outline: ".(($outline == 0) ? "none" : (($outline == 1) ? "solid" : "thin"))); 240 caca_put_str($cv, 4, 18, "'b': drawing boundaries: ".(($bounds == 0) ? "screen" : "infinite")); 157 241 caca_put_str($cv, 4, $yo - 2, "'q': quit"); 158 242 … … 241 325 } 242 326 327 function demo_triangles($cv, $bounds, $outline, $dithering) { 328 $w = caca_get_canvas_width($cv); 329 $h = caca_get_canvas_height($cv); 330 331 if ($bounds) { 332 $xa = caca_rand(- $w, 2 * $w); $ya = caca_rand(- $h, 2 * $h); 333 $xb = caca_rand(- $w, 2 * $w); $yb = caca_rand(- $h, 2 * $h); 334 $xc = caca_rand(- $w, 2 * $w); $yc = caca_rand(- $h, 2 * $h); 335 } 336 else { 337 $xa = caca_rand(0, $w); $ya = caca_rand(0, $h); 338 $xb = caca_rand(0, $w); $yb = caca_rand(0, $h); 339 $xc = caca_rand(0, $w); $yc = caca_rand(0, $h); 340 } 341 342 caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); 343 caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, '#'); 344 345 caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); 346 if ($outline == 2) 347 caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); 348 else if ($outline == 1) 349 caca_draw_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, '#'); 350 } 351 243 352 244 353
Note: See TracChangeset
for help on using the changeset viewer.