Processing collisions between digitally represented mobile objects and free form dynamically created electronic ink
AssigneeMicrosoft Corporation
InventorsLachlan J. Orr, Eric B. Fox
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsLachlan J. Orr, Eric B. Fox
Estimating the term…
A computer user enters free-form electronic ink at run-time of an application program for manipulating the trajectories of mobile objects within the application program. Collisions between mobile objects and ink are processed by determining a collision angle that bisects a first and last intersecting point along a periphery of the first object. After the collision, the first object moves away from the ink as if the first object collided with a flat surface oriented perpendicular to the collision angle.
In a computer system, a method of processing a collision involving a first virtual object and a second virtual object, the method comprising:
A computer-readable medium containing computer-executable instructions for processing a collision involving a digitally represented ball and electronic ink, wherein a free form shape of the ink is dynamically defined at run time, the method comprising:
The computer readable medium of 12, wherein causing the ball to move away from the ink after the collision comprises:
The computer readable medium of 9, wherein the free form shape of the ink is dynamically defined at run time based on a user's handwritten ink strokes.
An ink-based computer game comprising:
A computer system including an application program that uses an ink API, which provides services for capturing, storing, and displaying ink entered by a user, the system comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Backward citations are indexed for grants only.
Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game: using determination of…
Video games, i.e. games using an electronically generated display having two or more dimensions: controlling the progress of the video game
Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game: using trajectories of game…
Term end not estimated
The invention relates to allowing a computer user to use free form dynamically created electronic ink to interact with digitally represented mobile objects and relates to various techniques for processing collisions between the mobile objects and the ink.
Computer application programs, such as computer games, screen savers, and the like, may have objects that move around the display screen and interact with other objects within the application program. Computer games in which a ball or other similar moving object moves around and bounces off of walls, paddles, and the like are well known in the art. JezzBall is an example of such a game. FIGS. 1-4 are Jezzball screen shots. JezzBall begins by displaying a game board 100 of tiles 102. The game board initially 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 through 106-4. The two balls 104 move around the screen bouncing off each other and off of the walls 106 according to expected physics principles, such as that the angle of incidence of a collision between a ball and a wall will equal the angle of reflection of the ball as it leaves the wall after the collision. The object of the game is to trap the balls into progressively smaller areas by building horizontal and vertical walls. A person playing JezzBall builds a wall by positioning the cursor and clicking a mouse button. JezzBall builds walls from a central point in opposite vertical or horizontal directions. FIG. 2 shows a vertical wall being built in two wall sections 200-1 and 200-2. FIG. 3 shows a completed version of the wall 300, which was shown being built in FIG. 2.
FIG. 4 shows the balls 104 confined to small areas 400-1 and 400-2. A user interface element 402 indicates the percentage of the game board 100 that has been cleared. Once 75 percent of the game board has been cleared, the player advances to the next game board, which will have more balls than the previous game board.
FIGS. 1-4 show a prior art computer game in which balls bounce off each other and off of flat horizontal and vertical walls.
FIG. 5 shows velocity vectors for a mobile object before and after the mobile object has a conventionally processed collision with a horizontal surface.
FIG. 6 is a schematic diagram of an exemplary operating environment, in the form of a general purpose computer, in which various aspects of the invention can be implemented.
General Purpose Computing Environments
Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules. Generally, program modules include routines, programs, objects, scripts, components, data structures, and the like that perform particular tasks or implement particular abstract data types. The invention provides for a software system that may be implemented on any network infrastructure such that networked devices may be remotely controlled by, for example, a general-purpose computer, or a system whereby the networked devices may share information with and about each other. The invention provides and accepts common command, control, and communication through the network while retaining the ability of each device to operate autonomously. In a distributed computing environment, program modules may be located in both local and remote memory storage devices
FIG. 6 illustrates a schematic diagram of an exemplary conventional general-purpose digital computing environment that can be used to implement various aspects of the invention. In FIG. 6, a computer 600 includes a processing unit 610, a system memory 620, and a system bus 630 that couples various system components including the system memory to the processing unit 610. The system bus 630 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory 620 includes read only memory (ROM) 640 and random access memory (RAM) 650.