ruby-miyako 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +275 -20
- data/extern.h +21 -1
- data/install_miyako.rb +5 -3
- data/lib/Miyako/API/audio.rb +11 -6
- data/lib/Miyako/API/basic_data.rb +0 -985
- data/lib/Miyako/API/bitmap.rb +19 -22
- data/lib/Miyako/API/choices.rb +203 -69
- data/lib/Miyako/API/collision.rb +451 -9
- data/lib/Miyako/API/color.rb +177 -0
- data/lib/Miyako/API/diagram.rb +18 -20
- data/lib/Miyako/API/fixedmap.rb +207 -73
- data/lib/Miyako/API/font.rb +111 -18
- data/lib/Miyako/API/i_yuki.rb +1201 -0
- data/lib/Miyako/API/input.rb +65 -0
- data/lib/Miyako/API/layout.rb +41 -29
- data/lib/Miyako/API/map.rb +202 -157
- data/lib/Miyako/API/map_event.rb +86 -19
- data/lib/Miyako/API/map_struct.rb +268 -0
- data/lib/Miyako/API/modules.rb +136 -37
- data/lib/Miyako/API/movie.rb +8 -8
- data/lib/Miyako/API/parts.rb +63 -20
- data/lib/Miyako/API/plane.rb +4 -4
- data/lib/Miyako/API/screen.rb +16 -8
- data/lib/Miyako/API/sprite.rb +290 -23
- data/lib/Miyako/API/sprite_animation.rb +23 -11
- data/lib/Miyako/API/sprite_list.rb +406 -183
- data/lib/Miyako/API/story.rb +4 -65
- data/lib/Miyako/API/struct_point.rb +157 -0
- data/lib/Miyako/API/struct_rect.rb +233 -0
- data/lib/Miyako/API/struct_segment.rb +641 -0
- data/lib/Miyako/API/struct_size.rb +158 -0
- data/lib/Miyako/API/struct_square.rb +253 -0
- data/lib/Miyako/API/textbox.rb +49 -35
- data/lib/Miyako/API/viewport.rb +5 -5
- data/lib/Miyako/API/wait_counter.rb +350 -0
- data/lib/Miyako/API/yuki.rb +95 -60
- data/lib/Miyako/EXT/raster_scroll.rb +30 -8
- data/lib/Miyako/EXT/slides.rb +6 -6
- data/lib/Miyako/miyako.rb +25 -11
- data/lib/miyako.rb +28 -0
- data/lib/miyako_require_only.rb +35 -0
- data/miyako_basicdata.c +201 -17
- data/miyako_collision.c +315 -6
- data/miyako_diagram.c +331 -0
- data/miyako_drawing.c +26 -7
- data/miyako_font.c +259 -129
- data/miyako_input_audio.c +24 -14
- data/miyako_layout.c +106 -8
- data/miyako_no_katana.c +398 -171
- data/miyako_sprite2.c +275 -38
- data/miyako_transform.c +113 -107
- data/miyako_utility.c +34 -48
- data/miyako_yuki.c +241 -0
- data/sample/Diagram_sample/diagram_sample_yuki2.rb +30 -30
- data/sample/Room3/blue.rb +19 -19
- data/sample/Room3/green.rb +9 -9
- data/sample/Room3/main.rb +12 -12
- data/sample/Room3/red.rb +12 -12
- data/sample/Room3/title.rb +15 -10
- data/sample/collision_test2.rb +2 -1
- data/sample/fixed_map_test/fixed_map_sample.rb +7 -6
- data/sample/map_test/main_scene.rb +12 -10
- data/sample/map_test/map_manager.rb +14 -13
- data/sample/rasterscroll.rb +5 -5
- data/sample/takahashi.rb +3 -3
- data/sample/textbox_sample.rb +7 -6
- data/sample/transform.rb +2 -1
- data/uninstall_miyako.rb +4 -1
- data/win/miyako_no_katana.so +0 -0
- metadata +15 -4
- data/lib/Miyako/EXT/miyako_cairo.rb +0 -62
- data/sample/cairo_sample.rb +0 -25
data/miyako_collision.c
CHANGED
@@ -33,6 +33,7 @@ static VALUE mMiyako = Qnil;
|
|
33
33
|
static VALUE eMiyakoError = Qnil;
|
34
34
|
static VALUE cCollision = Qnil;
|
35
35
|
static VALUE cCircleCollision = Qnil;
|
36
|
+
static VALUE cCollisionEx = Qnil;
|
36
37
|
static VALUE cCollisions = Qnil;
|
37
38
|
static VALUE nZero = Qnil;
|
38
39
|
static VALUE nOne = Qnil;
|
@@ -92,10 +93,18 @@ static VALUE collision_c_collision(VALUE self, VALUE c1, VALUE pos1, VALUE c2, V
|
|
92
93
|
double r2 = l2 + NUM2DBL(*(prect2+2)) - 1;
|
93
94
|
double b2 = t2 + NUM2DBL(*(prect2+3)) - 1;
|
94
95
|
|
95
|
-
if(
|
96
|
-
|
97
|
-
|
98
|
-
|
96
|
+
if(l2 <= r1 && r1 <= r2)
|
97
|
+
{
|
98
|
+
if(t2 <= b1 && b1 <= b2) return Qtrue;
|
99
|
+
if(t2 <= t1 && t1 <= b2) return Qtrue;
|
100
|
+
return Qfalse;
|
101
|
+
}
|
102
|
+
if(l2 <= l1 && l1 <= r2)
|
103
|
+
{
|
104
|
+
if(t2 <= b1 && b1 <= b2) return Qtrue;
|
105
|
+
if(t2 <= t1 && t1 <= b2) return Qtrue;
|
106
|
+
return Qfalse;
|
107
|
+
}
|
99
108
|
return Qfalse;
|
100
109
|
}
|
101
110
|
|
@@ -143,8 +152,52 @@ static VALUE collision_c_cover(VALUE self, VALUE c1, VALUE pos1, VALUE c2, VALUE
|
|
143
152
|
|
144
153
|
if(l1 >= l2 && r1 <= r2 && t1 >= t2 && b1 <= b2) return Qtrue;
|
145
154
|
if(l1 <= l2 && r1 >= r2 && t1 <= t2 && b1 >= b2) return Qtrue;
|
146
|
-
|
147
|
-
|
155
|
+
return Qfalse;
|
156
|
+
}
|
157
|
+
|
158
|
+
/*
|
159
|
+
:nodoc:
|
160
|
+
*/
|
161
|
+
static VALUE collision_c_covers(VALUE self, VALUE c1, VALUE pos1, VALUE c2, VALUE pos2)
|
162
|
+
{
|
163
|
+
VALUE *prect1 = RSTRUCT_PTR(rb_iv_get(c1, "@rect"));
|
164
|
+
VALUE *prect2 = RSTRUCT_PTR(rb_iv_get(c2, "@rect"));
|
165
|
+
VALUE x1, y1, x2, y2;
|
166
|
+
collision_get_position(pos1, &x1, &y1);
|
167
|
+
collision_get_position(pos2, &x2, &y2);
|
168
|
+
double l1 = NUM2DBL(x1) + NUM2DBL(*prect1);
|
169
|
+
double t1 = NUM2DBL(y1) + NUM2DBL(*(prect1+1));
|
170
|
+
double r1 = l1 + NUM2DBL(*(prect1+2)) - 1;
|
171
|
+
double b1 = t1 + NUM2DBL(*(prect1+3)) - 1;
|
172
|
+
double l2 = NUM2DBL(x2) + NUM2DBL(*prect2);
|
173
|
+
double t2 = NUM2DBL(y2) + NUM2DBL(*(prect2+1));
|
174
|
+
double r2 = l2 + NUM2DBL(*(prect2+2)) - 1;
|
175
|
+
double b2 = t2 + NUM2DBL(*(prect2+3)) - 1;
|
176
|
+
|
177
|
+
if(l1 <= l2 && r1 >= r2 && t1 <= t2 && b1 >= b2) return Qtrue;
|
178
|
+
return Qfalse;
|
179
|
+
}
|
180
|
+
|
181
|
+
/*
|
182
|
+
:nodoc:
|
183
|
+
*/
|
184
|
+
static VALUE collision_c_covered(VALUE self, VALUE c1, VALUE pos1, VALUE c2, VALUE pos2)
|
185
|
+
{
|
186
|
+
VALUE *prect1 = RSTRUCT_PTR(rb_iv_get(c1, "@rect"));
|
187
|
+
VALUE *prect2 = RSTRUCT_PTR(rb_iv_get(c2, "@rect"));
|
188
|
+
VALUE x1, y1, x2, y2;
|
189
|
+
collision_get_position(pos1, &x1, &y1);
|
190
|
+
collision_get_position(pos2, &x2, &y2);
|
191
|
+
double l1 = NUM2DBL(x1) + NUM2DBL(*prect1);
|
192
|
+
double t1 = NUM2DBL(y1) + NUM2DBL(*(prect1+1));
|
193
|
+
double r1 = l1 + NUM2DBL(*(prect1+2)) - 1;
|
194
|
+
double b1 = t1 + NUM2DBL(*(prect1+3)) - 1;
|
195
|
+
double l2 = NUM2DBL(x2) + NUM2DBL(*prect2);
|
196
|
+
double t2 = NUM2DBL(y2) + NUM2DBL(*(prect2+1));
|
197
|
+
double r2 = l2 + NUM2DBL(*(prect2+2)) - 1;
|
198
|
+
double b2 = t2 + NUM2DBL(*(prect2+3)) - 1;
|
199
|
+
|
200
|
+
if(l1 >= l2 && r1 <= r2 && t1 >= t2 && b1 <= b2) return Qtrue;
|
148
201
|
return Qfalse;
|
149
202
|
}
|
150
203
|
|
@@ -172,6 +225,22 @@ static VALUE collision_cover(VALUE self, VALUE pos1, VALUE c2, VALUE pos2)
|
|
172
225
|
return collision_c_cover(cCollision, self, pos1, c2, pos2);
|
173
226
|
}
|
174
227
|
|
228
|
+
/*
|
229
|
+
:nodoc:
|
230
|
+
*/
|
231
|
+
static VALUE collision_covers(VALUE self, VALUE pos1, VALUE c2, VALUE pos2)
|
232
|
+
{
|
233
|
+
return collision_c_covers(cCollision, self, pos1, c2, pos2);
|
234
|
+
}
|
235
|
+
|
236
|
+
/*
|
237
|
+
:nodoc:
|
238
|
+
*/
|
239
|
+
static VALUE collision_covered(VALUE self, VALUE pos1, VALUE c2, VALUE pos2)
|
240
|
+
{
|
241
|
+
return collision_c_covered(cCollision, self, pos1, c2, pos2);
|
242
|
+
}
|
243
|
+
|
175
244
|
/*
|
176
245
|
:nodoc:
|
177
246
|
*/
|
@@ -241,6 +310,52 @@ static VALUE circlecollision_c_cover(VALUE self, VALUE c1, VALUE pos1, VALUE c2,
|
|
241
310
|
return Qfalse;
|
242
311
|
}
|
243
312
|
|
313
|
+
/*
|
314
|
+
:nodoc:
|
315
|
+
*/
|
316
|
+
static VALUE circlecollision_c_covers(VALUE self, VALUE c1, VALUE pos1, VALUE c2, VALUE pos2)
|
317
|
+
{
|
318
|
+
VALUE *pcenter1 = RSTRUCT_PTR(rb_iv_get(c1, "@center"));
|
319
|
+
VALUE *pcenter2 = RSTRUCT_PTR(rb_iv_get(c2, "@center"));
|
320
|
+
double r1 = NUM2DBL(rb_iv_get(c1, "@radius"));
|
321
|
+
double r2 = NUM2DBL(rb_iv_get(c2, "@radius"));
|
322
|
+
double r = (r1 - r2) * (r1 - r2); // y = (x-a)^2 -> y = x^2 - 2ax + a^2
|
323
|
+
VALUE x1, y1, x2, y2;
|
324
|
+
collision_get_position(pos1, &x1, &y1);
|
325
|
+
collision_get_position(pos2, &x2, &y2);
|
326
|
+
double cx1 = NUM2DBL(x1) + NUM2DBL(*pcenter1);
|
327
|
+
double cy1 = NUM2DBL(y1) + NUM2DBL(*(pcenter1+1));
|
328
|
+
double cx2 = NUM2DBL(x2) + NUM2DBL(*pcenter2);
|
329
|
+
double cy2 = NUM2DBL(y2) + NUM2DBL(*(pcenter2+1));
|
330
|
+
double d = (cx1-cx2) * (cx1-cx2) + (cy1-cy2) * (cy1-cy2);
|
331
|
+
|
332
|
+
if(r1 >= r2 && d <= r) return Qtrue;
|
333
|
+
return Qfalse;
|
334
|
+
}
|
335
|
+
|
336
|
+
/*
|
337
|
+
:nodoc:
|
338
|
+
*/
|
339
|
+
static VALUE circlecollision_c_covered(VALUE self, VALUE c1, VALUE pos1, VALUE c2, VALUE pos2)
|
340
|
+
{
|
341
|
+
VALUE *pcenter1 = RSTRUCT_PTR(rb_iv_get(c1, "@center"));
|
342
|
+
VALUE *pcenter2 = RSTRUCT_PTR(rb_iv_get(c2, "@center"));
|
343
|
+
double r1 = NUM2DBL(rb_iv_get(c1, "@radius"));
|
344
|
+
double r2 = NUM2DBL(rb_iv_get(c2, "@radius"));
|
345
|
+
double r = (r1 - r2) * (r1 - r2); // y = (x-a)^2 -> y = x^2 - 2ax + a^2
|
346
|
+
VALUE x1, y1, x2, y2;
|
347
|
+
collision_get_position(pos1, &x1, &y1);
|
348
|
+
collision_get_position(pos2, &x2, &y2);
|
349
|
+
double cx1 = NUM2DBL(x1) + NUM2DBL(*pcenter1);
|
350
|
+
double cy1 = NUM2DBL(y1) + NUM2DBL(*(pcenter1+1));
|
351
|
+
double cx2 = NUM2DBL(x2) + NUM2DBL(*pcenter2);
|
352
|
+
double cy2 = NUM2DBL(y2) + NUM2DBL(*(pcenter2+1));
|
353
|
+
double d = (cx1-cx2) * (cx1-cx2) + (cy1-cy2) * (cy1-cy2);
|
354
|
+
|
355
|
+
if(r1 <= r2 && d <= r) return Qtrue;
|
356
|
+
return Qfalse;
|
357
|
+
}
|
358
|
+
|
244
359
|
/*
|
245
360
|
:nodoc:
|
246
361
|
*/
|
@@ -265,6 +380,112 @@ static VALUE circlecollision_cover(VALUE self, VALUE pos1, VALUE c2, VALUE pos2)
|
|
265
380
|
return circlecollision_c_cover(cCircleCollision, self, pos1, c2, pos2);
|
266
381
|
}
|
267
382
|
|
383
|
+
/*
|
384
|
+
:nodoc:
|
385
|
+
*/
|
386
|
+
static VALUE circlecollision_covers(VALUE self, VALUE pos1, VALUE c2, VALUE pos2)
|
387
|
+
{
|
388
|
+
return circlecollision_c_covers(cCircleCollision, self, pos1, c2, pos2);
|
389
|
+
}
|
390
|
+
|
391
|
+
/*
|
392
|
+
:nodoc:
|
393
|
+
*/
|
394
|
+
static VALUE circlecollision_covered(VALUE self, VALUE pos1, VALUE c2, VALUE pos2)
|
395
|
+
{
|
396
|
+
return circlecollision_c_covered(cCircleCollision, self, pos1, c2, pos2);
|
397
|
+
}
|
398
|
+
|
399
|
+
/*
|
400
|
+
:nodoc:
|
401
|
+
*/
|
402
|
+
static VALUE collision_ex_c_collision(VALUE self, VALUE c1, VALUE c2)
|
403
|
+
{
|
404
|
+
VALUE pos1 = rb_iv_get(c1, "@pos");
|
405
|
+
VALUE pos2 = rb_iv_get(c2, "@pos");
|
406
|
+
return collision_c_collision(cCollision, c1, pos1, c2, pos2);
|
407
|
+
}
|
408
|
+
|
409
|
+
/*
|
410
|
+
:nodoc:
|
411
|
+
*/
|
412
|
+
static VALUE collision_ex_c_meet(VALUE self, VALUE c1, VALUE c2)
|
413
|
+
{
|
414
|
+
VALUE pos1 = rb_iv_get(c1, "@pos");
|
415
|
+
VALUE pos2 = rb_iv_get(c2, "@pos");
|
416
|
+
return collision_c_meet(cCollision, c1, pos1, c2, pos2);
|
417
|
+
}
|
418
|
+
|
419
|
+
/*
|
420
|
+
:nodoc:
|
421
|
+
*/
|
422
|
+
static VALUE collision_ex_c_cover(VALUE self, VALUE c1, VALUE c2)
|
423
|
+
{
|
424
|
+
VALUE pos1 = rb_iv_get(c1, "@pos");
|
425
|
+
VALUE pos2 = rb_iv_get(c2, "@pos");
|
426
|
+
return collision_c_cover(cCollision, c1, pos1, c2, pos2);
|
427
|
+
}
|
428
|
+
|
429
|
+
/*
|
430
|
+
:nodoc:
|
431
|
+
*/
|
432
|
+
static VALUE collision_ex_c_covers(VALUE self, VALUE c1, VALUE c2)
|
433
|
+
{
|
434
|
+
VALUE pos1 = rb_iv_get(c1, "@pos");
|
435
|
+
VALUE pos2 = rb_iv_get(c2, "@pos");
|
436
|
+
return collision_c_covers(cCollision, c1, pos1, c2, pos2);
|
437
|
+
}
|
438
|
+
|
439
|
+
/*
|
440
|
+
:nodoc:
|
441
|
+
*/
|
442
|
+
static VALUE collision_ex_c_covered(VALUE self, VALUE c1, VALUE c2)
|
443
|
+
{
|
444
|
+
VALUE pos1 = rb_iv_get(c1, "@pos");
|
445
|
+
VALUE pos2 = rb_iv_get(c2, "@pos");
|
446
|
+
return collision_c_covered(cCollision, c1, pos1, c2, pos2);
|
447
|
+
}
|
448
|
+
|
449
|
+
/*
|
450
|
+
:nodoc:
|
451
|
+
*/
|
452
|
+
static VALUE collision_ex_collision(VALUE self, VALUE c2)
|
453
|
+
{
|
454
|
+
return collision_ex_c_collision(cCollisionEx, self, c2);
|
455
|
+
}
|
456
|
+
|
457
|
+
/*
|
458
|
+
:nodoc:
|
459
|
+
*/
|
460
|
+
static VALUE collision_ex_meet(VALUE self, VALUE c2)
|
461
|
+
{
|
462
|
+
return collision_ex_c_meet(cCollisionEx, self, c2);
|
463
|
+
}
|
464
|
+
|
465
|
+
/*
|
466
|
+
:nodoc:
|
467
|
+
*/
|
468
|
+
static VALUE collision_ex_cover(VALUE self, VALUE c2)
|
469
|
+
{
|
470
|
+
return collision_ex_c_cover(cCollisionEx, self, c2);
|
471
|
+
}
|
472
|
+
|
473
|
+
/*
|
474
|
+
:nodoc:
|
475
|
+
*/
|
476
|
+
static VALUE collision_ex_covers(VALUE self, VALUE c2)
|
477
|
+
{
|
478
|
+
return collision_ex_c_covers(cCollisionEx, self, c2);
|
479
|
+
}
|
480
|
+
|
481
|
+
/*
|
482
|
+
:nodoc:
|
483
|
+
*/
|
484
|
+
static VALUE collision_ex_covered(VALUE self, VALUE c2)
|
485
|
+
{
|
486
|
+
return collision_ex_c_covered(cCollisionEx, self, c2);
|
487
|
+
}
|
488
|
+
|
268
489
|
/*
|
269
490
|
:nodoc:
|
270
491
|
*/
|
@@ -310,6 +531,36 @@ static VALUE collisions_cover(VALUE self, VALUE c, VALUE pos)
|
|
310
531
|
return Qnil;
|
311
532
|
}
|
312
533
|
|
534
|
+
/*
|
535
|
+
:nodoc:
|
536
|
+
*/
|
537
|
+
static VALUE collisions_covers(VALUE self, VALUE c, VALUE pos)
|
538
|
+
{
|
539
|
+
VALUE collisions = rb_iv_get(self, "@collisions");
|
540
|
+
int i=0;
|
541
|
+
for(i=0; i<RARRAY_LEN(collisions); i++){
|
542
|
+
VALUE cs = *(RARRAY_PTR(collisions) + i);
|
543
|
+
VALUE *cc = RARRAY_PTR(cs);
|
544
|
+
if(collision_covers(c, pos, *cc, *(cc+1)) == Qtrue){ return cs; }
|
545
|
+
}
|
546
|
+
return Qnil;
|
547
|
+
}
|
548
|
+
|
549
|
+
/*
|
550
|
+
:nodoc:
|
551
|
+
*/
|
552
|
+
static VALUE collisions_covered(VALUE self, VALUE c, VALUE pos)
|
553
|
+
{
|
554
|
+
VALUE collisions = rb_iv_get(self, "@collisions");
|
555
|
+
int i=0;
|
556
|
+
for(i=0; i<RARRAY_LEN(collisions); i++){
|
557
|
+
VALUE cs = *(RARRAY_PTR(collisions) + i);
|
558
|
+
VALUE *cc = RARRAY_PTR(cs);
|
559
|
+
if(collision_covered(c, pos, *cc, *(cc+1)) == Qtrue){ return cs; }
|
560
|
+
}
|
561
|
+
return Qnil;
|
562
|
+
}
|
563
|
+
|
313
564
|
/*
|
314
565
|
:nodoc:
|
315
566
|
*/
|
@@ -361,6 +612,40 @@ static VALUE collisions_cover_all(VALUE self, VALUE c, VALUE pos)
|
|
361
612
|
return ret;
|
362
613
|
}
|
363
614
|
|
615
|
+
/*
|
616
|
+
:nodoc:
|
617
|
+
*/
|
618
|
+
static VALUE collisions_covers_all(VALUE self, VALUE c, VALUE pos)
|
619
|
+
{
|
620
|
+
VALUE collisions = rb_iv_get(self, "@collisions");
|
621
|
+
VALUE ret = rb_ary_new();
|
622
|
+
int i=0;
|
623
|
+
for(i=0; i<RARRAY_LEN(collisions); i++){
|
624
|
+
VALUE cs = *(RARRAY_PTR(collisions) + i);
|
625
|
+
VALUE *cc = RARRAY_PTR(cs);
|
626
|
+
if(collision_covers(c, pos, *cc, *(cc+1)) == Qtrue){ rb_ary_push(ret, cs); }
|
627
|
+
}
|
628
|
+
if(RARRAY_LEN(ret) == 0){ return Qnil; }
|
629
|
+
return ret;
|
630
|
+
}
|
631
|
+
|
632
|
+
/*
|
633
|
+
:nodoc:
|
634
|
+
*/
|
635
|
+
static VALUE collisions_covered_all(VALUE self, VALUE c, VALUE pos)
|
636
|
+
{
|
637
|
+
VALUE collisions = rb_iv_get(self, "@collisions");
|
638
|
+
VALUE ret = rb_ary_new();
|
639
|
+
int i=0;
|
640
|
+
for(i=0; i<RARRAY_LEN(collisions); i++){
|
641
|
+
VALUE cs = *(RARRAY_PTR(collisions) + i);
|
642
|
+
VALUE *cc = RARRAY_PTR(cs);
|
643
|
+
if(collision_covered(c, pos, *cc, *(cc+1)) == Qtrue){ rb_ary_push(ret, cs); }
|
644
|
+
}
|
645
|
+
if(RARRAY_LEN(ret) == 0){ return Qnil; }
|
646
|
+
return ret;
|
647
|
+
}
|
648
|
+
|
364
649
|
void Init_miyako_collision()
|
365
650
|
{
|
366
651
|
mSDL = rb_define_module("SDL");
|
@@ -368,6 +653,7 @@ void Init_miyako_collision()
|
|
368
653
|
eMiyakoError = rb_define_class_under(mMiyako, "MiyakoError", rb_eException);
|
369
654
|
cCollision = rb_define_class_under(mMiyako, "Collision", rb_cObject);
|
370
655
|
cCircleCollision = rb_define_class_under(mMiyako, "CircleCollision", rb_cObject);
|
656
|
+
cCollisionEx = rb_define_class_under(mMiyako, "CollisionEx", cCollision);
|
371
657
|
cCollisions = rb_define_class_under(mMiyako, "Collisions", rb_cObject);
|
372
658
|
|
373
659
|
id_update = rb_intern("update");
|
@@ -383,21 +669,44 @@ void Init_miyako_collision()
|
|
383
669
|
rb_define_singleton_method(cCollision, "collision?", collision_c_collision, 4);
|
384
670
|
rb_define_singleton_method(cCollision, "meet?", collision_c_meet, 4);
|
385
671
|
rb_define_singleton_method(cCollision, "cover?", collision_c_cover, 4);
|
672
|
+
rb_define_singleton_method(cCollision, "covers?", collision_c_covers, 4);
|
673
|
+
rb_define_singleton_method(cCollision, "covered?", collision_c_covered, 4);
|
386
674
|
rb_define_method(cCollision, "collision?", collision_collision, 3);
|
387
675
|
rb_define_method(cCollision, "meet?", collision_meet, 3);
|
388
676
|
rb_define_method(cCollision, "cover?", collision_cover, 3);
|
677
|
+
rb_define_method(cCollision, "covers?", collision_covers, 3);
|
678
|
+
rb_define_method(cCollision, "covered?", collision_covered, 3);
|
679
|
+
|
680
|
+
rb_define_singleton_method(cCollisionEx, "collision?", collision_ex_c_collision, 2);
|
681
|
+
rb_define_singleton_method(cCollisionEx, "meet?", collision_ex_c_meet, 2);
|
682
|
+
rb_define_singleton_method(cCollisionEx, "cover?", collision_ex_c_cover, 2);
|
683
|
+
rb_define_singleton_method(cCollisionEx, "covers?", collision_ex_c_covers, 2);
|
684
|
+
rb_define_singleton_method(cCollisionEx, "covered?", collision_ex_c_covered, 2);
|
685
|
+
rb_define_method(cCollisionEx, "collision?", collision_ex_collision, 1);
|
686
|
+
rb_define_method(cCollisionEx, "meet?", collision_ex_meet, 1);
|
687
|
+
rb_define_method(cCollisionEx, "cover?", collision_ex_cover, 1);
|
688
|
+
rb_define_method(cCollisionEx, "covers?", collision_ex_covers, 1);
|
689
|
+
rb_define_method(cCollisionEx, "covered?", collision_ex_covered, 1);
|
389
690
|
|
390
691
|
rb_define_singleton_method(cCircleCollision, "collision?", circlecollision_c_collision, 4);
|
391
692
|
rb_define_singleton_method(cCircleCollision, "meet?", circlecollision_c_meet, 4);
|
392
693
|
rb_define_singleton_method(cCircleCollision, "cover?", circlecollision_c_cover, 4);
|
694
|
+
rb_define_singleton_method(cCircleCollision, "covers?", circlecollision_c_covers, 4);
|
695
|
+
rb_define_singleton_method(cCircleCollision, "covered?", circlecollision_c_covered, 4);
|
393
696
|
rb_define_method(cCircleCollision, "collision?", circlecollision_collision, 3);
|
394
697
|
rb_define_method(cCircleCollision, "meet?", circlecollision_meet, 3);
|
395
698
|
rb_define_method(cCircleCollision, "cover?", circlecollision_cover, 3);
|
699
|
+
rb_define_method(cCircleCollision, "covers?", circlecollision_covers, 3);
|
700
|
+
rb_define_method(cCircleCollision, "covered?", circlecollision_covered, 3);
|
396
701
|
|
397
702
|
rb_define_method(cCollisions, "collision?", collisions_collision, 2);
|
398
703
|
rb_define_method(cCollisions, "meet?", collisions_meet, 2);
|
399
704
|
rb_define_method(cCollisions, "cover?", collisions_cover, 2);
|
705
|
+
rb_define_method(cCollisions, "covers?", collisions_covers, 2);
|
706
|
+
rb_define_method(cCollisions, "covered?", collisions_covered, 2);
|
400
707
|
rb_define_method(cCollisions, "collision_all?", collisions_collision_all, 2);
|
401
708
|
rb_define_method(cCollisions, "meet_all?", collisions_meet_all, 2);
|
402
709
|
rb_define_method(cCollisions, "cover_all?", collisions_cover_all, 2);
|
710
|
+
rb_define_method(cCollisions, "covers_all?", collisions_covers_all, 2);
|
711
|
+
rb_define_method(cCollisions, "covered_all?", collisions_covered_all, 2);
|
403
712
|
}
|