Changeset 3142 for libcaca/trunk/caca-php/examples
- Timestamp:
- Oct 30, 2008, 1:18:07 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/caca-php/examples/demo.php
r3141 r3142 16 16 */ 17 17 18 19 20 18 function main() { 21 19 $cv = caca_create_canvas(0, 0); … … 31 29 caca_set_display_time($dp, 40000); 32 30 33 /* Disable cursor */31 /* Disable X cursor */ 34 32 caca_set_mouse($dp, 0); 35 33 … … 40 38 $bounds = $outline = $dithering = 0; 41 39 $need_refresh = false; 42 $ev = caca_create_event();43 40 while(!$quit) { 44 while ( caca_get_event($dp, CACA_EVENT_ANY, $ev, 1000)) {41 while ($ev = caca_get_event($dp, CACA_EVENT_ANY, 1000)) { 45 42 if (caca_get_event_type($ev) & CACA_EVENT_KEY_PRESS) { 46 43 switch (caca_get_event_key_ch($ev)) { … … 117 114 } 118 115 119 function demo_go($dp, $demo, $cv, $bounds, $outline) {120 caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK);121 caca_clear_canvas($cv);122 123 while (!caca_get_event($dp, CACA_EVENT_KEY_PRESS)) {124 if (function_exists($demo))125 $demo($cv, $bounds, $outline);126 127 caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK);128 caca_draw_thin_box($cv, 1, 1, caca_get_canvas_width($cv) - 2, caca_get_canvas_height($cv) - 2);129 $rate = sprintf("%01.2f", 1000000 / caca_get_display_time($dp));130 caca_put_str($cv, 4, 1, "[$rate fps]----");131 caca_refresh_display($dp);132 }133 134 display_menu($cv, $dp, $bounds, $outline);135 caca_refresh_display($dp);136 }137 138 139 function demo_all($cv, $bounds, $outline) {140 global $i;141 142 $i++;143 144 caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK);145 caca_clear_canvas($cv);146 147 /* Draw the sun */148 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);149 $xo = caca_get_canvas_width($cv) / 4;150 $yo = caca_get_canvas_height($cv) / 4 + 5 * sin(0.03 * $i);151 152 for ($j = 0; $j < 16; $j++) {153 $xa = $xo - (30 + sin(0.03 * $i) * 8) * sin(0.03 * $i + M_PI * $j / 8);154 $ya = $yo + (15 + sin(0.03 * $i) * 4) * cos(0.03 * $i + M_PI * $j / 8);155 caca_draw_thin_line($cv, $xo, $yo, $xa, $ya);156 }157 158 $j = 15 + sin(0.03 * $i) * 8;159 caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK);160 caca_fill_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#'));161 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);162 caca_draw_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#'));163 164 /* Draw the pyramid */165 $xo = caca_get_canvas_width($cv) * 5 / 8;166 $yo = 2;167 168 $xa = caca_get_canvas_width($cv) / 8 + sin(0.03 * $i) * 5;169 $ya = caca_get_canvas_height($cv) / 2 + cos(0.03 * $i) * 5;170 171 $xb = caca_get_canvas_width($cv) - 10 - cos(0.02 * $i) * 10;172 $yb = caca_get_canvas_height($cv) * 3 / 4 - 5 + sin(0.02 * $i) * 5;173 174 $xc = caca_get_canvas_width($cv) / 4 - sin(0.02 * $i) * 5;175 $yc = caca_get_canvas_height($cv) * 3 / 4 + cos(0.02 * $i) * 5;176 177 caca_set_color_ansi($cv, CACA_GREEN, CACA_BLACK);178 caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya, ord('%'));179 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);180 caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya);181 182 caca_set_color_ansi($cv, CACA_RED, CACA_BLACK);183 caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#'));184 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);185 caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc);186 187 caca_set_color_ansi($cv, CACA_BLUE, CACA_BLACK);188 caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc, ord('%'));189 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);190 caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc);191 192 /* Draw a background triangle */193 $xa = 2;194 $ya = 2;195 196 $xb = caca_get_canvas_width($cv) - 3;197 $yb = caca_get_canvas_height($cv) / 2;198 199 $xc = caca_get_canvas_width($cv) / 3;200 $yc = caca_get_canvas_height($cv) - 3;201 202 caca_set_color_ansi($cv, CACA_CYAN, CACA_BLACK);203 caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc);204 205 $xo = caca_get_canvas_width($cv) / 2 + cos(0.027 * $i) * caca_get_canvas_width($cv) / 3;206 $yo = caca_get_canvas_height($cv) / 2 - sin(0.027 * $i) * caca_get_canvas_height($cv) / 2;207 208 caca_draw_thin_line($cv, $xa, $ya, $xo, $yo);209 caca_draw_thin_line($cv, $xb, $yb, $xo, $yo);210 caca_draw_thin_line($cv, $xc, $yc, $xo, $yo);211 212 /* Draw a trail behind the foreground sprite */213 for($j = $i - 60; $j < $i; $j++) {214 $delta = caca_rand(-5, 6);215 caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16));216 caca_put_char($cv,217 caca_get_canvas_width($cv) / 2 + cos(0.02 * $j) * ($delta + caca_get_canvas_width($cv) / 4),218 caca_get_canvas_height($cv) / 2 + sin(0.02 * $j) * ($delta + caca_get_canvas_height($cv) / 3),219 ord('#'));220 }221 }222 223 116 function display_menu($cv, $dp, $bounds, $outline, $refresh = true) { 224 117 $xo = caca_get_canvas_width($cv) - 2; … … 254 147 } 255 148 149 function demo_go($dp, $demo, $cv, $bounds, $outline) { 150 caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); 151 caca_clear_canvas($cv); 152 153 while (!caca_get_event($dp, CACA_EVENT_KEY_PRESS)) { 154 if (function_exists($demo)) 155 $demo($cv, $bounds, $outline); 156 157 caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); 158 caca_draw_thin_box($cv, 1, 1, caca_get_canvas_width($cv) - 2, caca_get_canvas_height($cv) - 2); 159 $rate = sprintf("%01.2f", 1000000 / caca_get_display_time($dp)); 160 caca_put_str($cv, 4, 1, "[$rate fps]----"); 161 caca_refresh_display($dp); 162 } 163 164 display_menu($cv, $dp, $bounds, $outline); 165 caca_refresh_display($dp); 166 } 167 168 169 function demo_all($cv, $bounds, $outline) { 170 global $i; 171 172 $i++; 173 174 caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); 175 caca_clear_canvas($cv); 176 177 /* Draw the sun */ 178 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 179 $xo = caca_get_canvas_width($cv) / 4; 180 $yo = caca_get_canvas_height($cv) / 4 + 5 * sin(0.03 * $i); 181 182 for ($j = 0; $j < 16; $j++) { 183 $xa = $xo - (30 + sin(0.03 * $i) * 8) * sin(0.03 * $i + M_PI * $j / 8); 184 $ya = $yo + (15 + sin(0.03 * $i) * 4) * cos(0.03 * $i + M_PI * $j / 8); 185 caca_draw_thin_line($cv, $xo, $yo, $xa, $ya); 186 } 187 188 $j = 15 + sin(0.03 * $i) * 8; 189 caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK); 190 caca_fill_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#')); 191 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 192 caca_draw_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#')); 193 194 /* Draw the pyramid */ 195 $xo = caca_get_canvas_width($cv) * 5 / 8; 196 $yo = 2; 197 198 $xa = caca_get_canvas_width($cv) / 8 + sin(0.03 * $i) * 5; 199 $ya = caca_get_canvas_height($cv) / 2 + cos(0.03 * $i) * 5; 200 201 $xb = caca_get_canvas_width($cv) - 10 - cos(0.02 * $i) * 10; 202 $yb = caca_get_canvas_height($cv) * 3 / 4 - 5 + sin(0.02 * $i) * 5; 203 204 $xc = caca_get_canvas_width($cv) / 4 - sin(0.02 * $i) * 5; 205 $yc = caca_get_canvas_height($cv) * 3 / 4 + cos(0.02 * $i) * 5; 206 207 caca_set_color_ansi($cv, CACA_GREEN, CACA_BLACK); 208 caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya, ord('%')); 209 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 210 caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya); 211 212 caca_set_color_ansi($cv, CACA_RED, CACA_BLACK); 213 caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#')); 214 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 215 caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); 216 217 caca_set_color_ansi($cv, CACA_BLUE, CACA_BLACK); 218 caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc, ord('%')); 219 caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); 220 caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc); 221 222 /* Draw a background triangle */ 223 $xa = 2; 224 $ya = 2; 225 226 $xb = caca_get_canvas_width($cv) - 3; 227 $yb = caca_get_canvas_height($cv) / 2; 228 229 $xc = caca_get_canvas_width($cv) / 3; 230 $yc = caca_get_canvas_height($cv) - 3; 231 232 caca_set_color_ansi($cv, CACA_CYAN, CACA_BLACK); 233 caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); 234 235 $xo = caca_get_canvas_width($cv) / 2 + cos(0.027 * $i) * caca_get_canvas_width($cv) / 3; 236 $yo = caca_get_canvas_height($cv) / 2 - sin(0.027 * $i) * caca_get_canvas_height($cv) / 2; 237 238 caca_draw_thin_line($cv, $xa, $ya, $xo, $yo); 239 caca_draw_thin_line($cv, $xb, $yb, $xo, $yo); 240 caca_draw_thin_line($cv, $xc, $yc, $xo, $yo); 241 242 /* Draw a trail behind the foreground sprite */ 243 for($j = $i - 60; $j < $i; $j++) { 244 $delta = caca_rand(-5, 6); 245 caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); 246 caca_put_char($cv, 247 caca_get_canvas_width($cv) / 2 + cos(0.02 * $j) * ($delta + caca_get_canvas_width($cv) / 4), 248 caca_get_canvas_height($cv) / 2 + sin(0.02 * $j) * ($delta + caca_get_canvas_height($cv) / 3), 249 ord('#')); 250 } 251 } 252 256 253 function demo_dots($cv, $bounds, $outline) { 257 254 $xmax = caca_get_canvas_width($cv);
Note: See TracChangeset
for help on using the changeset viewer.