(12) United States Patent (10) Patent N0.: US 6,722,987 B2 Orr Et Al
Total Page:16
File Type:pdf, Size:1020Kb
US006722987B2 (12) United States Patent (10) Patent N0.: US 6,722,987 B2 Orr et al. (45) Date of Patent: Apr. 20, 2004 (54) PROCESSING COLLISIONS BETWEEN Derose, Tony et al., Subdivision Surfaces in Character DIGITALLY REPRESENTED MOBILE Animation, Computer Graphics Annual Conference, 1998, OBJECTS AND FREE FORM DYNAMICALLY 85—94, ACM Publishers, NeW York. CREATED ELECTRONIC INK Simeon, T. et al., ToWards a softWare development kit for (75) Inventors: Lachlan J. Orr, Seattle, WA (US); motion synthesis in virtual Worlds, Seventh International Eric B. Fox, Seattle, WA (US) Conference on Virtual Systems and Multimedia, Oct. 25—27, (73) Assignee: Microsoft Corporation, Redmond, WA 2001, 854—863, IEEE Computer Society, Los Alamitos, (Us) California. ( * ) Notice: Subject to any disclaimer, the term of this Policarpo, Fabio et al., Real—Time Collision Detection and patent is extended or adjusted under 35 Response, XIV Brazilian Symposium on Computer Graph U.S.C. 154(b) by 119 days. ics and Image Processing, Oct. 15—18, 2001, 376, IEEE Computer Society, Los Alamitos, California. (21) Appl. No.: 10/123,349 (22) Filed: Apr. 16, 2002 Primary Examiner—Jessica Harrison (65) Prior Publication Data (74) Attorney, Agent, or Firm—Banner & Witcoff, Ltd. US 2003/0195039 A1 Oct. 16, 2003 (57) ABSTRACT (51) Int. Cl.7 ........................ .. A63F 13/00; G06T 15/70 (52) US. Cl. ........................... .. 463/31; 463/9; 345/419; A computer user enters free-form electronic ink at run-time 345/473 of an application program for manipulating the trajectories (58) Field of Search ............................ .. 463/31, 32, 33, 463/30, 3, 9, 1; 345/418, 419, 473, 474, of mobile objects Within the application program. Collisions 442 betWeen mobile objects and ink are processed by determin ing a collision angle that bisects a ?rst and last intersecting (56) References Cited point along a periphery of the ?rst object. After the collision, PUBLICATIONS the ?rst object moves aWay from the ink as if the ?rst object collided With a ?at surface oriented perpendicular to the Freudenberg, Bert et al., Walk—Through Illustrations: Frame—Coherent Pen—and—Ink Style in a Game Engine, collision angle. Eurographics 2001, 2001, C—184—C—191, vol. 2, No. 3, Blackwell Publishers, England. 27 Claims, 14 Drawing Sheets CHECK FOR BALL OFF THE GAME BOARD, BALL-TO-BALL COLLISIONS, AND BALL-TO-TILE COLLISIONS 1700 I CHECK BALL AREA FOR COLLISION WITH INK ‘ 1702 I HAS ANY AREA OF THE BALL COLLIDED WITH INK? > I YES NO DETERMINE WHICH BALL POINTS TO CHECK DONE BASED ON THE BALL‘S TRAJECTORY 1708 1706 I CHECK BALL POINTS FOR INTERSECTION WITH INK ‘ DETERMINE THE COLLISION ANGLE. WHICH BISECTS THE FIRST AND LAST BALL POINTS THAT COLLIDED WITH INK 1712 DETERMINE AN INK SURFACE ORIENTATION THAT IS PERPENDICULAR TO THE COLLISION ANGLE ROTATE THE BALL'S VELOCITY VECTOR AN AMOUNT THAT WOULD MAKE THE INK SURFACE ORIENTATION VERTICAL 1716 NEGATE THE X COMPONENT OF THE BALL'S VELOCITY VECTOR 171B ROTATE THE BALL‘S VELOCITY VECTOR BACK BY THE AMOUNT THAT WOULD MAKE THE INK SURFACE ORIENTATION VERTICAL 1720 U.S. Patent Apr. 20, 2004 Sheet 1 0f 14 US 6,722,987 B2 FIGURE 1- (PRIOR ART) FIGURE 2 (PRIOR ART) U.S. Patent Apr. 20, 2004 Sheet 2 0f 14 US 6,722,987 B2 FIGURE 3 (PRIOR ART) - JezzBall FIGURE 4 (PRIOR ART) U.S. Patent Apr. 20, 2004 Sheet 3 0f 14 US 6,722,987 B2 MOBILE OBJECT MOBILE OBJECT 529 5%) 504 506 502 515 2 i 518 508 L510 512 HORIZONTAL SURFACE i1_4 FIGURE 5 (PRIOR ART) U.S. Patent Apr. 20, 2004 Sheet 4 0f 14 US 6,722,987 B2 U.S. Patent Apr. 20, 2004 Sheet 5 0f 14 US 6,722,987 B2 ('—\\ 7 705 / %2 701/’ \ / 703 FIGURE 7 U.S. Patent Apr. 20, 2004 Sheet 6 0f 14 US 6,722,987 B2 W... F 800 Fri?!‘ FE ‘I 4 804 FIGURE 8 U.S. Patent Apr. 20, 2004 Sheet 7 0f 14 US 6,722,987 B2 FIGURE 9 U.S. Patent Apr. 20, 2004 Sheet 8 0f 14 US 6,722,987 B2 _ Z, inkBall 'z 2.}.1. mm 4 @I-‘EULJHQUQQQQ?fEUL-M i I FIGURE 10 U.S. Patent Apr. 20, 2004 Sheet 9 0f 14 US 6,722,987 B2 WEED}=UULQELJLJMBELJ;1i, FIGURE 11 U.S. Patent Apr. 20, 2004 Sheet 10 0f 14 US 6,722,987 B2 APPLICATION PROGRAM 1200 COLLISION PROCESSING MODULE V 1202 A TILE TYPES l ‘ BALLS ' 1204 ‘ ' 1206 BOARD MANAGER 1208 UI COMPONENTS 1210 INK API 1212 INPUT DEVICES 1214 FIGURE 12 U.S. Patent Apr. 20, 2004 Sheet 11 0f 14 US 6,722,987 B2 1300-7 1300-6 1300-5 1308 \ FIGURE 13 1408 1300-7 FIGURE 14 U.S. Patent Apr. 20, 2004 Sheet 12 0f 14 US 6,722,987 B2 LOAD USER SETTINGS 1500 LOAD BOARD BASED ON DIFFICULTY LEVEL 1502 DISPLAY BOARD AND BEGIN GAME LOOP 1504 < BOARD COMPLETED?1506 >YES A NO V BOARD COMPLETION FAILURE? ‘NO 1508 I YES + DISPLAY BOARD COMPLETION FAILURE MESSAGE BOX 1510 BOARD COMPLETION FAILURE MESSAGE CLEARED? YES—— 1512 FIGURE 15 U.S. Patent Apr. 20, 2004 Sheet 13 0f 14 US 6,722,987 B2 GET T1ME SINCE LAST LOOP INTERATION 1600 UPDATE UPDATABLE OBJECTS 1602 CHECK FOR COLLISIONS 1604 DISPLAY MODIFIED PORTIONS OF THE GAME BOARD 1606 FIGURE 16 U.S. Patent Apr. 20, 2004 Sheet 14 0f 14 US 6,722,987 B2 CHECK FOR BALL OFF THE GAME BOARD, BALL-TO-BALL COLLISIONS, AND BALL-TO-TILE COLLISIONS 1700 CHECK BALL AREA FOR COLLISION WITH INK 1702 HAS ANY AREA OF THE BALL COLLIDED WITH INK? 1704 I YES NO I DETERMINE WHICH BALL POINTS TO CHECK BASED ON THE BALL'S TRAJECTORY 1706 CHECK BALL POINTS FOR INTERSECTION WITH INK 1710 DETERMINE THE COLLISION ANGLE, WHICH BISECTS THE FIRST AND LAST BALL POINTS THAT COLLIDED WITH INK 1712 DETERMINE AN INK SURFACE ORIENTATION THAT IS PERPENDICULAR TO THE COLLISION ANGLE 1714 ROTATE THE BALL'S VELOCITY VECTOR AN AMOUNT THAT WOULD MAKE THE INK SURFACE ORIENTATION VERTICAL 1716 NEGATE THE X COMPONENT OF THE BALL'S VELOCITY VECTOR 1718 I ROTATE THE BALL'S VELOCITY VECTOR BACK BY THE AMOUNT THAT WOULD MAKE THE INK SURFACE ORIENTATION VERTICAL 1720 FIGURE 17 US 6,722,987 B2 1 2 PROCESSING COLLISIONS BETWEEN a ball) before and after, respectively, a collision With a ?at DIGITALLY REPRESENTED MOBILE horiZontal surface 514 (e.g., a Wall). The angle 516 of OBJECTS AND FREE FORM DYNAMICALLY velocity vector 504 relative to the velocity vector’s vertical CREATED ELECTRONIC INK or y-coordinate component 502, before the collision, is equal to the angle 518 of velocity vector 506 after the collision. The mobile object’s velocity vector may be changed from FIELD OF THE INVENTION 504, before the collision, to 506, after the collision, by The invention relates to allowing a computer user to use negating the y component 502 of the mobile object’s veloc free form dynamically created electronic ink to interact With ity vector 504. The mobile object’s post-collision velocity digitally represented mobile objects and relates to various vector 506, Will then have an X component, 512 that is the techniques for processing collisions betWeen the mobile same as the X component value 510 of pre-collision velocity objects and the ink. vector 504, but a y component value 508 that is the inverse of the pre-collision y-component vector 502. Techniques for BACKGROUND OF THE INVENTION processing other types collisions, such as collisions With ?at 15 vertical surfaces, and collisions With circular shapes are also Computer application programs, such as computer games, Well knoWn in the art. screen savers, and the like, may have objects that move Processing collisions betWeen an application program’s around the display screen and interact With other objects mobile objects and free form electronic ink is more com Within the application program. Computer games in Which a plicated than processing collisions for Which the shapes and ball or other similar moving object moves around and orientations are knoWn at development time of the applica bounces off of Walls, paddles, and the like are Well knoWn tion program. Accordingly, relatively simple and ef?cient in the art. JeZZBall is an eXample of such a game. FIGS. 1—4 techniques for processing collisions betWeen an application are JeZZball screen shots. JeZZBall begins by displaying a program’s mobile object and free form electronic ink Would game board 100 of tiles 102. The game board initially be desirable. represents a large area in Which balls 104-1 and 104-2 bounce around off of each other and off of the Walls 106-1 25 BRIEF SUMMARY OF THE INVENTION through 106-4. The tWo balls 104 move around the screen In accordance With the invention, a collision betWeen a bouncing off each other and off of the Walls 106 according digitally represented mobile object and free form electronic to eXpected physics principles, such as that the angle of ink is processed simply and ef?ciently. A collision angle is incidence of a collision betWeen a ball and a Wall Will equal determined. The collision angle may bisect a ?rst and last the angle of re?ection of the ball as it leaves the Wall after intersecting point along a periphery of the mobile object. the collision. The object of the game is to trap the balls into The mobile object’s trajectory is then changed is such that progressively smaller areas by building horiZontal and ver the mobile object moves aWay from the ink as if the mobile tical Walls.