U.S. patent application number 12/068056 was filed with the patent office on 2008-12-04 for storage medium storing puzzle game program, puzzle game apparatus, and puzzle game controlling method.
This patent application is currently assigned to Nintendo Co., Ltd.. Invention is credited to Giles Goddard, Mari Shirakawa.
Application Number | 20080300033 12/068056 |
Document ID | / |
Family ID | 40088926 |
Filed Date | 2008-12-04 |
United States Patent
Application |
20080300033 |
Kind Code |
A1 |
Shirakawa; Mari ; et
al. |
December 4, 2008 |
Storage medium storing puzzle game program, puzzle game apparatus,
and puzzle game controlling method
Abstract
A game apparatus includes a first LCD and a second LCD, and on
the second LCD, a touch panel is set. On the first LCD and the
second LCD, game screens each including gear objects provided with
a socket object are displayed. When a player makes a touch
operation, the gear object on the game screen displayed on the
second LCD is rotated in response thereto, one or more gear objects
on the game screen displayed on the first LCD is accordingly
rotated. At that time, a ball object held in the socket object of
the gear object moves to other gear object. When each of the ball
objects are accepted (held) in the socket object of the gear
objects each applied with the same color as that of the ball
objects, the puzzle game is cleared.
Inventors: |
Shirakawa; Mari; (Kyoto,
JP) ; Goddard; Giles; (Kyoto, JP) |
Correspondence
Address: |
NIXON & VANDERHYE, P.C.
901 NORTH GLEBE ROAD, 11TH FLOOR
ARLINGTON
VA
22203
US
|
Assignee: |
Nintendo Co., Ltd.,
Kyoto
JP
VITEI INC.,
Kyoto
JP
|
Family ID: |
40088926 |
Appl. No.: |
12/068056 |
Filed: |
February 1, 2008 |
Current U.S.
Class: |
463/9 ; 463/31;
463/37; 463/43 |
Current CPC
Class: |
A63F 13/2145 20140902;
A63F 2300/1075 20130101; A63F 13/56 20140902; A63F 13/26 20140902;
A63F 13/00 20130101; A63F 2300/64 20130101; A63F 9/0612
20130101 |
Class at
Publication: |
463/9 ; 463/31;
463/37; 463/43 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Foreign Application Data
Date |
Code |
Application Number |
May 29, 2007 |
JP |
2007-141936 |
Claims
1. A storage medium storing a puzzle game program of a puzzle game
apparatus having a storing means, a display means and an operating
means, wherein said puzzle game program causes a computer of said
puzzle game apparatus to execute: a game image displaying step for
arranging a plurality of rotating objects each being provided with
at least one acceptor unit by using image data stored in said
storing means, and displaying a game image in which at least one
moving object is accepted in any one of acceptor units on said
display means; a rotation processing step for rotating said
rotating object according to operation data input from said
operating means in response to an operation by a player; a relation
determining step for determining whether or not a first accepting
unit in which said moving object is accepted and a second accepting
unit provided in other rotating object being different from the
rotating object provided with said first accepting unit have a
predetermined relationship as a result of the rotation of said
rotating object by said rotation processing step; and a movement
processing step for updating said game image such that said moving
object moves from said first accepting unit to said second
accepting unit when it is determined that the predetermined
relationship is satisfied by said relation determining step.
2. A storage medium storing a puzzle game program according to
claim 1, wherein said storing means is set with an attribute of
each of said moving object and said rotating object, said puzzle
game program causes said computer to further execute an attribute
determining step for determining whether or not the attribute of
said moving object and the attribute of the rotating object in
which said moving object is accepted are coincident, and a game
processing step for changing a progress of the game when it is
determined that they are coincident with each other by said
attribute determining step.
3. A storage medium storing a puzzle game program according to
claim 1, wherein said rotating object includes a first rotating
object permitting an operation by said player and a second rotating
object not permitting an operation by said player, and said
rotation processing step rotates said second rotating object on the
basis of the rotation of said first rotating object when said first
rotating object is rotated according to the operation data input
from said operating means in response to the operation by said
player.
4. A storage medium storing a puzzle game program according to
claim 2, wherein said rotating object includes a first rotating
object permitting an operation by said player and a second rotating
object not permitting an operation by said player, and said
rotation processing step rotates said second rotating object on the
basis of the rotation of said first rotating object when said first
rotating object is rotated according to the operation data input
from said operating means in response to the operation by said
player.
5. A storage medium storing a puzzle game program according to
claim 3, wherein said rotating object includes said plurality of
first rotating objects and said plurality of second rotating
objects, and said rotation processing step rotates one or said
plurality of second rotating objects on the basis of the rotation
of at least one of said first rotating object.
6. A storage medium storing a puzzle game program according to
claim 4, wherein said rotating object includes said plurality of
first rotating objects and said plurality of second rotating
objects, and said rotation processing step rotates one or said
plurality of second rotating objects on the basis of the rotation
of said at least one of said first rotating objects.
7. A storage medium storing a puzzle game program according to
claim 1, wherein said puzzle game program causes said computer to
further execute an angle calculating step for calculating a first
angle of said first accepting unit with respect to a reference
position set to said rotating object and a second angle of said
second accepting unit with respect to the reference position set to
said other rotating object as a result of the rotation of said
rotating object by said rotation processing step, said relation
determining step determines whether or not a difference between
said first angle and said second angle is within a predetermined
range, and said movement processing step updates said game image
such that said moving object moves from said first accepting unit
to said second accepting unit by updating positional data of said
moving object stored in said storing means when it is determined
that said difference is within the predetermined range by said
relation determining step.
8. A storage medium storing a puzzle game program according to
claim 1, wherein said puzzle game program causes said computer to
further execute a position detecting step for detecting a position
on a screen instructed by the operation from the player according
to the operation data input by said operating means, and a position
determining step for determining whether or not the position
detected by said position detecting step instructs said rotating
object, and said rotation processing step rotates said rotating
object on the basis of a change of position per a predetermined
time when it is determined that said rotating object is instructed
by said position determining step.
9. A puzzle game apparatus comprising: a game image displaying
means for arranging a plurality of rotating objects each being
provided with at least one acceptor unit, and displaying a game
image in which at least one moving object is accepted in any one of
acceptor units on said display means; a rotation processing means
for rotating said rotating object in response to an operation by a
player; a relation determining means for determining whether or not
a first accepting unit in which said moving object is accepted and
a second accepting unit provided in other rotating object being
different from the rotating object provided with said first
accepting unit have a predetermined relationship as a result of the
rotation of said rotating object by said rotation processing means;
and a movement processing means for moving said moving object to
said second accepting unit when it is determined by said relation
determining means that the predetermined relationship is
satisfied.
10. A puzzle game controlling method of a puzzle game apparatus
including following steps of: (a) arranging a plurality of rotating
objects each being provided with at least one acceptor unit, and
displaying a game image in which at least one moving object is
accepted in any one of acceptor units on said display means, (b)
rotating said rotating object in response to an operation by a
player, (c) determining whether or not a first accepting unit in
which said moving object is accepted and a second accepting unit
provided in other rotating object being different from the rotating
object provided with said first accepting unit have a predetermined
relationship as a result of the rotation of said rotating object by
said step (b), and (d) moving said moving object to said second
accepting unit when it is determined that the predetermined
relationship is satisfied by said step (c).
Description
CROSS REFERENCE OF RELATED APPLICATION
[0001] The disclosure of Japanese Patent Application No.
2007-141936 is incorporated herein by reference.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The invention relates to a storage medium storing a puzzle
game program, a puzzle game apparatus and a puzzle game controlling
method. More specifically, the present invention relates to a
storage medium storing a puzzle game program, a puzzle game
apparatus and a puzzle game controlling method that are for playing
a puzzle game.
[0004] 2. Description of the Related Art
[0005] An example of this kind of the related art is disclosed in
Japanese Patent Application Laid-Open No. 2002-301265 [A63F 13/00]
laid-open on Oct. 15, 2002. In the puzzle game, for example, out of
the plurality of balls displayed on a display screen, regarding an
arbitrary ball as a center, balls surrounding the ball are
rotatively moved. In this puzzle game, a plurality of balls having
various attributes are regularly displayed at lattice pattern of a
plurality of regular triangles on the display screen. Then, if on
the basis of the coordinates of the center selected by an operation
with the controller and the radius therefrom, a plurality of
relevant balls are present, attributes of balls forming a shape as
a minimum unit are changed to the attribute the same as that of the
ball as the center, and if a ball is surrounded by balls having the
same attribute, the attribute of the surrounded ball is changed to
the attribute of the surrounding balls.
[0006] Furthermore, another example of this kind of the related art
is disclosed in the site of the Internet
(http://www.nintendo.co.jp/n08/bit_g/index.html "DIALHEX"). In the
puzzle game of the other example, triangle objects having different
colors fall at random from above of the game screen, and arranged
on the game space. The player makes a hexagon using triangle
objects having the same color by moving and rotating a hexagonal
dial. Then, the hexagon disappears from the game screen. That is,
the six triangle objects comprising the hexagon are erased from the
game space.
[0007] However, in the former puzzle game, by regarding a certain
ball as a center, balls surrounding the ball are merely rotatively
moved, and therefore, the game is short of the degree of freedom of
the movements of the balls, simple and predictable. Thus, there is
a problem that the player is tired of the game. Similarly, in the
latter puzzle game, the plurality of triangle objects surrounded by
the dial are merely rotated, and therefore, there is a problem that
the player is tired of the game.
SUMMARY OF THE INVENTION
[0008] Therefore, it is a primary object of the present invention
to provide a novel storage medium storing a puzzle game program,
puzzle game apparatus, and puzzle game controlling method.
[0009] Another object of the present invention is to provide a
storage medium storing a puzzle game program, a puzzle game
apparatus and a puzzle game controlling method capable of playing
an innovative puzzle game.
[0010] The present invention employs following features in order to
solve the above-described problems. It should be noted that
reference numerals inside the parentheses and supplements show one
example of a corresponding relationship with the embodiments
described later for easy understanding of the present invention,
and does not limit the present invention.
[0011] A first invention is a storage medium storing a puzzle game
program of a puzzle game apparatus comprising a storing means, a
display means and an operating means, and the puzzle game program
causes a computer of the puzzle game apparatus to execute a game
image displaying step, a rotation processing step, a relation
determining step, and a movement processing step. The game image
displaying step arranges a plurality of rotating objects each being
provided with at least one acceptor unit by using image data stored
in the storing means, and displays a game image in which at least
one moving object is accepted in any one of acceptor units on said
display means. The rotation processing step rotates the rotating
object according to operation data input from the operating means
in response to an operation by a player. The relation determining
step determines whether or not a first accepting unit in which the
moving object is accepted and a second accepting unit provided in
other rotating object being different from the rotating object
provided with the first accepting unit have a predetermined
relationship as a result of the rotation of the rotating object by
the rotation processing step. The movement processing step updates
the game image such that the moving object moves from the first
accepting unit to the second accepting unit when it is determined
that the predetermined relationship is satisfied by the relation
determining step.
[0012] In the first invention, a puzzle game apparatus (10)
comprises a storing means (28, 42), a display means (12, 14) and an
operating means (22, 24). The puzzle game program causes a computer
of the puzzle game apparatus to execute a game image displaying
step (34, S3, S53, S123), a rotation processing step (34, S7), a
relation determining step (34, S9), and a movement processing step
(34, S11). The game image displaying step arranges a plurality of
rotating objects each being provided with at least one acceptor
unit by using image data stored in the storing means, and displays
a game image (300, 320) in which at least one moving object is
accepted in any one of acceptor units on the display means. The
rotation processing step rotates the rotating object (302, 304,
306, 322, 324, 326) according to operation data input from the
operating means in response to an operation by a player. For
example, when the player makes a sliding operation on a rotating
object, the rotating object is rotated according to the sliding
operation. The relation determining step determines whether or not
a first accepting unit (302a, 302b, 304a, 304b, 306a, 306b, 322a,
322b, 324a, 324b, 326a, 326b) in which the moving object (312a,
312b, 314a, 314b, 316a, 316b) is accepted and a second accepting
unit (302a, 302b, 304a, 304b, 306a, 306b, 322a, 322b, 324a, 324b,
326a, 326b) provided in other rotating object being different from
the rotating object provided with the first accepting unit have a
predetermined relationship as a result of the rotation of the
rotating object by the rotation processing step. For example, it is
determined whether or not the first accepting unit and the second
accepting unit to which a setting (connection setting) of making
the moving object movable is set are arranged in a straight line or
approximate straight line. Then, the movement processing step
updates the game image such that the moving object moves from the
first accepting unit to the second accepting unit when it is
determined that the predetermined relationship is satisfied by the
relation determining step by updating the position data of the
moving object stored in the storing means.
[0013] According to the first invention, by rotating the plurality
of rotating objects each having an acceptor unit, a moving object
accepted in an acceptor unit of a certain rotating object is moved
to an acceptor unit of other rotating object, and therefore, it is
possible to provide an innovative puzzle game.
[0014] A second invention is dependent on the first invention, and
the storing means is set with an attribute of each of the moving
object and the rotating object, the puzzle game program causes the
computer to further execute an attribute determining step for
determining whether or not the attribute of the moving object and
the attribute of the rotating object in which the moving object is
accepted are coincident, and a game processing step for changing a
progress of the game when it is determined that they are coincident
with each other by the attribute determining step.
[0015] In the second invention, in the storing means, attributes
(color, for example) of each of the moving object and the rotating
object are set (stored). The puzzle game program causes a computer
to further execute an attribute determining step (34, S13) and a
game processing step (34, S15). The attribute determining step
determines whether or not the attribute of the moving object and
the attribute of the rotating object in which the moving object is
accepted are coincident. The game processing step changes a
progress of the game when it is determined that they are coincident
with each other by the attribute determining step. For example,
when the attributes of all the moving objects and the attributes of
the rotating objects in which the moving objects are accepted are
coincident, it is determined that the puzzle is solved (the game is
cleared).
[0016] According to the second invention, the player is requested
to strategically rotate a rotating object such that a moving object
is accepted in the rotating object having an attribute the same as
that of the moving object, capable of providing a more interesting
puzzle game.
[0017] A third invention is dependent on the first or the second
invention, and the rotating object includes a first rotating object
permitting an operation by the player and a second rotating object
not permitting an operation by the player, and the rotation
processing step rotates the second rotating object on the basis of
the rotation of the first rotating object when the first rotating
object is rotated according to the operation data input from the
operating means in response to the operation by the player.
[0018] In the third invention, the rotating object includes a first
rotating object (322, 324, 326) permitting an operation by the
player and a second rotating object (302, 304, 306) not permitting
an operation by the player. The rotation processing step rotates
the second rotating object on the basis of the rotation of the
first rotating object when the first rotating object is rotated
according to the operation data input from the operating means in
response to the operation by the player. For example, when the
first rotating object is rotated, the second rotating object is
rotated in the same direction and by the same rotation amount
(angle) corresponding thereto. However, the rotation direction of
the second rotating object may be reversed, and the rotation amount
may be less or more than the rotation amount of the first rotating
object.
[0019] According to the third invention, other corresponding
rotating object is also rotated in conjunction with the rotating
object rotated by the player's operation, and therefore, it is
possible to provide a puzzle game with a high strategic
characteristic.
[0020] A fourth invention is dependent on the third invention, and
the rotating object includes the plurality of first rotating
objects and the plurality of second rotating objects, and the
rotation processing step rotates one or the plurality of second
rotating objects on the basis of the rotation of at least one of
the first rotating object.
[0021] In the fourth invention, the rotating object includes the
plurality of first rotating objects and the plurality of second
rotating objects. The rotation processing step rotates one or the
plurality of second rotating objects on the basis of the rotation
of at least one of the first rotating object. That is, two or more
second rotating objects are rotated in conjunction with one first
rotating object. In this case, if the number of first rotating
objects and the number of second rotating objects are the same, a
second object not being operatively connected with the first
rotating object may be present.
[0022] According to the fourth invention, similar to the third
invention, it is possible to provide the puzzle game superior in
strategic characteristics.
[0023] A fifth invention is dependent on any one of the first to
fourth inventions, and the puzzle game program causes the computer
to further execute an angle calculating step for calculating a
first angle of the first accepting unit with respect to a reference
position set to the rotating object and a second angle of the
second accepting unit with respect to the reference position set to
the other rotating object as a result of the rotation of the
rotating object by the rotation processing step, the relation
determining step determines whether or not a difference between the
first angle and the second angle is within a predetermined range,
and the movement processing step updates the game image such that
the moving object moves from the first accepting unit to the second
accepting unit by updating positional data of the moving object
stored in the storing means when it is determined that the
difference is within the predetermined range by the relation
determining step.
[0024] In the fifth invention, the puzzle game program causes a
computer to further execute an angle calculating step (34, S81).
The angle calculating step calculates a first angle of the first
accepting unit with respect to a reference position set to the
rotating object and a second angle of the second accepting unit
with respect to the reference position set to the other rotating
object as a result of the rotation of the rotating object by the
rotation processing step. The relation determining step determines
whether or not a difference between the first angle and the second
angle is within a predetermined range. Here, in this embodiment,
disk-shape rotating objects are arranged, and the reference
positions of all the rotating objects are set to the same position,
and the predetermined relationship means that the first accepting
unit and the second accepting unit are arranged in a straight line
or an approximate straight line. Thus, a determination whether an
angle obtained by subtracting 180.degree. angle from the difference
between the first angle and the second angle is within the
predetermined range is made. The movement processing step updates
the game image such that the moving object moves from the first
accepting unit to the second accepting unit by updating the
positional data of the moving object stored in the storing means
when it is determined that the difference is within the
predetermined range by the relation determining step.
[0025] According to the fifth invention, since whether or not the
respective acceptor units of the two rotating objects satisfy the
predetermined relationship is determined on the basis of the
angular difference between the two acceptor units, it is possible
to make the determination with simple processing.
[0026] A sixth invention is dependent on any one of the first to
fifth inventions, and the puzzle game program causes the computer
to further execute a position detecting step for detecting a
position on a screen instructed by the operation from the player
according to the operation data input by the operating means, and a
position determining step for determining whether or not the
position detected by the position detecting step instructs the
rotating object, and the rotation processing step rotates the
rotating object on the basis of a change of position per a
predetermined time when it is determined that the rotating object
is instructed by the position determining step.
[0027] In the sixth invention, the puzzle game program causes the
computer to further execute a position detecting step (34, S33,
S35) and a position determining step (34, S37). The position
detecting step detects a position on a screen instructed by the
operation from the player according to the operation data input by
the operating means. The position determining step determines
whether or not the position detected by the position detecting step
instructs the rotating object. The rotation processing step rotates
the rotating object on the basis of a change of position per a
predetermined time when it is determined that the rotating object
is instructed by the position determining step.
[0028] According to the sixth invention, since the rotating object
is rotated according to the position on the screen instructed by a
player's operation, it is possible to realize an intuitive
operation. Thus, it is possible to improve operability of the game
apparatus.
[0029] A seventh invention is a puzzle game apparatus comprising a
game image displaying means, a rotation processing means, a
relation determining means, and a movement processing means. The
game image displaying means arranges a plurality of rotating
objects each being provided with at least one acceptor unit, and
displays a game image in which at least one moving object is
accepted in any one of acceptor units on the display means. The
rotation processing means rotates the rotating object in response
to an operation by a player. The relation determining means
determines whether or not a first accepting unit in which the
moving object is accepted and a second accepting unit provided in
other rotating object being different from the rotating object
provided with the first accepting unit have a predetermined
relationship as a result of the rotation of the rotating object by
the rotation processing means. The movement processing means moves
the moving object to the second accepting unit when it is
determined that the predetermined relationship is satisfied by the
relation determining means.
[0030] In also the seventh invention, similar to the first
invention, it is possible to provide an innovative puzzle game.
[0031] An eighth invention is a puzzle game controlling method of a
puzzle game apparatus and includes following steps of: (a)
arranging a plurality of rotating objects each being provided with
at least one acceptor unit, and displaying a game image in which at
least one moving object is accepted in any one of acceptor units on
the display means, (b) rotating the rotating object in response to
an operation by a player, (c) determining whether or not a first
accepting unit in which the moving object is accepted and a second
accepting unit provided in other rotating object being different
from the rotating object provided with the first accepting unit
have a predetermined relationship as a result of the rotation of
the rotating object by the step (b), and (d) moving the moving
object to the second accepting unit when it is determined that the
predetermined relationship is satisfied by the step (c).
[0032] In also the eighth invention, similar to the first
invention, it is possible to provide an innovative puzzle game.
[0033] The above described objects and other objects, features,
aspects and advantages of the present invention will become more
apparent from the following detailed description of the present
invention when taken in conjunction with the accompanying
drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0034] FIG. 1 is an illustrative view showing one embodiment of a
game apparatus of the present invention;
[0035] FIG. 2 is a block diagram showing an electric configuration
of the game apparatus shown in FIG. 1;
[0036] FIG. 3 is an illustrative view showing one example of game
screens to be displayed on a first LCD and a second LCD of the game
apparatus shown in FIG. 1;
[0037] FIG. 4 is an illustrative view showing another example of
the game screen to be displayed on the second LCD of the game
apparatus shown in FIG. 1;
[0038] FIG. 5 is an illustrative view showing a still another
example of the game screens to be displayed on the first LCD and
the second LCD of the game apparatus shown in FIG. 1;
[0039] FIG. 6 is an illustrative view explaining a calculation
method of a rotation amount of a gear object displayed on the game
screen according to the rotation by a player's operation;
[0040] FIG. 7 is an illustrative view explaining angle offset
values of a ball object held in a socket object provided in a gear
object and an invisible socket object correspondingly provided in
the gear object the socket object;
[0041] FIG. 8 is an illustrative view showing a layer of invisible
gear objects each provided to the game screen displayed on the
first LCD and the second LCD of the game apparatus shown in FIG.
1;
[0042] FIG. 9 is an illustrative view for explaining the presence
or absence of a connection setting between the gear objects;
[0043] FIG. 10 is an illustrative view for explaining a connected
state of the socket objects provided to the two adjacent gear
objects;
[0044] FIG. 11 is an illustrative view explaining a position of a
ball object and a position of an invisible socket object provided
to a gear object adjacent to the gear object holding the ball
object when the ball object moves between the socket objects which
are in a connected state;
[0045] FIG. 12 is an illustrative view showing one example of a
memory map of a RAM shown in FIG. 2;
[0046] FIG. 13 is an illustrative view showing a detailed content
of a gear object data memory area provided in the data memory area
shown in FIG. 12;
[0047] FIG. 14 is an illustrative view showing a detailed content
of a ball object data memory area provided in the data memory area
shown in FIG. 12;
[0048] FIG. 15 is an illustrative view showing a detailed content
of an invisible gear object data memory area provided in the data
memory area shown in FIG. 12;
[0049] FIG. 16 is a flowchart showing game entire processing of the
CPU core shown in FIG. 2;
[0050] FIG. 17 is a flowchart showing gear object rotating
processing of the CPU core shown in FIG. 2;
[0051] FIG. 18 is a flowchart showing a part of socket connection
determining processing of the CPU core shown in FIG. 2;
[0052] FIG. 19 is another part of the socket connection determining
processing of the CPU core shown in FIG. 2, and continuing from
FIG. 18;
[0053] FIG. 20 is a flowchart showing a part of ball moving
processing of the CPU core shown in FIG. 2; and
[0054] FIG. 21 is a flowchart showing another part of the ball
moving processing of the CPU core shown in FIG. 2, and continuing
from FIG. 20.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0055] Referring to FIG. 1, a game apparatus 10 according to an
embodiment of the present invention stores a puzzle game program to
thereby function as a puzzle game apparatus as described later. The
game apparatus 10 includes a first liquid crystal display (LCD) 12
and a second LCD 14. The LCD 12 and the LCD 14 are provided on a
housing 16 so as to be arranged in a predetermined position. In
this embodiment, the housing 16 comprises an upper housing 16a and
a lower housing 16b, and the LCD 12 is provided on the upper
housing 16a while the LCD 14 is provided on the lower housing 16b.
Accordingly, the LCD 12 and the LCD 14 are closely arranged so as
to be longitudinally (vertically) parallel with each other.
[0056] In addition, although an LCD is utilized as a display in
this embodiment, an EL (Electronic Luminescence) display, a
plasmatic display, etc. may be used in place of the LCD.
[0057] As can be understood from FIG. 1, the upper housing 16a has
a plane shape little larger than a plane shape of the LCD 12, and
has an opening formed so as to expose a display surface of the LCD
12 from one main surface thereof. On the other hand, the lower
housing 16b has a plane shape being approximately the same as the
upper housing 16a, and has an opening formed so as to expose a
display surface of the LCD 14 at an approximately center of the
horizontal direction. On the left side of the LCD 14 of the lower
housing 16b, a power switch 18 is provided.
[0058] Furthermore, the upper housing 16a is provided with sound
release holes 20a and 20b on both sides of the LCD 12 for speakers
36a and 36b (FIG. 2). The lower housing 16b is provided with a
microphone hole 20c for a microphone (not illustrated) and
operating switches 22 (22a, 22b, 22c, 22d, 22e, 22L and 22R).
[0059] In addition, the upper housing 16a and the lower housing 16b
are rotatably connected at a lower side (lower edge) of the upper
housing 16a and a part of an upper side (upper edge) of the lower
housing 16b. Accordingly, in a case of not playing a game, for
example, if the upper housing 16a is rotatably folded such that the
display surface of the LCD 12 and the display surface of the LCD 14
are face to face with each other, it is possible to prevent the
display surface of the LCD 12 and the display surface of the LCD 14
from being damaged such as a flaw, etc. It should be noted that the
upper housing 16a and the lower housing 16b are not necessarily
rotatably connected with each other, and may alternatively be
provided integrally (fixedly) to form the housing 16.
[0060] The operating switch 22 includes a direction instructing
switch (cross switch) 22a, a start switch 22b, a select switch 22c,
an action switch (A button) 22d, an action switch (B button) 22e,
an action switch (X button) 22f, an action switch (Y button) 22g,
an action switch (L button) 22L, and an action switch (R button)
22R. The switch 22a is arranged at the left of the LCD 14 on one
surface of the lower housing 16b. Other switches 22b-22g are
arranged at the right of the LCD 14 on the one surface of the lower
housing 16b. In addition, the switch 22L and the switch 22R are
arranged at the right and left corners sandwiching the connected
portion with the upper housing 16a on the upper side surface of the
lower housing 16b.
[0061] The direction instructing switch 22a functions as a digital
joystick, and is utilized for instructing a moving direction of a
player character (or player object) to be operated by a user or a
player and for instructing a moving direction of a cursor, and so
forth by operating any one of four depression portions. Also, a
specific role can be assigned to each of the four depression
portions, and by operating any one of the four depression portions,
it is possible to instruct (designate) the assigned role.
[0062] The start switch 22b is formed by a push button, and is
utilized for starting (restarting), temporarily stopping (pausing)
a game, and so forth. The select switch 22c is formed by the push
button, and utilized for a game mode selection, etc.
[0063] The action switch 22d, that is, the A button is formed by
the push button, and allows the player character to perform an
arbitrary action, except for instructing the direction, such as
hitting (punching), throwing, holding (obtaining), riding, jumping,
etc. For example, in an action game, it is possible to apply an
instruction of jumping, punching, moving arms, etc. In a
role-playing game (RPG) and a simulation RPG, it is possible to
apply an instruction of obtaining an item, selecting and
determining arms or command, etc. The action switch 22e, that is,
the B button is formed by the push button, and is utilized for
changing a game mode selected by the select switch 22c, canceling
an action determined by the A button 22d, and so forth.
[0064] The action switch 22f, that is, the X button and the action
switch 22g, that is, the Y button are formed by the push buttons,
and are utilized for a subsidiary operation when the game cannot be
advanced only with the A button 22d and the B button 22e. It should
be noted that the X button 22f and the Y button 22g can be used for
the similar operation to the A button 22d and B button 22e. Of
course, the X button 22f and the Y button 22g are not necessarily
utilized in the game play.
[0065] The action switch (left depression button) 22L and the
action switch (right depression button) 22R are formed by the push
button, and the left depression button (L button) 22L and the right
depression button (R button) 22R can perform the same operation as
the A button 22d and the B button 22e, and also function as a
subsidiary of the A button 22d and the B button 22e. In addition,
the L button 22L and the R button 22R can change the roles assigned
to the direction switch 22a, the A button 22d, the B button 22e,
the X button 22f, and the Y button 22g to other roles.
[0066] Also, on a top surface of the LCD 14, a touch panel 24 is
provided. As the touch panel 24, any one of kinds of a resistance
film system, an optical system (infrared rays system) and an
electrostatic capacitive coupling system, for example, can be
utilized. In response to an operation (touch operation) by
depressing, stroking, touching, and so forth with a stick 26, a pen
(stylus pen), or a finger (hereinafter, referred to as "stick 26,
etc.") on a top surface of the touch panel 24, the touch panel 24
detects coordinates of an operated position of the stick 26, etc.
(that is, touched) to output coordinates data corresponding to the
detected coordinates.
[0067] It should be noted that in this embodiment, a resolution of
the display surface of the LCD 14 (the same is true for the LCD 12)
is 256 dots.times.192 dots, and a detection accuracy of the touch
panel 24 is also rendered 256 dots.times.192 dots in correspondence
to the resolution of the display surface. However, the detection
accuracy of the touch panel 24 may be lower than the resolution of
the display surface, or higher than it.
[0068] Different game screens may be displayed on the LCD 12 and
the LCD 14. For example, in a racing game, a screen viewed from a
driving seat is displayed on the one LCD, and a screen of entire
race (course) may be displayed on the other LCD. Furthermore, in
the RPG, characters such as a map, a player character, etc. are
displayed on the one LCD, and items belonging to the player
character may be displayed on the other LCD. Additionally, a game
play screen may be displayed on the one LCD (LCD 14 in this
embodiment), and a game screen including information relating to
the game (score, level, etc.) can be displayed on the other LCD
(LCD 12 in this embodiment). Furthermore, by utilizing the two LCD
12 and LCD 14 as one screen, it is possible to display a large
monster (enemy character) to be defeated by the player
character.
[0069] Accordingly, the player is able to point (operate) an image
such as a player character, an enemy character, an item character,
an operating object, etc. to be displayed on the screen of the LCD
14 and select (input) commands by operating the touch panel 24 with
the use of the stick 26, etc. Also, it is possible to change the
direction of a virtual camera (viewpoint) (direction of the line of
sight) provided in the three-dimensional game space, and instruct a
scrolling (gradual moving display) direction of the game screen
(map).
[0070] It should be noted that depending on the kind of the game,
other input instructions can be made with the use of the touch
panel 24. For example, it is possible to input a coordinates input
instruction, and input texts, numbers, symbols, etc. on the LCD
14.
[0071] Thus, the game apparatus 10 has the LCD 12 and the LCD 14 as
a display portion of two screens, and by providing the touch panel
24 on an upper surface of any one of them (LCD 14 in this
embodiment), the game apparatus 10 has the two screens (12, 14) and
the operating portions (22, 24) of two systems.
[0072] In addition, in this embodiment, the stick 26 can be housed
in the housing portion (shown by dotted lines in FIG. 1) provided
on the lower housing 16b, for example, and taken out as necessary.
It should be noted that if the stick 26 is not provided, the
housing portion also need not to be provided.
[0073] Also, the game apparatus 10 includes a memory card (or
cartridge) 28. The memory card 28 is detachable, and inserted into
a loading slot 30 (shown by dotted lines in FIG. 1) provided on a
rear surface or a lower edge (bottom surface) of the lower housing
16b. Although omitted in FIG. 1, a connector 32 (see FIG. 2) is
provided at a depth portion of the loading slot 30 for connecting a
connector (not shown) provided at an end portion of the memory card
28 in the loading direction, and when the memory card 28 is loaded
into the loading slot 30, the connectors are connected with each
other, and therefore, the memory card 28 is accessible by a CPU
core 34 (see FIG. 2) of the game apparatus 10.
[0074] It should be noted that although not illustrated in FIG. 1,
the speakers 36a and 36b (see FIG. 2) are provided at a position
corresponding to the sound release holes 20a and 20b inside the
upper housing 16a.
[0075] Furthermore although omitted in FIG. 1, for example, a
battery accommodating box is provided on a rear surface of the
lower housing 16b, and a volume switch, an external expansion
connector, an earphone jack, etc. are provided on a bottom surface
of the lower housing 16b.
[0076] FIG. 2 is a block diagram showing an electrical
configuration of the game apparatus 10. Referring to FIG. 2, the
game apparatus 10 includes an electronic circuit board 38, and on
the electronic circuit board 38, a circuit component such as a CPU
core 34, etc. is mounted. The CPU core 34 is connected to the
above-described connectors 32 via a bus 40, and is connected with a
RAM 42, a first graphics processing unit (GPU) 44, a second GPU 46,
an input-output interface circuit (hereinafter, referred to as "I/F
circuit") 48, and an LCD controller 50.
[0077] The connector 32 is detachably connected with the memory
card 28 as described above. The memory card 28 includes a ROM 28a
and a RAM 28b, and although illustration is omitted, the ROM 28a
and the RAM 28b are connected with each other via a bus and also
connected with a connector (not shown) to be connected with the
connector 32. Accordingly, the CPU core 34 gains access to the ROM
28a and the RAM 28b as described above.
[0078] The ROM 28a stores in advance a game program for a game to
be executed by the game apparatus 10, image data (text and object
image, background image, item image, icon (button) image, message
image, etc.), data of the sound (music) necessary for the game
(sound data), etc. The RAM (backup RAM) 28b stores (saves)
proceeding data of the game, result data of the game, etc.
[0079] The RAM 42 is utilized as a buffer memory or a working
memory. That is, the CPU core 34 loads the game program, the image
data, the sound data, etc. stored in the ROM 28a of the memory card
28 into the RAM 42, and executes the loaded game program. The CPU
core 34 executes a game process while storing data (game data, flag
data, etc.) generated or obtained in correspondence with a progress
of the game in the RAM 42.
[0080] It should be noted that the game program, the image data,
the sound data, etc. are stored (loaded) from the ROM 28a entirely
at a time, or partially and sequentially so as to be stored into
the RAM 42.
[0081] However, a program as to an application except for the game
and image data required to execute the application may be stored in
the ROM 28a of the memory card 28. In addition, sound (music) data
may be stored therein as necessary. In such a case, in the game
apparatus 10, the application is executed.
[0082] Each of the GPU 44 and the GPU 46 forms a part of a
rendering means, is constructed by, for example, a single chip
ASIC, and receives a graphics command (rendering command) from the
CPU core 34 to generate image data according to the graphics
command. It should be noted that the CPU core 34 applies an image
generation program (included in the game program) required to
generate the image data to both of the CPU 44 and GPU 46 in
addition to the graphics command.
[0083] Furthermore, the GPU 44 is connected with a first video RAM
(hereinafter referred to as "VRAM") 52, and the GPU 46 is connected
with a second VRAM 54. The GPU 44 and the GPU 46 respectively
access the first VRAM 52 and the second VRAM 54 to obtain data
(image data: polygon data, texture data, etc.) required to execute
the rendering command.
[0084] It should be noted that the CPU core 34 writes image data
necessary for rendering to the first VRAM 52 and the second VRAM 54
via the GPU 44 and the GPU 46. The GPU 44 accesses the VRAM 52 to
create image data for rendering, and the GPU 46 accesses the VRAM
54 to create image data for rendering.
[0085] The VRAM 52 and the VRAM 54 are connected to the LCD
controller 50. The LCD controller 50 includes a register 56, and
the register 56 consists of, for example, one bit, and stores a
value of "0" or "1" (data value) according to an instruction of the
CPU core 34. The LCD controller 50 outputs the image data created
by the GPU 44 to the LCD 12, and outputs the image data created by
the GPU 46 to the LCD 14 in a case that the data value of the
register 56 is "0". Additionally, the LCD controller 50 outputs the
image data created by the GPU 44 to the LCD 14, and outputs the
image data created by the GPU 46 to the LCD 12 in a case that the
data value of the register 56 is "1".
[0086] It should be noted that the LCD controller 50 can directly
read the image data from the VRAM 52 and the VRAM 54, or read the
image data from the VRAM 52 and the VRAM 54 via the GPU 44 and the
GPU 46.
[0087] The I/F circuit 48 is connected with the operating switch
22, the touch panel 24 and the speakers 36a, 36b. Here, the
operating switch 22 is the above-described switches 22a, 22b, 22c,
22d, 22e, 22L and 22R, and in response to an operation of the
operating switch 22, a corresponding operation signal (operation
data) is input to the CPU core 34 via the I/F circuit 48.
Furthermore, the coordinates data output from the touch panel 24 is
input to the CPU core 34 via the I/F circuit 48. In addition, the
CPU core 34 reads from the RAM 42 the sound data necessary for the
game such as a game music (BGM), a sound effect or voices of a game
character (onomatopoeic sound), etc., and outputs it from the
speakers 36a, 36b via the I/F circuit 48.
[0088] FIG. 3 is one example of a game screen 300 to be displayed
on the LCD 12 and a game screen 320 to be displayed on the LCD 14
in a case that a virtual game (puzzle game) in this embodiment is
played by utilizing the game apparatus 10 shown in FIG. 1 and FIG.
2. The game screen 300 includes rotating objects (gear objects)
302, 304, 306. The three gear objects 302, 304, 306 are displayed
so as to be arranged in a straight line in a longitudinal
direction. The gear object 302 is provided with two socket objects
302a, 302b as acceptor units (see FIG. 5), and ball objects 312a,
312b are held in the socket objects 302a, 302b, respectively. The
gear object 304 is provided with two socket objects 304a, 304b (see
FIG. 5), and ball objects 314a, 314b are held in the socket objects
304a, 304b, respectively. The gear object 306 is provided with two
socket objects 306a, 306b (see FIG. 5), and ball objects 316a, 316b
are held in the socket objects 306a, 306b, respectively.
[0089] Furthermore, the game screen 320 includes three gear objects
322, 324, 326, and the three gear objects 322, 324, 326 are
displayed so as to be arranged in a straight line in a longitudinal
direction. The gear object 322 is provided with two socket objects
322a, 322b, the gear object 324 is provided with two socket objects
324a, 324b, and the gear object 326 is provided with two socket
objects 326a, 326b.
[0090] It should be noted that the game screen 300 and the game
screen 320 shown in FIG. 3 are merely one example. For example, the
ball objects 312a, 312b, 314a, 314b, 316a, 316b may be held in any
socket objects 302a, 302b, 304a, 304b, 306a, 306b, 322a, 322b,
324a, 324b, 326a, 326b. Furthermore, the alignment of the gear
objects 302, 304, 306 displayed on the game screen 300 and the
alignment of the gear objects 322, 324, 326 displayed on the game
screen 320 may be a different way.
[0091] Describing briefly the puzzle game in this embodiment, a
touch panel 24 is provided on the LCD 14 as described above, and
the player can rotate the gear objects (322, 324, 326) by making a
sliding operation on the gear objects (322, 324, 326) by means of
the stick 26. Furthermore, at this time, the gear objects (302,
304, 306) in conjunction with the gear objects (322, 324, 326) is
also rotated. In the example shown in FIG. 3, the gear object 302
and the gear object 322 are operatively associated. Although
illustration is omitted, the gear object 304 and the gear object
324 are operatively associated. Although illustration is further
omitted, the gear object 306 and the gear object 326 are
operatively associated.
[0092] For example, other gear object (302, 304, 306) corresponding
to a certain gear object (322, 324, 326) may be rotated in the
direction the same as that of the certain gear object (322, 324,
326), or may reversely rotated. Furthermore, in this embodiment,
the rotation amount (rotation angle) is made equal, but may be more
or less that it. In addition, two or more gear objects (302, 304,
306) may be brought into correspondence with one gear object (322,
324, 326). These may be set by a programmer or a developer of the
puzzle game at his or her own discretion.
[0093] Furthermore, as shown in FIG. 3, colors (shown by a sloped
line pattern, a striped pattern, and a mesh pattern for the sake of
drawings) are applied to the ball objects 312a, 312b, 314a, 314b,
316a, 316b, and colors are also applied to the gear objects 322,
324, 326. As understood from FIG. 3, a color ("sloped line pattern"
in FIG. 3) the same as the gear object 322 is applied to each of
the ball objects 312a, 312b. Furthermore, a color ("vertical
striped pattern" in FIG. 3) the same as the gear object 324 is
applied to each of the ball objects 314a, 314b. In addition, a
color ("mesh pattern" in FIG. 3) the same as the gear object 326 is
applied to each of the ball objects 316a, 316b.
[0094] In this embodiment, two socket objects (302a, 302b), (304a,
304b), (306a, 306b), (322a, 322b), (324a, 324b), and (326a, 326b)
are provided to the gear objects 302, 304, 306, 322, 324, 326,
respectively. However, this is a merely example, at least one
socket object is only needed to one gear object, or three or more
socket objects may be provided. It should be noted that as
described later, since the gear object is allowed to be rotated or
stopped for each predetermined angle (15.degree. angle in this
embodiment), the number of socket objects provided for each
predetermined angle is the maximum number of socket objects.
[0095] As described above, the gear object (322, 324, 326) are
rotated to also rotate the gear object (302, 304, 306). When the
socket objects (302a, 302b, 304a, 304b, 306a, 306b, 322a, 322b,
324a, 324b, 326a, 326b) of adjacent gear objects (302, 304, 306,
322, 324, 326) satisfy a predetermined relationship, the ball
object (312a, 312b, 314a, 314b, 316a, 316b) move from the one
socket object to the other socket object which satisfy the
predetermined relationship.
[0096] For example, as shown in FIG. 4(A), the ball object 314a (or
314b) is held in the socket object 322b of the gear object 322 on
the game screen 320. When the gear object 322 is rotated by a
player's touch operation as shown in FIG. 4(B), the socket object
322b of the gear object 322 and the socket object 324b of the gear
object 324 are arranged in a straight line. At this time, the ball
object 314a (or 314b) moves from the socket object 322a (or 322b)
to the socket object 324a (or 324b). That is, the ball object 314a
(or 314b) moves from the gear object 322 to the gear object
324.
[0097] In this manner, each of the ball objects 312a, 312b, 314a,
314b, 316a, 316b is moved, and as shown in FIG. 5, when each of the
ball objects 312a, 312b, 314a, 314b, 316a, 316b moves to the gear
object (322, 324, 326) applied with the color the same as each of
the ball objects 312a, 312b, 314a, 314b, 316a, 316b, the puzzle
game is cleared.
[0098] Although detailed description is omitted, the game screen
300 and the game screen 320 are operatively associated with each
other, so that the ball object (312a, 312b, 314a, 314b, 316a, 316b)
can move from the gear object 306 to the gear object 322. That is,
in a normal case, the ball object (312a, 312b, 314a, 314b, 316a,
316b) moves from the upper portion of the game screen 300 to the
lower portion of the game screen 320. However, the ball object
(312a, 312b, 314a, 314b, 316a, 316b) can be moved from the gear
object 326 to the gear object 302. This is because of the
prevention of a so-called stalemate situation as in immovability of
the ball object (312a, 312b, 314a, 314b, 316a, 316b). It should be
noted that depending on the level or the like of the game, the ball
object (312a, 312b, 314a, 314b, 316a, 316b) may not be moved from
the lower game screen 320 to the upper game screen 300.
[0099] By utilizing drawings, a rotation of the gear object (302,
304, 306, 322, 324, 326), a predetermined relationship between the
socket objects (302a, 302b, 304a, 304b, 306a, 306b, 322a, 322b,
324a, 324b, 326a, 326b), and a movement of the ball object (312a,
312b, 314a, 314b, 316a, 316b) are explained in detail below.
[0100] Referring to FIG. 6, the rotation of the gear object (322,
324, 326) (calculation method of a rotation amount) by an operation
(touch operation) of the player is explained. It should be noted
that in FIG. 6, for simplicity, the socket objects 322a, 322b,
324a, 324b, 326a, 326b and the ball objects 312a, 312b, 314a, 314b,
316a, 316b are omitted.
[0101] As shown in FIG. 6, assuming that a touch operation (sliding
operation) is executed on the gear object (302, 304, 306, 322, 324,
326). Here, f0 is a touched position at a current frame (current
frame), and f1 is a touched position at a frame (preceding frame)
immediately before. Furthermore, the frame is a screen updating
rate ( 1/60 seconds in this embodiment). The rotation amount L of
the gear object (322, 324, 326) taking the center c of the gear
object 322, 324, 326 as a center is calculated in response to the
touch operation.
[0102] First, a vector V0 is evaluated from the coordinates of the
center c (central coordinates) of the gear object (322, 324, 326)
and a touched position (touched coordinates) f0 of the current
frame. Here, with respect to the vector V0, the central coordinates
are a starting point, and the touched position f0 is an end point.
Next, the vector V0 is normalized to evaluate a vector U0. The
vector U0 is a unit vector of the vector V0. Succeedingly, a
position on the circumference r0 of the gear object (322, 324, 326)
corresponding to the touched coordinates at the current frame f0 is
evaluated from Equation 1.
r0=|f0-c|.times.r+c [Equation 1]
[0103] It should be noted that |f0-c| is the unit vector U0
obtained by normalizing the vector V0 (=f0-c).
[0104] Similarly, a position on the circumference r1 of the gear
object (322, 324, 326) corresponding to the touched position at the
preceding frame f1 is evaluated from Equation 2.
r1=|f1-c|.times.r+c [Equation 2]
[0105] It should be noted that |f1-c| means the unit vector
obtained by normalizing the vector V1 (=f1-c).
[0106] Furthermore, a vector rV is evaluated from the position on
the circumference (position coordinate) r0 obtained from Equation 1
and the position r1 obtained from Equation 2. As to the vector rV,
the position r1 is regarded as a starting point, and the position
r0 is regarded as an end point. Then, according to Equation 3, a
rotation amount L of the gear object (322, 324, 326) is
evaluated.
L1=(U0x.times.(-rVy))+(U0y.times.rVx).times.k
(0.ltoreq.k.ltoreq.1) [Equation 3]
[0107] Here, U0x is an X component of the vector U0, U0y is a Y
component of the vector U0, rVx is an X component of the vector rV,
and rVy is a Y component of the vector rV.
[0108] According to the rotation amount L thus calculated, the gear
object (322, 324, 326) is rotated (displayed so as to be rotated)
to thereby rotate the gear object (302, 304, 306) operatively
associated therewith. In this embodiment, the clockwise direction
is a positive rotation direction, and the counterclockwise
direction is a negative rotation direction.
[0109] Here, as shown in FIG. 7, a ball object and an invisible
socket object are arranged according to their angle offset value
when the game screen 300 and the game screen 320 are displayed. In
this embodiment, a reference position or a reference direction is
an upper direction of the gear object (302, 304, 306, 322, 324,
326) and an invisible gear object (402, 404, 406, 422, 424, 426
(see FIG. 8)) described later. The angle offset value is set taking
the upper direction as 0.degree. angle.
[0110] It should be noted that in FIG. 7, ba is an angle offset
value of the ball object held in the socket object of the gear
object, and s'a is an angle offset value of the invisible socket
object set in correspondence with the gear object. Furthermore, in
this embodiment, an offset value of the rotation angle in the left
direction (counterclockwise) from the reference position is
represented by minus, whereas an offset value of the rotation angle
in the right direction (clockwise) from the reference position is
represented by plus. That is, the angle offset value is set between
-180.degree. angle to +180.degree. angle.
[0111] Furthermore, the gear object (302, 304, 306, 322, 324, 326)
is rotated according to an operation by the player to thereby
rotate the ball object (312a, 312b, 314a, 314b, 316a, 316b). Thus,
the angle offset values of the gear object (302, 304, 306, 322,
324, 326) and the ball object (312a, 312b, 314a, 314b, 316a, 316b)
are updated every rotation.
[0112] Accordingly, in a case that the gear object (302, 304, 306,
322, 324, 326) is rotated, the offset value is added to the
rotation amount L calculated as described above, and then, a
positional relationship (angular difference A described later)
between the socket objects provided in the adjacent gear objects is
determined. Similarly, a positional relationship (angular
difference A' described later) between the ball object and an
invisible socket object provided to a gear object adjacent to the
gear object provided with the ball object is determined.
[0113] However, as described later, the invisible gear object is
not rotated, and therefore, as to the invisible socket object
(invisible socket object) provided thereto, only the angle offset
value may be considered without taking the rotation amount into
account.
[0114] Furthermore, in this embodiment, the gear object (302, 304,
306, 322, 324, 326) is rotated by a rotation amount L, but the
rotated position may be corrected such that the gear object is
rotated every predetermined angle. For example, if the rotation
angle of the socket object (302a, 302b, 34a, 304b, 306a, 306b,
322a, 322b, 324a, 324b, 326a, 326b) according to the rotation
amount L is an integral multiple of a predetermined angle .+-.7.5,
the rotation amount L is adjusted so as to become the integral
multiple angle.
[0115] For example, in a case that the rotation amount L is
37.degree. angle, the rotation angle is 15.degree.
angle.times.2(30.degree. angle)+7.degree. angle, the rotation
amount L at this time is adjusted to 30.degree. angle. Furthermore,
if the rotation amount L is 55.degree. angle, the rotation angle is
15.times.4 (60.degree. angle)-5.degree. angle, and the rotation
amount L at this time is adjusted to 60.degree. angle at this
time.
[0116] Next, a predetermined relationship between the socket
objects (302a, 302b, 304a, 304b, 306a, 306b, 322a, 322b, 324a,
324b, 326a, 326b) is explained.
[0117] As shown in FIG. 8(A) and FIG. 8(B), a layer 400 and a layer
420 on which invisible gear object corresponding to the gear
objects are arranged are set on the game screen 300 and the game
screen 320, respectively. Although illustration is omitted, since
the layer 400 and the layer 420 are set under the layer on which
the game images as to the game screen 300 and the game screen 320
are drawn, that is, at the depth from the viewpoint, the layer 400
and the layer 420 are never displayed on the game screen 300 and
the game screen 320, respectively. It should be noted that in a
case that invisible gear objects and invisible socket objects
described later are made transparent, and the layer provided
therewith are also made transparent, the layers 400 and 420 are
placed in front of the layer (on the side of the viewpoint) on
which the game images of the game screen 300 and the game screen
320 are drawn.
[0118] As shown in FIG. 8(A), on the layer 400, invisible disk
objects (hereinafter, referred to as an invisible gear object) 402,
404, 406 are provided by being brought into correspondence with the
gear objects 302, 304, 306, respectively. The invisible gear object
402 is provided with invisible socket objects 402a, 402b, the
invisible gear object 404 is provided with invisible socket objects
404a, 404b, and the invisible gear object 406 is provided with
invisible socket objects 406a, 406b.
[0119] Furthermore, as shown in FIG. 8(B), on the layer 420,
invisible gear objects 422, 424, 426 are provided by being brought
into correspondence with gear objects 322, 324, 326. The invisible
gear object 422 is provided with invisible socket objects 422a,
422b, the invisible gear object 424 is provided with invisible
socket objects 424a, 424b, and the invisible gear object 426 is
provided with invisible socket objects 426a, 426b.
[0120] The invisible gear object (402, 404, 406, 422, 424, 426) is
fixedly arranged, and never rotated unlikely to the gear object
(302, 304, 306, 322, 324, 326). Accordingly, the position of the
invisible socket object (402a, 402b, 404a, 404b, 406a, 406b, 422a,
422b, 424a, 424b, 426a, 426b) is never changed.
[0121] The invisible gear object (402, 404, 406, 422, 424, 426) and
the invisible socket object (402a, 402b, 404a, 404b, 406a, 406b,
422a, 422b, 424a, 424b, 426a, 426b) are provided for determining
whether or not they have a predetermined relationship with the
socket object (302a, 302b, 304a, 304b, 306a, 306b, 322a, 322b,
324a, 324b, 326a, 326b) of the gear object (302, 304, 306, 322,
324, 326) corresponding to the invisible object. It should be noted
that the invisible socket object (402a, 402b, 404a, 404b, 406a,
406b, 422a, 422b, 424a, 424b, 426a, 426b) is set only to the gear
object (302, 304, 306, 322, 324, 326) on which a connection setting
is made.
[0122] With reference to FIG. 9, a connection setting is described.
Referring to FIG. 9, assuming that gear objects C1, C2, C3 are
arranged in a straight line, and invisible gear objects B1, B2, B3
are set by being brought into correspondence with the respective
gear objects.
[0123] FIG. 9 shows that the gear objects C1-C3 and the invisible
gear objects B1-B3 are arranged in the same plane, but are actually
arranged in different layers as described above.
[0124] As shown in FIG. 9, there is no connection setting between
the gear object C1 and the gear object C2. Thus, even if a socket
object S1 (or S2) of the gear object C1 and a socket object S3 (or
S4) of the gear object C2 are arranged in a straight line, a ball
object (omitted in FIG. 9) never moves from the gear object C1 to
the gear object C2 or from the gear object C2 to the gear object
C1. In such a case, the connection state (ball object movable
state) need not to be determined, and therefore, the respective
invisible gear object B1 and the invisible gear object B2 are not
provided with invisible socket objects on the side approaching one
another.
[0125] However, there is a connection setting between the gear
object C2 and the gear object C3. More specifically, the connection
setting is performed on the gear object C2 such that the ball
object can move from the gear object C2 to the gear object C3.
Thus, the invisible gear object B2 and the invisible gear object B3
are respectively provided with an invisible socket object BS1 and
an invisible socket object BS2 on the sides approaching to one
another.
[0126] In such a case, when the socket object S3 (or S4) of the
gear object C2 exists at a position (the angular difference is
equal to or less than 5.degree. angle in this embodiment. The same
will be applied hereinafter.) overlapping the invisible socket
object BS1 of the invisible gear object B2, and a socket object S5
(or S6) of the gear object C3 exists at a position overlapping an
invisible socket object BS2 of the invisible gear object B3, a
predetermined relationship is satisfied, and that the socket object
S3 (or S4) and the socket object S5 (or S6) are in a connected
state is set by a flag (described later "connection flag"). That
is, the predetermined relationship means that the respective socket
objects provided in the two gear objects on which the connection
setting is performed exist at positions overlapping with the
invisible socket objects respectively corresponding to the gear
objects. At this time, the two socket objects are arranged in a
straight line or approximate straight line.
[0127] Here, with reference to FIG. 10, a determination method
whether or not socket objects S11, S12 respectively provided in
adjacent two gear objects C11, C12 are in a connected state will be
explained. In FIG. 10, the rotation amount of the gear object C11
is L, and the angle offset value is sa. On the other hand, the
rotation amount of the gear object C12 is L', and the angle offset
value is s'a. It should be noted that in this embodiment, the
reference position for calculating the rotation amounts L, L' is
set to the same position (direction) with respect to the gear
object (302, 304, 306, 322, 324, 326). Accordingly, where out of
the adjacent two gear objects C11, C12, the rotation amount of the
gear object C11 of the noting one is L, and the rotation amount of
the other adjacent gear object C12 is L', the angular difference A
between the socket object S11 and socket object S12 can be
evaluated from Equation 4. Each of the angle offset value sa and
s'a is decided by an angle displaced from the reference position
when the gear objects C11, C12 are displayed, but after one
rotation, it is updated to the angle after rotation from the
reference position.
A=|(sa+L)-(s'a+L')-180| [Equation 4]
[0128] It should be noted that |.cndot.| means an absolute value.
Additionally, in this embodiment, the reference position is set to
the same position (direction) with respect to all the gear objects
(302, 304, 306, 322, 324, 326), and therefore, the angular
difference A is evaluated by subtraction of 180.degree. angle, but
if the reference position of the adjacent gear objects is displaced
by 180.degree. angle, there is no need of the subtraction.
[0129] Then, in a case that the angular difference A calculated
according to Equation 4 is less than a predetermined angle
(5.degree. angle, for example), the connected state is set while in
a case that the angular difference A is equal to or more than the
predetermined angle, the connected state is not set.
[0130] Returning to FIG. 9, in a case that the connected state is
set, the ball object held in the socket object S3 (or S4) of the
gear object C2 is moved to and held in the socket object S5 (or S6)
of the gear object C3. However, even if the connected state is set,
but the ball object is not held in the socket object S3 (or S4) of
the gear object C2, the ball object is naturally never moved to the
socket object S5 (or S6) of the gear object C3.
[0131] Here, since there is no connection setting from the gear
object C3 to the gear object C2, even if the connected state is
set, the ball object is never moved from the socket object S5 (or
S6) of the gear object C3 to the socket object S3 (or S4) of the
gear object C2.
[0132] Next, as shown in FIG. 11, the position of a ball object
held in a socket object not illustrated) of a gear object C11 and
the position of a socket object in which the ball object is to be
accepted when the ball object is moved from the gear object C11 to
a gear object C12 are respectively shown in Equation 5 and Equation
6.
[0133] X component and Y component of position coordinates of the
ball object
x=(p+q).times.cos(sa)+(p+q).times.(-sin(sa))
y=(p+q).times.sin(sa)+(p+q).times.cos(sa) [Equation 5]
[0134] X component and Y component of position coordinates of the
socket object
x=p.times.cos(sa)+(-sin(sa))
y=p.times.sin(sa)+p.times.cos(sa) [Equation 6]
[0135] Here, p is the distance from the center of the gear object
C12 to the center of the invisible socket object of the gear object
C12. Furthermore, q is the distance from the center of the
invisible socket object of the gear object C12 to the center of the
ball object of the gear object C11.
[0136] By means of the position coordinates of the ball object and
the socket object, the ball object is moved. It should be noted
that when the ball object moves from the gear object C11 to the
gear object C12, the distance q is reset. More specifically, the
distance q is subtracted for each frame until the distance q
becomes 0 (q=0). Accordingly, a scene in which the ball object
moves from the gear object C11 to the gear object C12 is displayed
on the game screen 300 and the game screen 320.
[0137] It should be noted that whether the ball object is moveable
or not is determined on the basis of the angular difference A'
between a ball object held in a socket object of a certain gear
object and an invisible socket object provided at a position to
which the ball object has to be moved in other gear object on which
a connection setting with the certain gear object is performed. The
angular difference A' is calculated according to Equation 7. The
calculation method of the angular difference A' is similar to the
calculation method of the angular difference A. It should be noted
that the rotation amount of the ball object is the same as the
rotation amount L of the socket object holding the ball object.
Furthermore, since the invisible socket object is fixedly provided,
only the angle offset value bsa is considered. As understood from
FIG. 11, the reference position for deciding the angle offset value
bsa of the invisible socket object is an upper direction of the
invisible gear object similar to the gear object.
A'=|bsa-(sa+L)-180| [Equation 7]
[0138] When the angular difference A' is less than the
predetermined angle (5.degree. angle in this embodiment), it is
determined that the ball object is moveable. Then, if the socket
object holding the ball object and a socket object corresponding to
the invisible socket object about which the angular difference A'
is evaluated are in the connected state, the ball object is
moved.
[0139] FIG. 12 is an illustrative view showing a memory map of the
RAM 42 shown in FIG. 2. As shown in FIG. 12, the RAM 42 includes a
program memory area 70 and a data memory area 72. The program
memory area 70 stores a puzzle game program, and the puzzle game
program is made up of a game main processing program 70a, an image
generating program 70b, an image displaying program 70c, an image
updating program 70d, an instructed position detecting program 70e,
a gear object rotating processing program 70f, a socket connection
determining program 70g, a ball movement processing program 70h, a
game clear processing program 70i, etc.
[0140] The game main processing program 70a is a program for
processing a main routine of the puzzle game in this embodiment.
The image generating program 70b is a program for generating a game
image including respective objects by utilizing image data (data
such as a polygon, a texture) described later. Furthermore, the
image generating program 70b also generates a layer including
respective invisible gear objects by utilizing polygon data (100b,
etc.) described later. The image displaying program 70c is a
program for displaying the game image generated according to the
image generating program 70b as game screens (300, 320) on the LCDs
12, 14. The image updating program 70d is a program for updating a
game image (game screen) to be displayed on the LCDs 12, 14.
[0141] The instructed position detecting program 70e is a program
for detecting the presence or absence of coordinate data from the
touch panel 24, and when coordinate data is present, fetching the
coordinate data to store the same in the data memory area 72. The
gear object rotating processing program 70f is a program for
rotating the gear object (302, 304, 306, 322, 324, 326) according
to an operation by the player. The gear object rotating processing
program 70f controls not only the rotation of the gear object (322,
324, 326) directly rotated by the player, but also the rotation of
the gear object (302, 304, 306) operatively associated
therewith.
[0142] The socket connection determining program 70g is a program
for determining whether or not the socket objects (302a, 302b,
304a, 304b, 306a, 306b, 322a, 322b, 324a, 324b, 326a, 326b)
provided to the adjacent gear objects (302, 304, 306, 322, 324,
326) are in the connected state. More specifically, when a noting
socket object (302a, 302b, 304a, 304b, 306a, 306b, 322a, 322b,
324a, 324b, 326a, 326b) of a noting gear object (302, 304, 306,
322, 324, 326) overlaps a corresponding invisible socket object
(402a, 402b, 404a, 404b, 406a, 406b, 422a, 422b, 424a, 424b, 426a,
426b), the presence or absence of the connection setting with an
adjacent gear object is determined. Next, the angular difference A
between the noting socket object and the socket object provided to
the gear object on which the connection setting is performed is
calculated. On the basis of the angular difference A whether the
connected state or not is determined. In this embodiment, in a case
that the angular difference A is less than the predetermined angle
(5.degree. angle) for example, it is determined to be the connected
state. Then, when it is determined to be the connected state, data
or a flag showing the connected state with respect to the two
socket objects which are in the connected state is stored (set) in
the RAM 42.
[0143] Here, whether or not the socket object overlaps the
invisible socket object is determined by whether or not the angular
difference B is less than the predetermined angle (5.degree. angle,
for example). If the angular difference B is less than the
predetermined angle, it is determined that the socket object
overlaps the invisible socket object. It should be noted that the
angular difference B is calculated according to Equation 8.
B=|bsa-(sa+L)| [Equation 8]
[0144] The ball movement processing program 70h is a program for
moving the ball object (312a, 312b, 314a, 314b, 316a, 316b) held in
the gear object (302, 304, 306, 322, 324, 326) to other gear
object. More specifically, the angular difference A' between the
ball object (312a, 312b, 314a, 314b, 316a, 316b) and the invisible
socket object (402a, 402b, 404a, 404b, 406a, 406b, 422a, 422b,
424a, 424b, 426a, 426b) provided in other gear object except for
the gear object (302, 304, 306, 322, 324, 326) holding the ball
object is calculated. In a case that the angular difference A' is
less than the predetermined angle (5' angle, for example), and the
socket object (302a, 302b, 304a, 304b, 306a, 306b, 322a, 322b,
324a, 324b) holding the ball object and the socket object
corresponding to the invisible socket object are in the connected
state, the ball object is moved according to the connection
setting.
[0145] The game clear processing program 70i is a program for
determining whether or not the puzzle game is to be cleared, and
for executing clear processing when the puzzle game is cleared. For
example, in a case that the puzzle is solved, a message showing
that it is possible to clear the stage or the level is displayed on
the game screen 300 (or game screen 320) to allow a puzzle game at
a next state or level to be played. It should be noted that in this
embodiment, when each of the ball objects 312a, 312b, 314a, 314b,
316a, 316b are held in the gear objects 322, 324, 326 each applied
with the color the same as that of each of the ball objects, it is
determined to be a game clear (that the puzzle is solved).
[0146] Although illustration is omitted, the puzzle game program
includes a game sound outputting program and a backup program. The
game sound outputting program is a program for outputting sound
necessary for the game such as sound effect, voice (onomatopoeic
sound), BGM, etc. by means of sound (music) data. The backup
program is a program for storing (saving) the game data (proceeding
data, result data) stored in the RAM 42 in the RAM 28b of the
memory card 28.
[0147] Furthermore, the data memory area 72 is provided with an
instructed position memory area 72a and an object data memory area
72b. In the data memory area 72, score data 72c is stored, and a
touch-on flag 72d is provided.
[0148] In the instructed position memory area 72a, current frame's
touched position coordinate data 720 and preceding frame's touched
position coordinate data 722 are stored. It should be noted that
directly after the start of the puzzle game, the coordinate data
722 of the touched coordinates at the preceding frame is not
stored. Although detailed description is omitted, before the
current frame's touched position coordinate data 720 is stored, the
coordinate data 720 stored in the instructed position memory area
72a is stored (overwritten by) in the preceding frame's touched
position coordinate data.
[0149] The object data memory area 72b further includes a gear
object data memory area 724, a ball object data memory area 726 and
an invisible gear object data memory area 728.
[0150] As shown in FIG. 13, the gear object data memory area 724
stores first gear object data 80, second gear object data 82, and
so on. The first gear object data 80 is only described below, but
this will be applied to other gear object data such as the second
gear object data 82, etc.
[0151] As shown in FIG. 13, the first gear object data 80 includes
image data 80a, positional data 80b, color data 80c, rotation
amount data 80d, cooperative gear setting data 80e, connection
setting data 80f and socket object data 80g.
[0152] The image data 80a is image data (data such as a polygon, a
texture, etc.) for drawing the first gear object (except for the
socket object described later). By the image data 80a also, the
size (and shape) of the first gear object is decided. The
positional data 80b is coordinate data of the three-dimensional
position of the first gear object. However, if a position (position
in the Z direction) of the layer (400) on which the first gear
object is arranged is separately stored, the position on the layer
except for the depth direction (Z-axis direction) of the
three-dimensional virtual space (two-dimensional coordinates) only
need to be stored.
[0153] The color data 80c is data as to a color applied to the
first gear object. The rotation amount data 80d is data of the
rotation amount L (angle data) calculated according to the
above-described Equation 3 according to an operation by the player.
The cooperative gear setting data 80e is data of identification
information as to a gear (other gear object) operatively associated
with the first gear object or an address pointer storing other gear
object data. With respect to the other gear object, the rotation
amount is decided by the above-described rotation amount data 80d.
Additionally, the rotation direction is decided by the sign (+, -)
of the rotation amount data 80, but if the rotation direction is
reversed, the sign is reversed. Furthermore, in a case that the
rotation amount is changed, a magnification ratio depending on the
change is multiplied by the rotation amount L indicated by the
rotation amount data 80.
[0154] The connection setting data 80f is data of identification
information of other gear object on which the connection setting is
performed with the first gear object and an address pointer storing
other gear object data. The data stored in the connection setting
data 80f is data of identification information, etc. of other gear
object when the ball object can move from the first gear object to
the other gear object. Accordingly, in a case that the ball object
can move from the other gear object to the first gear object, data
of the identification information of the first gear object or an
address pointer storing the first gear object data 80 are stored in
the connection setting data of the other gear object.
[0155] The socket object data 80g is data of the socket object
provided to the first gear object, and includes first socket object
data 800, second socket object data 802, and so on. Only the first
socket object data 800 is described below, but this will be applied
to other socket object data such as the second socket object data
802, etc.
[0156] As shown in FIG. 13, the first socket object data 800
includes image data 800a, positional data 800b, angle offset value
data 800c, a connection flag 800d, and a coincidence flag 800e.
[0157] The image data 800a is image data (data, such as a polygon,
a texture, etc.) for drawing the first socket object. The
positional data 800b is coordinate data of the position
(three-dimensional position) of the first socket object. In a case
that a Z coordinate of the layer (400) on which the first socket
object is arranged is separately stored, the coordinate data of the
two-dimensional coordinates of the first socket object on the layer
is stored. The angle offset value data 800c is angle data of the
angle sa as to the position of the first socket object with respect
to the reference position of the first gear object provided with
the first socket object as described above.
[0158] The connection flag 800d is a flag for determining whether
or not the first socket object is in a connected state with other
socket object. For example, the connection flag 800d is made up of
one bit register, and if the connection flag 800d is turned on
(established), a data value "1" is stored in the register, and if
the connection flag 800d is turned off (unestablished), the data
value "0" is stored in the register. Here, if the first socket
object is in the connected state with other socket object, the
connection flag 800d is turned on. On the other hand, if the first
socket object is not in the connected state with other socket
object, the connection flag 800d is turned off. The turning on and
off of the connection flag 800d is executed according to the socket
connection determining program 70g.
[0159] The coincidence flag 800e is a flag for determining whether
or not the color applied to the ball object held in the first
socket object is coincident with the color applied to the gear
object provided with the first socket object. The coincidence flag
800e is made up of one bit register, and if the coincidence flag
800e is turned on, a data value "1" is stored in the register, and
if the coincidence flag 800e is turned off, a data value "0" is
stored in the register. Here, if the color applied to the ball
object held in the first socket object and the color applied to the
gear object provided with the first socket object are coincident,
the coincidence flag 800e is turned on. On the other hand, if the
color applied to the ball object held in the first socket object
and the color applied to the gear object provided with the first
socket object are not coincident, the coincidence flag 800e is
turned off.
[0160] FIG. 14 is an illustrative view showing the ball object data
memory area 726 shown in FIG. 12 in detail. The ball object data
memory area 726 stores data, etc. of the first ball object and the
second ball object (90, 92) utilized in the puzzle game. Only the
first ball object data 90 is described below, but this will be
applied to other ball object data such as the second ball object
data 92, etc.
[0161] As shown in FIG. 14, the first ball object data 90 includes
image data 90a, positional data 90b, color data 90c and angle
offset value data 90d.
[0162] The image data 90a is image data (data such as a polygon, a
texture, and etc.) for drawing a first ball object. Also, the size
(shape) of the first ball object is decided by the image data. The
positional data 90b is coordinate data of the position
(three-dimensional position) of the first ball object. However, if
a Z coordinate of the layer (400) on which the first ball object is
arranged is separately stored, the coordinate data in the
two-dimensional coordinates of the first ball object on the layer
is stored. The color data 90c is data as to a color applied to the
first ball object. The angle offset value data 90d is angle data of
the angle ba as to the position of the ball object with respect to
the reference position of the gear object provided with the first
ball object.
[0163] FIG. 15 is an illustrative view showing an invisible gear
object data memory area 728 shown in FIG. 12 in detail. As shown in
FIG. 15, in the invisible gear object data memory area 728, first
invisible gear object data 100, second invisible gear object data
102, and so on are stored. Only the first invisible gear object
data 100 is described below, but this will be applied to other
invisible gear object such as the second invisible gear object data
102, etc.
[0164] As shown in FIG. 15, the first invisible gear object data
100 includes positional data 100a, polygon data 100b and invisible
socket object data 100c.
[0165] The positional data 100a is coordinate data of the position
(three-dimensional position) of the first invisible gear object.
However, if a Z coordinate of the layer (400) on which the first
invisible gear object is arranged is separately stored, the
coordinate data in the two-dimensional coordinates of the first
ball object on the layer is stored. The polygon data 100b is
polygon data for forming the first invisible gear object. Here,
since the first invisible gear object is formed by the polygon data
100b, the size (radius or diameter in this embodiment) is defined
by the polygon data 100b.
[0166] The invisible socket object data 100c includes first
invisible socket object data 1000, second invisible socket object
data 1002, and so on. Only the first invisible socket object data
1000 will be described below, but this will be applied to other
invisible socket object data such as the second invisible socket
object data 1002.
[0167] As shown in FIG. 15, the first invisible socket object data
1000 includes positional data 1000a, polygon data 1000b and angle
offset value data 1000c.
[0168] The positional data 1000a is coordinate data of the position
(three-dimensional position) of the first invisible socket object.
However, if a Z coordinate of the layer (420) on which the first
invisible socket object is arranged is decided, coordinate data of
the two-dimensional position on the layer is stored. The polygon
data 1000b is polygon data for forming the first invisible socket
object, and defines the size (radius or diameter in this
embodiment) thereof. The angle offset value data 1000c is angle
data of the angle s'a as to the position of the first invisible
socket object with respect to the reference position of the first
invisible gear object provided with the first invisible socket
object.
[0169] Returning to FIG. 12, the data memory area 72 stores score
data 72c as described above. The score data 72c is numerical value
data of scores of the puzzle game to be added according to the
progress of the game. Here, data as to a level of the player or the
player character as well as the scores may be stored.
[0170] Furthermore, as described above, the data memory area 72 is
provided with a touch-on flag 72d. The touch-on flag 72d is a flag
for determining the presence or absence of a touch input (touch
operation). The touch-on flag 72d is made up of one bit register,
for example, and when the touch-on flag 72d is turned on, a data
value "1" is set to the register, and if the touch-on flag 72d is
turned off, a data value "0" is set to the register. It should be
noted that if there is a touch operation, the touch-on flag 72d is
turned on, and if there is no touch operation, the touch-on flag
72d is turned off. Additionally, the presence or absence of a touch
operation can be easily informed by the presence or absence of the
coordinate data.
[0171] More specifically, the CPU core 34 shown in FIG. 2 executes
entire processing according to the flowchart shown in FIG. 16. As
shown in FIG. 16, when starting the entire processing, the CPU core
34 performs an initial setting in a step S1. For example, when
starting the game from the beginning, the CPU core 34 clears the
buffer area of the RAM 42, resets various flags and a timer, and so
forth. Furthermore, if the game is started from where the player
left off in the previous play, the CPU core 34 clears the buffer
area of the RAM 42, loads the save data stored in the RAM 28b, and
so forth.
[0172] In a succeeding step S3, a game image is displayed. As shown
in FIG. 3, a game screen 300 is displayed on the LCD 12, and a game
screen 320 is displayed on the LCD 14. In a next step S5, it is
determined whether or not the touch-on flag 72d is turned on. That
is, it is determined whether or not there is a touch operation. If
"NO" is determined in the step S5, that is, if the touch-on flag
72d is turned off, it is determined that there is no touch
operation, the process proceeds to a step S13 as it is.
[0173] However, if "YES" is determined in the step S5, that is, if
the touch-on flag 72d is turned on, it is determined that there is
a touch operation, gear object rotating processing (see FIG. 17)
described later is executed in a step S7, socket connection
determining processing (see FIG. 18 and FIG. 19) described later is
executed in a step S9, ball moving processing (see FIG. 20 and FIG.
21) described later is executed in a step S11, and then, the
process proceeds to the step S13.
[0174] In the step S13, it is determined whether or not all the
coincidence flags (800e, etc.) are turned on. That is, it is
determined whether or not all the ball objects 312a, 312b, 314a,
314b, 316a, 316b are respectively held in the socket object 322a,
322b, 324a, 324b, 326a, 326b of the gear object 322, 324, 326 each
applied with the color the same as that of each of the
corresponding ball objects.
[0175] If "NO" is determined in the step S13, that is, if any one
of the coincidence flags is turned off, it is determined that the
game is not to be cleared, and the process proceeds to a step S17
as it is. On the other hand, if "YES" is determined in the step
S13, that is, if all the coincidence flags are turned on, it is
determined that the game is to be cleared, game clear processing is
executed in a step S15, and then, the process proceeds to the step
S17.
[0176] In the step S17, it is determined whether or not the game is
to be ended. That is, it is determined whether or not the game is
over, an instruction of the game end is issued from the player, and
so forth. If "NO" is determined in the step S17, that is, if the
game is not to be ended, it is determined that the game is to be
continued, the process returns to the step S3. On the other hand,
if "YES" is determined in the step S17, that is, if the game is to
be ended, the entire processing is ended as it is.
[0177] FIG. 17 is a flowchart showing the gear object rotating
processing in the step S7 shown in FIG. 16. As shown in FIG. 17,
starting the gear object rotating processing, the CPU core 34 rests
the variable i (i=1) in a step S31. Here, the variable i is set for
counting the gear object. The same will be applied hereinafter.
Next, in a step S33, a touched position f1 at the preceding frame
is read, and in a step S35, a touched position f0 at the current
frame is read. That is, the CPU core 34 reads the coordinate data
720 and the coordinate data 722 stored in the data memory area
72.
[0178] In a succeeding step S37, it is determined whether or not
the touched position f0 and the touched position f1 are on a gear
object i. That is, it is determined whether or not a touch
operation is made on a gear object i. If "NO" is determined in the
step S37, that is, if any one of the touched position f0 or the
touched position f1 is not on a gear object i, it is determined
that no touch operation for rotating the gear object i is made, and
the process proceeds to a step S55.
[0179] However, if "YES" is determined in the step S37, that is, if
the touched position f0 and the touched position f1 are on a gear
object i, a vector V0 is evaluated from the center c of the gear
object i and the touched position f0 at the current frame in a step
S39. In addition, in a step S41, the vector V0 is normalized to
evaluate a vector U0. Here, as described above, the vector U0 is a
unit vector of the vector V0.
[0180] Successively, a position on the circumference r0
corresponding to the touched position f0 at the current frame is
evaluated according to Equation 1 in a step S43, a position on the
circumference r1 corresponding to the touched position f1 at the
preceding frame is evaluated according to Equation 2 in a step S45,
and a vector rV is evaluated from the position r0 and the position
r1 in a step S47. Then, in a step S49, a rotation amount L is
evaluated according to Equation 3.
[0181] Then, in a step S51, rotation processing of the gear object
i is performed on the basis of the rotation amount L. Furthermore,
in a step S53, rotation processing of a gear object j operatively
associated with the gear object i is performed on the basis of the
rotation amount L. For example, the gear object j is rotated in a
direction the same or an opposite as and to the gear object i by an
angle the same as the gear object i. Although illustration is
omitted, when the rotation processing in the step S53 is executed,
the angle offset value data (800c, etc.) of the socket object and
the angle offset value data (90d, etc.) of the ball object are
updated.
[0182] In the step S55, the variable i is added by 1 (i=i+1). Then,
in a step S57, it is determined whether or not the variable i is
above a maximum value imax. Here, the maximum value imax is a total
number of gear objects. If "NO" is determined in the step S57, that
is, if the variable i is equal to or less than the maximum value
imax, the process returns to the step S33 as it is, and processing
as to a next gear object i is executed. On the other hand, if "YES"
is determined in the step S57, that is, if the variable i is above
the maximum value imax, it is determined that processing as to all
the gear objects i is completed, and the process returns to the
entire processing.
[0183] FIG. 18 and FIG. 19 are a flowchart showing the socket
connection determining processing in the step S9 shown in FIG. 16.
When starting the socket connection determining processing as shown
in FIG. 18, the CPU core 34 initializes the variable i (i=1) in a
step S71. In a succeeding step S73, it is determined whether or not
there is a connection setting of the gear object i. If "NO" is
determined in the step S73, that is, if there is no connection
setting of the gear object i, the process proceeds to a step S95
shown in FIG. 19.
[0184] However, if "YES" is determined in the step S73, that is, if
there is a connection setting of the gear object i, a variable s is
initialized (s=1) in a step S75. Here, the variable is set for
identifying a socket object s provided in the gear object i. The
same will be applied hereinafter. Successively, in a step S77, a
variable s' is initialized (s'=1). Here, the variable s' is set for
identifying a socket object s' provided in other gear object i' on
which a connection setting with the gear object i is performed.
Then, in a step S79, it is determined whether or not the socket
object s provided in the gear object i overlaps the invisible
socket object bs. More specifically, an angular difference B is
calculated according to Equation 8, and then, it is determined
whether or not the angular difference B is less than a
predetermined angle (5.degree. angle, for example).
[0185] If "NO" is determined in the step S79, that is, if the
socket object s provided in the gear object i does not overlap the
invisible socket object bs, the process proceeds to a step S93
shown in FIG. 19 as it is. On the other hand, if "YES" is
determined in the step S79, that is, if the socket object s
provided in the gear object i overlaps the invisible socket object
bs, the angular difference A between the socket object s provided
in the gear object i and the socket object s' provided in the gear
object i' on which a connection setting with the gear object i is
performed is evaluated according to Equation 4 in a step S81.
[0186] Next, in a step S83 shown in FIG. 19, it is determined
whether or not the angular difference A is less than a definite
angle m. In this embodiment, the definite angle m is set to
5.degree. angle, but can arbitrarily be set between 0.degree. angle
to 360.degree. angle. If "YES" is determined in the step S83, that
is, if the angular difference A is less than the definite angle m,
the socket object s and the socket object s' are set to a connected
state in a step S85, that is, a connection flag as to the socket
object s is turned on, and the process proceeds to a step S89. On
the other hand, if "NO" in the step 83, that is, if the angular
difference A is equal to or more than the angle m, the socket
object s and the socket object s' are set to a disconnected state
in a step S87, that is, the connection flag as to the socket object
s is turned off, and the process proceeds to the step S89.
[0187] In the step S89, the variable s' is added by one (s'=s'+1).
That is, setting processing as to the presence or absence of the
connected state is performed on a next socket object s'.
Accordingly, in this embodiment, a connected state is established
in one-to-one correspondence between the socket object s and the
socket object s', "YES" is determined in the step S83, and if the
processing in the step S85 is executed, the process may proceed to
a step S97 as it is.
[0188] In a next step S91, it is determined whether or not the
variable s' is a maximum value s'max. Here, the maximum value s'
max is a total number of socket object s' provided in the gear
object i'. That is, in the step S91, the CPU core 34 determines
whether or not the processing as to all the socket objects s' of
the gear object i' is to be completed.
[0189] If "NO" is determined in the step S91, that is, if the
variable s' is equal to or less than the maximum value s' max, the
process returns to the step S79 shown in FIG. 18. On the other
hand, if "YES" is determined in the step S91, that is, if the
variable s' is above the maximum value s'max, the variable s is
added by 1 (s=s+1) in the step S93. In the succeeding step S95, it
is determined whether or not the variable s is above the maximum
value smax.
[0190] If "NO" is determined in the step S95, that is, if the
variable s is equal to or less than the maximum value smax, the
process returns to the step S77 shown in FIG. 18. On the other
hand, if "YES" is determined in the step S95, that is, if the
variable s is above the maximum value smax, the variable i is added
by 1 (i=i+1) in the step S97. Then, in a step S99, it is determined
whether or not the variable i is above the maximum value imax.
[0191] If "NO" is determined in the step S99, that is, if the
variable i is equal to or less than the maximum value imax, the
process returns to the step S73 shown in FIG. 18. On the other
hand, if "YES" is determined in the step S99, that is, if the
variable i is above the maximum value imax, the process proceeds to
the entire processing shown in FIG. 16.
[0192] FIG. 20 and FIG. 21 are a flowchart of the ball moving
processing shown in the step S11 in FIG. 16. As shown in FIG. 20,
starting the ball moving processing, the CPU core 34 initializes a
variable b (b=1) in a step S111. Here, the variable b is set for
identifying the ball object b. In a succeeding step S113, a
rotation angle B (B=sa+L) of the ball object b is calculated. In a
next step S115, a variable bs is initialized (bs=1). Here, the
variable bs is set for identifying an invisible socket object bs.
In a next step S117, an angular difference A' between the ball
object b and the invisible socket object bs is calculated according
to Equation 7.
[0193] Succeedingly, in a step S119, it is determined whether or
not the angular difference A' is less than a definite angle k. In
this embodiment, the definite angle k is set to 5.degree. angle,
but can arbitrarily be set between 0.degree. angle to 360.degree.
angle. If "NO" is determined in the step S119, that is, if the
angular difference A' is equal to or more than the definite angle
k, the process proceeds to a step S133 shown in FIG. 21. On the
other hand, if "YES" is determined in the step S119, that is, if
the angular difference A' is less than the definite angle k, it is
determined whether or not a connection flag between the socket
object s holding the ball object b and a socket object s' provided
in the gear object i' provided with respect to the invisible socket
object bs is turned on in a step S121.
[0194] If "NO" is determined in the step S121, that is, if a
connection flag between the socket object s holding the ball object
b and a socket object s' provided in the gear object i' set with
respect to the invisible socket object bs is turned off, the
process proceeds to the step S133 as it is. On the other hand, if
"YES" is determined in the step S121, that is, if a connection flag
between the socket object s holding the ball object b and a socket
object s' provided in the gear object i' set with respect to the
invisible socket object bs is turned on, the ball object b is moved
to the socket object s' in a step S123, and in a step S125 shown in
FIG. 21, color data of the ball object b and the gear object i' in
which the socket object s' is provided are checked.
[0195] In a succeeding step S127, it is determined whether or not
the colors of the ball object b and the gear object i' are
coincident with each other. If "YES" is determined in the step
S127, that is, if the colors of the ball object b and the gear
object i' are coincident with each other, a coincidence flag set to
the socket object s' is turned on in a step S129, and the process
proceeds to the step S133. On the other hand, if "NO" is determined
in the step S127, that is, if the colors of the ball object b and
the gear object i' are not coincident with each other, the
coincidence flag set to the socket object s' is turned off in a
step S131, and the process proceeds to the step S133.
[0196] In the step S133, the variable bs is added by 1 (bs=bs+1).
Then, in a step S135, it is determined whether or not the variable
bs is above a maximum value bsmax. If "NO" is determined in the
step S135, that is, if the variable bs is equal to or less than the
maximum value bsmax, the process returns to the step S117 shown in
FIG. 20. On the other hand, if "YES" is determined in the step
S135, that is, if the variable bs is above the maximum value bsmax,
the variable b is added by 1 (b=b+1) in a step S137.
[0197] Then, in a step S139, it is determined whether or not the
variable b is above a maximum value bmax. If "NO" is determined in
the step S139, that is, if the variable b is equal to or less than
the maximum value bmax, the process returns to the step S113 shown
in FIG. 20. On the other hand, if "YES" is determined in the step
S139, that is, if the variable b is above the maximum value bmax,
the process returns to the entire processing shown in FIG. 16.
[0198] According to this embodiment, since the puzzle game is
played by rotating the gear object to move the ball object, and
therefore, it is possible to enjoy a novel puzzle game.
[0199] In this embodiment, for the sake of simplicity, an invisible
gear object is provided by being brought into correspondence with a
gear object, but at least an invisible socket object only need to
be set, and therefore, it is possible to omit the invisible gear
object. In such a case, it is possible to omit the data relating to
the invisible gear object such as the positional data 100a, and the
polygon data 100b, etc. as described by means of FIG. 15.
[0200] Furthermore, in this embodiment, the shapes of the gear
object and the ball object are set to a circle in order to
intuitively play the puzzle game as they look, but the shape need
not to be restricted thereto. For example, the gear object and the
ball object may take an arbitrary shape such as a polygon like a
triangle, a quadrangle or a star.
[0201] In addition, in this embodiment, a touch panel is used as a
pointing device, but it may be possible to use other pointing
devices like a pen tablet, a touch pad, a computer mouse, and so
on. It should be noted that in a case that other pointing device is
used, an instruction image such as mouse pointer for indicating an
instructed position on the screen need to be displayed.
[0202] In addition, the feature of the game apparatus should not be
limited to the feature of the above-described embodiment. For
example, one LCD is appropriate, or the touch panel may be provided
on each of the two LCDs.
[0203] Although the present invention has been described and
illustrated in detail, it is clearly understood that the same is by
way of illustration and example only and is not to be taken by way
of limitation, the spirit and scope of the present invention being
limited only by the terms of the appended claims.
* * * * *
References