Patent Publication Number: US-8523678-B2

Title: Game apparatus and game program

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     The disclosure of Japanese Patent Application No. 2009-148736, filed Jun. 23, 2009, is incorporated herein by reference. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The current invention relates to a game apparatus and a game program; and more specifically relates to a game apparatus and a game program, which move a character object displayed on a displaying device in response to an operation by a user. 
     2. Description of the Background Art 
     Conventionally, there have been games in which a user is allowed to drive a user object such as an automobile and the like by conducting a steering operation. For example, Japanese Laid-Open Patent Publication No. H7-116353 discloses an automobile race game. In this game disclosed by Japanese Laid-Open Patent Publication No. H7-116353, the automobile is driven in accordance with a steering operation by the user when driving along a straight path or the like. On the other hand, the automobile is driven automatically along a predefined pathway when so called “drifting” in a curve. By this, the user can very easily conduct “drifting”, which is a driving technique that requires high skills. 
     However, the conventional art described above has the following problem. In the conventional art described above, the user object (automobile) automatically moves along a predefined pathway in a situation that requires high-skill driving techniques (during “drifting”). As a result, since the operation by the user is not reflected in a motion of the user object, the user cannot experience a realistic operation and also cannot enjoy the operation. On the other hand, if the user object is moved based solely on the user operation under a situation that requires high-skill driving techniques, the difficulty level for operating the user object increases. Consequently, there will be cases where the user operate becomes difficult, which again leads to a circumstance where the user cannot enjoy the operation. 
     SUMMARY OF THE INVENTION 
     Therefore the objective of the current invention is to provide a highly entertaining game apparatus and a highly entertaining game program, which allow a user to enjoy an operation without losing a realistic feel for the operation in a game and the like that requires a relatively high level of operation skills. 
     In order to achieve at least one of the above objectives, the following configuration is adopted for the current invention. Reference numerals in parenthesis and supplementary explanations merely describe one instance of a correspondence relationship with later-described embodiments in order to help understand the current invention, hence, they do not limit the scope of the current invention in any way. 
     A game apparatus ( 12 ) according to a first aspect of the current invention performs a game process of moving a user object ( 80 ) within a game space, and includes: operation data acquiring means (S 11 ); target configuring means (S 124 ); moving direction determining means (S 127 ); and moving means (S 13 , S 14 ). The operation data acquiring means acquires operation data ( 201 ) from an input device ( 7 ) operated by a user. By utilizing the operation data, the target configuring means configures a target ( 300 ) within a predetermined range (W in  FIG. 14 ) which is frontward in a forward direction of a course where the user object should move along ( 90  in  FIG. 14 ) and which is defined based on the course. The moving direction determining means determines a moving direction (HA) of the user object based on a position of the user object and a position of the target. The moving means moves the user object toward the moving direction determined by the moving direction determining means. 
     According to the invention described above, the motion of the user object based on the steering operation by the user can be assisted, since the moving direction of the user object is determined based on the position of the target positioned frontward in the forward direction of the course. 
     Additionally, the game apparatus ( 12 ), according to the first aspect of the current invention, may further include input direction calculating means (S 121 ) that calculates an inputted direction (UH) within the game space based on the operation data ( 201 ). In addition, the target configuring means (S 124 ) may configure, by utilizing the inputted direction, the target by changing the position of the target configured in the immediately preceding process. 
     According to the invention described above, the degree of assistance provided to the motion of the user object can be changed in response to the steering operation by the user. 
     Furthermore, the game apparatus ( 12 ) according to the first aspect of the current invention may further include relative position configuring means (S 123 ) that configures, based on the operation data ( 201 ), a relative position (TP) from the center of the course, within the predetermined range defined based on the course (W in  FIG. 14 ). Additionally, the target configuring means (S 124 ) may configure the target to a position that corresponds to the relative position within the predetermined range. 
     According to the invention described above, the target can be configured frontward, when viewed from the user object, in the forward direction of the course. 
     Furthermore, by further utilizing an alteration speed (HS) that indicates the degree of change of the inputted direction (UH), the target configuring means (S 124 ) may change the position of the target (3DTP) configured in the immediately preceding process, and may configure the target by changing the position of the target such that the position of the target is influenced more by the inputted direction when the alteration speed is larger. 
     According to the invention described above, the degree of assistance provided to the motion of the user object can be changed in response to also a speed of the steering operation by the user. 
     Furthermore, the moving direction determining means (S 127 ) may determine a direction, which is calculated based on the inputted direction (e in  FIG. 18 ) and a target direction (j in  FIG. 18 ) which is from the user object ( 80 ) toward the target ( 300 ), as the moving direction (f in  FIG. 18 ). 
     According to the invention described above, the degree of assistance provided to the motion of the user object may be further adjusted. 
     Additionally, the input device ( 7 ) may include sensors ( 701 ,  761 ) that output data ( 202 ) which enables calculation of the inclination of the input device. Furthermore, the operation data ( 201 ) may include data that is outputted from the sensors. 
     According to the invention described above, the steering operation by the user can be detected based on the data that enables calculation of the inclination of the input device. 
     Furthermore, the input device ( 7 ) may include two housings ( 71 ,  77 ). Each of the two housings may include acceleration sensors ( 701 ,  761 ), which are the sensors described above; and the operation data ( 201 ) may include two acceleration data ( 202 ) outputted from each of the acceleration sensors. The input direction calculating means (S 121 ) may calculate an average value of the inclinations of the two housings based on the two acceleration data; and calculate the inputted direction (UH) based on the average value. 
     According to the invention described above, the user can conduct a steering operation by, for example, holding the two housings, one in the right hand and the other in the left hand, and conducting a motion of tilting the two housings. With this, a virtual game can be provided to the user. 
     Furthermore, the input device ( 7 ) may include the acceleration sensors ( 701 ,  761 ) that output acceleration data ( 202 ) which indicates accelerations of the input device. The game apparatus ( 12 ) may further include swing-detecting means (S 131 , S 134 ) that detect a swinging motion applied to the input device based on the acceleration data outputted from the acceleration sensors. The moving means (S 13 , S 14 ) may increase a motion speed of the user object ( 80 ) based on a detection of an applied swinging motion. 
     According to the invention described above, by holding the input device in a hand and conducting a motion that swings the input device, the user can conduct an operation of moving the user object. With this, a virtual game can be provided to the user. 
     Furthermore, a storage medium according to a second aspect of the current invention is a computer-readable storage medium that stores a program which is to be executed by a computer ( 40 ) included in the game apparatus ( 12 ) which performs a game process of moving the user object ( 80 ) in a game space. The above described program stored in the storage medium causes the computer to function as: the operation data acquiring means (S 11 ); the target configuring means (S 124 ); the moving direction determining means (S 127 ); and the moving means (S 13 , S 14 ). The operation data acquiring means acquires the operation data ( 201 ) from the input device ( 7 ) operated by the user. By utilizing the operation data, the target configuring means configures the target ( 300 ) within a predetermined range (W in  FIG. 14 ) which is frontward in the forward direction of the course where the user object should move along ( 90  in  FIG. 14 ) and which is defined based on the course. The moving direction determining means determines the moving direction (HA) of the user object based on the position of the user object and the position of the target. The moving means moves the user object toward a moving direction determined by the moving direction determining means. 
     By this, the motion of the user object based on the steering operation by the user can be assisted, since the moving direction of the user object is determined based on the position of the target positioned frontward in the forward direction of the course. 
     Furthermore, the above described program stored in the storage medium according to the second aspect of the current invention may cause the computer ( 40 ) to further function as the input direction calculating means (S 121 ) that calculates the inputted direction (UH) within the game space based on the operation data ( 201 ). In addition, the target configuring means (S 124 ) may configure, by utilizing the inputted direction, the target by changing the position of the target configured in the immediately preceding process. 
     According to the invention described above, the degree of assistance provided to the motion of the user object can be changed in response to the steering operation by the user. 
     Furthermore, the above described program stored in the storage medium according to the second aspect of the current invention may cause the computer ( 40 ) to further function as the relative position configuring means (S 123 ) that configures, based on the operation data ( 201 ), the relative position (TP) from the center of the course, within the predetermined range defined based on the course (W in  FIG. 14 ). Then, the target configuring means (S 124 ) may configure the target to a position that corresponds to the relative position within the predetermined range. 
     According to the invention described above, the target can be configured frontward, when viewed from the user object, in the forward direction of the course. 
     Furthermore, by further utilizing an alteration speed (HS) that indicates the degree of change of the inputted direction (UH), the target configuring means (S 124 ) may change the position of the target (3DTP) configured in the immediately preceding process, and may configure the target by changing the position of the target such that the position of the target is influenced more by the inputted direction when the alteration speed is larger. 
     According to the invention described above, the degree of assistance provided to the motion of the user object can be changed in response to also a speed of the steering operation by the user. 
     Furthermore, the moving direction determining means (S 127 ) may determine a direction, which is calculated based on the inputted direction (e in  FIG. 18 ) and the target direction (j in  FIG. 18 ) that is from the user object ( 80 ) toward the target ( 300 ), as the moving direction (f in  FIG. 18 ). 
     According to the invention described above, the degree of assistance provided to the motion of the user object may be further adjusted. 
     Additionally, the input device ( 7 ) may further include sensors ( 701 ,  761 ) that output the data ( 202 ) which enables calculation of the inclination of the input device. Furthermore, the operation data ( 201 ) may include the data that is outputted from the sensors. 
     According to the invention described above, the steering operation by the user can be detected based on the data that enables calculation of the inclination of the input device. 
     Furthermore, the input device ( 7 ) may include the two housings ( 71 ,  77 ). Each of the two housings may include the acceleration sensors ( 701 ,  761 ), which are the sensors described above; and the operation data ( 201 ) may include the two acceleration data ( 202 ) outputted from each of the acceleration sensors. The input direction calculating means (S 121 ) may calculate an average value of the inclinations of the two housings based on the two acceleration data; and calculate the inputted direction (UH) based on the average value. 
     According to the invention described above, the user can conduct a steering operation by, for example, holding each of the two housings in the right hand and the left hand respectively, and conducting a motion of tilting the two housings. With this, a virtual game can be provided to the user. 
     Furthermore, the input device ( 7 ) may include the acceleration sensors ( 701 ,  761 ) that output the acceleration data ( 202 ) which indicates accelerations of the input device. The game apparatus ( 12 ) may further include the swing-detecting means (S 131 , S 134 ) that detect a swinging motion applied to the input device based on the acceleration data outputted from the acceleration sensors. The moving means (S 13 , S 14 ) may increase a motion speed of the user object ( 80 ) based on a detection of an applied swinging motion. 
     According to the invention described above, by holding the input device in a hand and conducting a swinging motion on the input device, the user can conduct an operation of moving the user object. With this, a virtual game can be provided to the user. 
     According to the current invention, a highly entertaining game apparatus and a highly entertaining game program, which allow a user to enjoy an operation without losing a realistic feel for the operation in a game and the like that requires a relatively high level of operation skills, are provided. 
     These and other objectives, characteristics, aspects, and advantages of the current invention will be made obvious further by the following detailed description with reference to the attached drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a figure showing a game system  10  which is one embodiment of the current invention; 
         FIG. 2  is a block diagram showing an electrical configuration of the video game system  10  which is one embodiment of the current invention; 
         FIG. 3  is a diagrammatic perspective view of an external configuration of a controller  7 ; 
         FIG. 4  shows an internal structure of a core unit  70 ; 
         FIG. 5  shows an internal structure of a subunit  76 ; 
         FIG. 6  shows an internal configuration of a controller  7 ; 
         FIG. 7  illustrates a state where a game is played by a user who is using the controller  7 ; 
         FIG. 8  shows one example of a game image generated by a game apparatus  12  and displayed on a screen of a monitor  34 ; 
         FIG. 9  shows how the user operates an OBJ  80 ; 
         FIG. 10  also shows how the user operates the OBJ  80 ; 
         FIG. 11  shows a memory map of an external main memory  46 ; 
         FIG. 12  is a flowchart that describes a flow of processes executed by a CPU  40  based on a main process program  101 ; 
         FIG. 13  is also a flowchart that describes a flow of processes executed by the CPU  40  based on the main process program  101 ; 
         FIG. 14  is a figure for describing a handlebars angle determination process; 
         FIG. 15  is also a figure for describing the handlebars angle determination process; 
         FIG. 16  is also a figure for describing the handlebars angle determination process; 
         FIG. 17  is also a figure for describing the handlebars angle determination process; 
         FIG. 18  is also a figure for describing the handlebars angle determination process; 
         FIG. 19  is also a figure for describing the handlebars angle determination process; 
         FIG. 20  is a flowchart that describes a flow of processes executed by the CPU  40  based on the main process program  101 ; 
         FIG. 21  is also a flowchart that describes a flow of processes executed by the CPU  40  based on the main process program  101 ; and 
         FIG. 22  is a figure for describing an object moving process. 
     
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     As shown in  FIG. 1 , a game system  10  which is one embodiment of the current invention includes: a video game apparatus  12  (hereinafter, simply referred as “game apparatus”) and a controller  7 . Although a diagrammatic representation is omitted, the game apparatus  12  of the current embodiment is designed such that it can communicate with a maximum of four controllers ( 7 ). Furthermore, the game apparatus  12  and each of the controllers ( 7 ) are connected via wireless communication. For example, the wireless communication is executed in accordance with Bluetooth (registered trademark) standard, however, wireless communication may also be executed in accordance with other specifications such as infrared light and wireless LAN. 
     The game apparatus  12  includes a housing  14  which has an approximately parallelepiped shape, and a disk slot  16  is provided on the front surface of the housing  14 . An optical disc  18 , which is one example of an information storage medium that stores a game program and the like, is inserted through the disk slot  16 , and the optical disc  18  is mounted on a disk drive  54  (refer  FIG. 2 ) disposed within the housing  14 . An LED and a light guide plate are disposed in the surrounding area of the disk slot  16 , and the LED may be lit up in response to a variety of processes. 
     Furthermore, on the front surface of the housing  14  of the game apparatus  12 , a power button  20   a  and a reset button  20   b  are provided on the upper section, and an eject button  20   c  is provided on the lower section. Moreover, an external memory card connector cover  28  is provided in between the reset button  20   b  and the eject button  20   c  in proximity of the disk slot  16 . An external memory card connector  62  (refer  FIG. 2 ) is provided inside the external memory card connector cover  28 , and an external memory card (hereinafter, simply referred to as “memory card”), which is not diagrammatically represented, is inserted in the external memory card connector  62 . The memory card is used for loading and temporarily storing a game program or the like which is read out from the optical disc  18 , or for saving game data of a game played on this game system  10  (result data or progress data of the game). However, instead of saving the game data on the memory card, an internal memory, such as a flash memory  44  (refer  FIG. 2 ) provided inside of the game apparatus  12 , may be used to save the game data. Furthermore, the memory card may be used as a back-up memory of the internal memory. 
     A generic SD memory card may be used as the memory card, however, other generic memory cards such as a memory stick and a multimedia card (registered trademark) may also be used. 
     An AV connector  58  (refer  FIG. 2 ) is provided on the rear surface of the housing  14  of the game apparatus  12 , and the AV connector  58  is used for connecting the game apparatus  12  to a monitor  34  and a speaker  34   a  via an AV cable  32   a . The monitor  34  and the speaker  34   a  are typically a part of a color television receiver, and the AV cable  32   a  allows a video signal that originated from the game apparatus  12  to be inputted into a video input terminal of the color television, and allows an audio signal to be inputted into an audio input terminal of the color television. Therefore, a game image of, for example, a three dimensional (3D) video game is displayed on a screen of the color television (monitor)  34 , and a stereo game audio, such as a game music or a sound effect, is outputted from right and left speakers  34   a . Furthermore, a marker section  34   b , which includes two infrared LEDs (marker)  340   m  and  340   n , is provided in the periphery of the monitor  34  (in the current embodiment, on the upper side) of the monitor  34 ). This marker section  34   b  is connected to the game apparatus  12  via a power cable  32   b . Therefore, power is provided from the game apparatus  12  to the marker section  34   b . By this, the markers  340   m  and  340   n  produce luminescence, and infrared lights are outputted from each of the markers toward the front of the monitor  34 . 
     Power for the game apparatus  12  is provided from a general AC adaptor (not shown). The AC adaptor is plugged into a standard household wall socket, and the game apparatus  12  converts the household power (commercial power) into a low DC voltage signal suitable for driving the game apparatus  12 . A battery may be used as a power source in another embodiment. 
     With regard to this game system  10 , the user first turns on the power of the game apparatus  12  in order for the user to play a game (or other applications instead of a game); and then the user selects, as appropriate, an optical disc  18  in which a video game program is recorded (or another application desired to be played), resulting in the loading of the optical disc  18  onto the disk drive  54  of the game apparatus  12 . Consequently, the game apparatus  12  starts executing the video game or another application based on a program recorded on the optical disc  18 . The user operates a controller  7  in order to provide input to the game apparatus  12 . The controller  7  includes a core unit  70 , a subunit  76 , and a connection cable  79 , and the core unit  70  and the subunit  76  are connected to each other with the connection cable  79 . For example, the user can start a game or another application by operating a specific operation button provided on the core unit  70 . Furthermore, other than by operating the operation button, the user can cause an animated object (user object) to move in a different direction, or change the user&#39;s viewpoint (camera position) within the 3D game world, by moving the core unit  70  or the subunit  76  themselves. 
       FIG. 2  is a block diagram showing an electrical configuration of the video game system  10  of the current embodiment. Although not shown, each component within the housing  14  is mounted on a printed-circuit board. As shown in  FIG. 2 , a CPU  40  is provided to the game apparatus  12 . This CPU  40  functions as a game processor. A system LSI  42  is connected to the CPU  40 . An external main memory  46 , a ROM/RTC  48 , the disk drive  54 , and an AV IC  56  are connected to the system LSI  42 . 
     The external main memory  46  is used: for storing programs such as a game program and the like; for storing various data; and as a work area and a buffer area of the CPU  40 . The ROM/RTC  48 , which is a so-called boot ROM, is incorporated with a program in order to start up the game apparatus  12 . The ROM/RTC  48  is also provided with a clock circuit for counting time. The disk drive  54  reads out program data, texture data, or the like from the optical disc  18 ; and writes these data onto a later described internal main memory  42   e  or an external main memory  46 , under a control of the CPU  40 . 
     An input/output processor  42   a , a GPU (Graphics Processor Unit)  42   b , a DSP (Digital Signal Processor)  42   c , a VRAM  42   d , and the internal main memory  42   e , are provided to the system LSI  42 . Although not shown, these components are connected to each other by an internal bus. 
     The input/output processor (I/O processor)  42   a  executes transmission and reception of data, and also executes download of data. Transmission and reception, and download of data are described in detail below. 
     The GPU  42   b  forms a part of drawing means, and upon receiving a graphics command (drawing generation order) from the CPU  40 , follows the command and generates game image data. In addition to the graphics command, the CPU  40  also provides the GPU  42   b  with an image-generating program necessary for generating the game image data. 
     Although not shown, the VRAM  42   d  is connected to the GPU  42   b  as described above. The GPU  42   b  accesses the VRAM  42   d  in order to acquire data (image data which is data such as polygon data and texture data) necessary for the GPU  42   b  to execute the drawing generation order. The CPU  40  writes the image data necessary for drawing onto the VRAM  42   d  via the GPU  42   b . The GPU  42   b  forms game image data by accessing the VRAM  42   d.    
     In the current embodiment, a case is described in which the GPU  42   b  generates the game image data. However, in a case in which an arbitrary application other than a game application is executed, the GPU  42   b  generates image data for the arbitrary application. 
     Furthermore, the DSP  42   c  functions as an audio processor, and generates audio data that corresponds to a sound, an audio, and a music, which are then to be outputted from the speaker  34   a . The generation of the audio data by the DSP  42   c  is conducted by using sound data and sound waveform (tone) data, which are stored in the internal main memory  42   e  and the external main memory  46 . 
     As described above, the generated game image data and audio data are read by the AV IC  56 , and are outputted from the monitor  34  and the speaker  34   a  via the AV connector  58 . Therefore, a game screen is displayed on the monitor  34 , and a sound (music) necessary for the game is outputted from the speaker  34   a.    
     Furthermore, connected to the input/output processor  42   a  are: the flash memory  44 , a wireless communication module  50 , and a wireless controller module  52 . Additionally, an expansion connector  60  and the external memory card connector  62  are also connected to the input/output processor  42   a . Moreover, an antenna  50   a  is connected to the wireless communication module  50 , and the antenna  52   a  is connected to the wireless controller module  52 . 
     The input/output processor  42   a  can communicate, via the wireless communication module  50 , with other game apparatuses and various servers connected to a network. However, the input/output processor  42   a  can also communicate directly with other game apparatuses without going through the network. The input/output processor  42   a  periodically accesses the flash memory  44 , and detects whether data (transmission data) that needs to be transmitted to the network exists or not, and if there is such transmission data, this transmission data is transmitted to the network via the wireless communication module  50  and the antenna  50   a . Furthermore, the input/output processor  42   a  receives data (received data) transmitted from other game apparatuses via, the network, the antenna  50   a , and the wireless communication module  50 ; and stores the received data onto the flash memory  44 . However, there are cases in which the received data is discarded without being stored. Furthermore, the input/output processor  42   a  receives data (download data) downloaded from a download server via the network, the antenna  50   a , and the wireless communication module  50 ; and stores the download data onto the flash memory  44 . 
     Moreover, the input/output processor  42   a  receives input data transmitted from the controller  7  via the antenna  52   a  and the wireless controller module  52 ; and (temporary) stores the input data onto a buffer area of the internal main memory  42   e  or the external main memory  46 . The input data is erased from the buffer area after being used by a game process of the CPU  40 . 
     As described above, in the current embodiment, the wireless controller module  52  communicates with the controller  7  in accordance with Bluetooth (registered trademark) standard. 
     Moreover, the expansion connector  60  and the external memory card connector  62  are connected to the input/output processor  42   a . The expansion connector  60  is a connector for an interface, such as USB or SCSI, and can connect to a medium such as an external storage medium, and can also connect to peripheral devices such as other controllers. Furthermore, a LAN cable adaptor may be connected to the expansion connector  60 , and this LAN cable adaptor may be used instead of the wireless communication module  50 . An external storage medium such as a memory card may be connected to the external memory card connector  62 . Therefore, for example, the input/output processor  42   a  can access the external storage medium via the expansion connector  60  and the external memory card connector  62 ; and can save data to, or read data from the external storage medium. 
     Although not described in detail, the power button  20   a , the reset button  20   b , and the eject button  20   c , are disposed on the game apparatus  12  (housing  14 ) as shown in  FIG. 1 . The power button  20   a  is connected to the system LSI  42 . When this power button  20   a  is turned on, power is provided through the AC adaptor which is not diagrammatically represented, to each component of the game apparatus  12 , and the system LSI  42  is set to a normal electricity conducting state mode (normal mode). On the other hand, when the power button  20   a  is turned off, power is provided only to a part of the components of the game apparatus  12 , and the system LSI  42  is set to a mode that suppresses electricity consumption to a minimum necessary level (hereinafter, referred to as “stand-by mode”). In this embodiment, when set to the stand-by mode, the system LSI  42  instructs termination of power supply for components other than the input/output processor  42   a , the flash memory  44 , the external main memory  46 , the ROM/RTC  48 , the wireless communication module  50 , and the wireless controller module  52 . Therefore, this stand-by mode is a mode in which execution of an application by the CPU  40  is not conducted. 
     Although power is provided to the system LSI  42  even in the stand-by mode; electricity consumption is reduced by not providing a clock signal to the GPU  42   b , the DSP  42   c , and the VRAM  42   d , and by preventing these components from driving. 
     Although not shown, a fan is provided inside the housing  14  of the game apparatus  12 , in order to discharge heat generated from ICs such as the CPU  40  and the system LSI  42 . The fan is also stopped in the stand-by mode. 
     However, when the user does not intend to use the stand-by mode, by applying a setting that does not use the stand-by mode, supply of power to all circuit components is completely terminated when the power button  20   a  is turned off. 
     Furthermore, switching between the normal mode and the stand-by mode can also be conducted through remote operation by switching on/off a power switch  72   h  (refer  FIG. 3 ) provided to the controller  7 . When the remote operation is not conducted, a setting that does not supply power to the wireless controller module  52  in the stand-by mode may be applied. 
     The reset button  20   b  is also connected to the system LSI  42 . When the reset button  20   b  is pressed, the system LSI  42  restarts a start-up program of the game apparatus  12 . The eject button  20   c  is connected to the disk drive  54 . When the eject button  20   c  is pressed, the optical disc  18  is discharged from the disk drive  54 . 
     &lt;Controller  7 &gt; 
     The controller  7  will be described below with reference to  FIG. 3  to  FIG. 6 .  FIG. 3  is a diagrammatic perspective view showing the external configuration of the controller  7 . 
     As shown in  FIG. 3 , the controller  7  includes the core unit  70 , the subunit  76 , and the connection cable  79 ; and the core unit  70  and the subunit  76  are connect to each other with the connection cable  79 . The core unit  70  includes a housing  71 , and the housing  71  is provided with a plurality of operation sections  72 . On the other hand, the subunit  76  includes a housing  77 , and the housing  77  is provided with a plurality of operation sections  78 . 
     A connector  791  provided at one end of the connection cable  79 , and the other end of the connection cable  79  is statically connected to the subunit  76 . The connector  791  of the connection cable  79  is engaged with the connector  73  (refer  FIG. 4 ) provided on the rear surface of the core unit  70 , hence, the core unit  70  and the subunit  76  are connected via the connection cable  79 . 
     The core unit  70  includes a housing  71  formed, for example, by plastic molding. The housing  71  has an approximately parallelepiped shape, and has an overall size small enough for being held by one hand of an adult or a child. 
     A cross key  72   a , which is direction-instructing means, is provided on the top surface of the housing  71 . This cross key  72   a  is a cross-shaped four-directional push switch. Operation sections are disposed on each of the four projecting portions of the cross-shape at 90° intervals, and each of the four operation sections corresponds to four directions (up, down, right, and left). By having the user hold down one operation section of the cross key  72   a , either one direction of, up, down, right, or left, is selected. For example, by operating the cross key  72   a , the user can give an instruction about a moving direction of a user character or the like that appears in a virtual game world, or give an instruction about a moving direction of a cursor. A joystick, which is capable of giving instructions in a 360° range direction, may be provided instead of the cross key  72   a.    
     A plurality of operation buttons  72   b  to  72   g  are provided on the side toward the rear surface from the cross key  72   a , on the top surface of the housing  71 . The operation buttons  72   b  to  72   g  are operation sections that output operation signals assigned to each of the operation buttons  72   b  to  72   g , by having the user hold down a button head section. For example, functions such as a No.  1  button, a No.  2  button, and an A button, are assigned to operation buttons  72   b  to  72   d , respectively. Furthermore, functions such as a minus button, a home button, and a plus button, are assigned to operation buttons  72   e  to  72   g , respectively. Various functions are assigned to these operation buttons  72   b  to  72   g  depending on a game program executed by the game apparatus  12 . 
     Furthermore, the power switch  72   h  is provided on the side toward the front surface from the cross key  72   a , on the top surface of the housing  71 . The power switch  72   h  is an operation section for turning on/off the power of the game apparatus  12  by remote control. 
     Moreover, a plurality of LEDs  702  are provided on the side toward the rear surface from the operation button  72   c , on the top surface of the housing  71 . Here, a controller  7  is provided with a controller type (number) in order to be distinguished from other controllers  7 . In one instance, the LEDs  702  are used to notify the user about the above described controller type currently assigned to a controller  7 . Specifically, among the plurality of LEDs  702 , an LED that corresponds to the controller type lights up, when transmission data is transmitted from the core unit  70  to the game apparatus  12 . 
     Furthermore, sound holes are formed on the top surface of the housing  71  in between the operation button  72   b  and the operation button  72   f , in order to release outwards a sound that originated from a later described speaker  706  (refer  FIG. 4 ). 
     Additionally, an operation button (not shown) is provided on the lower surface of the housing  71  in a position where an index finger or a middle finger of the user is positioned when the core unit  70  is held by the user. This operation button is an operation section that functions as, for example, a B button; and used, for example, as a trigger switch in a shooting game. 
     Furthermore, an image pickup device  743  (refer  FIG. 6 ) that consists a part of an imaging information calculation section  74  (refer  FIG. 6 ) is provided on the front surface of the housing  71 . The imaging information calculation section  74  is a system that analyzes image data that have been taken by the core unit  70 , determines a location that has the highest brightness from this analysis, and detects the center of gravity, size, and the like of this location. For example, since the imaging information calculation section  74  analyzes image data sampled at a sampling cycle of about a maximum of 200 frame/second, the imaging information calculation section  74  is capable of tracking and analyzing a relatively high-speed motion of the core unit  70 . The detailed configuration of this imaging information calculation section  74  is described later. Furthermore, the connector  73  (refer  FIG. 4 ) is provided on the rear surface of the housing  71 . The connector  73  is, for example, a 32-pin edge connector, and is used for engaging and connecting to the connector  791  of the connection cable  79 . 
     An internal structure of the core unit  70  will be described below with reference to  FIG. 4 .  FIG. 4  is a diagrammatic perspective view of a state in which an upper case of the core unit  70  (a part of housing  71 ) is removed. 
     As shown in  FIG. 4 , a substrate  700  is fixed inside the housing  71 ; and the operation buttons  72   a  to  72   h , an acceleration sensor  701 , the LEDs  702 , the speaker  706 , an antenna  754 , and the like are provided on an upper main surface of the substrate  700 . These components are connected to a microcomputer  751  (refer  FIG. 6 ) and the like by wirings (not shown) formed on the substrate  700  and the like. By providing the acceleration sensor  701  at a peripheral section of the substrate  700  rather than at a central section, a rotation of the core unit  70  can be decided with an excellent sensitivity from detected acceleration data by a predetermined calculation, since an acceleration included in a centrifugal force component is detected together with a directional change of a gravitational acceleration in response to a rotation about a longitudinal direction axis of the core unit  70 . 
     On the other hand, the imaging information calculation section  74  and the connector  73  are attached to a lower main surface of the substrate  700 . 
     The subunit  76  will be described below with reference to  FIG. 3  and  FIG. 5 .  FIG. 5  is a diagrammatic perspective view showing a state in which an upper case of the subunit  76  (a part of the housing  77 ) is removed. 
     As shown in  FIG. 3 , the subunit  76  has the housing  77  formed, for example, by plastic molding. The housing  77  has an overall size small enough for being held by one hand of an adult or a child. 
     A stick  78   a , which is direction-instructing means, is provided on the top surface of the housing  77 . The stick  78   a  is an operation section, and by tilting down the stick which projects out from the top surface of the housing  77  and is capable of being tilted down, the stick outputs an operation signal in response to the direction where the stick is tilted down. For example, by tilting down the stick tip to an arbitrary direction chosen from a 360° range, the user can point to an arbitrary direction or position; and can give an instruction about a moving direction of a user character or the like that appears in a virtual game world, or give instructions about a moving direction of a cursor. A cross key may be provided instead of the stick  78   a.    
     Operation buttons  78   d  and  78   e  are provided on the front surface of the housing  77  of the subunit  76  (refer  FIG. 5 ). The operation buttons  78   d  and  78   e  are operation sections that output operation signals assigned respectively to each of the operation buttons  78   d  and  78   e , as a result of the user holding down a button head section. For example, functions such as an X button and a Y button are assigned to operation buttons  78   d  and  78   e  respectively. Depending on a game program executed by the game apparatus  12 , various functions are assigned to these operation buttons  78   d  and  78   e.    
     As shown in  FIG. 5 , a substrate is fixed inside the housing  77 , and the stick  78   a , the acceleration sensor  761 , and the like are provided on an upper main surface of the substrate. These components are connected to the connection cable  79  via wirings (not shown) formed on the substrate and the like. 
     An internal configuration of the controller  7  will be described below with reference to  FIG. 6 .  FIG. 6  is a block diagram showing the configuration of the controller  7 . 
     As shown in  FIG. 6 , the core unit  70  includes: the operation sections  72 , the imaging information calculation section  74 , the acceleration sensor  701 , the speaker  706 , a sound IC  707 , an amplifier  708 , and a communication section  75  that is disposed inside of the core unit  70 . Furthermore, the subunit  76  includes the operation sections  78  and the acceleration sensor  761 , both of which are described above; and the subunit  76  is connect to the microcomputer  751  via the connection cable  79 , the connector  791 , and the connector  73 . 
     The imaging information calculation section  74  includes: an infrared filter  741 , a lens  742 , an image pickup device  743 , and an image processing circuit  744 . Among the incoming light from the front surface of the core unit  70 , only infrared light is allowed to pass through the infrared filter  741 . The lens  742  converges the infrared light that is transmitted through the infrared filter  741 , and outputs the converged infrared light toward the image pickup device  743 . The image pickup device  743  is a solid image pickup element, for example, such as a CMOS sensor or a CCD, and takes an image of the infrared light that is converged by the lens  742 . Therefore, the image pickup device  743  generates image data by imaging only the infrared light that passed through the infrared filter  741 . The image data generated by the image pickup device  743  is processed by the image processing circuit  744 . Specifically, the image processing circuit  744 : processes the image data obtained from the image pickup device  743 ; senses areas of the image which have high brightness; and outputs, process result data indicating a detection result of positional coordination and area size of such areas, to the communication section  75 . The imaging information calculation section  74  is fixed on the housing  71  of the core unit  70 , and the imaging direction of the imaging information calculation section  74  can be altered by changing the direction of the housing  71  itself. A signal in response to the position and the motion of the core unit  70  can be obtained based on the process result data outputted from this imaging information calculation section  74 . 
     In the current embodiment, the core unit  70  includes the acceleration sensor  701 . Here, the core unit  70  preferably includes an acceleration sensor  701  adapted for three axes orthogonal to each other (X-axis, Y-axis, and Z-axis of  FIG. 4 ). Furthermore, the subunit  76  preferably includes an acceleration sensor  761  adapted for three axes (X-axis, Y-axis, and Z-axis of  FIG. 5 ). The three-axis acceleration sensors  701  and  761  sense linear accelerations in three directions, which are the X-axis direction, the Y-axis direction, and the Z-axis direction. Furthermore, in another embodiment, two-axis acceleration detection means that senses linear accelerations only along each of the X-axis direction and the Y-axis direction (or a direction of other pairs) may be used depending on the type of control signal used in a game process. Moreover, one-axis acceleration detection means that senses a linear acceleration only along an X-axis direction (or along another direction) may be used. For example, the acceleration sensors  701  and  761  of three-axis, two-axis, or one-axis type, may be a type available from Analog Devices, Inc., or STMicroelectronics N.V. The acceleration sensors  701  and  761  may be an electrostatic capacitance type (capacitance-coupling type) based on silicon micro-machined MEMS (Micro Electro Mechanical Systems) technology. Furthermore, the acceleration sensors  701  and  761  of three-axis, two-axis, or one-axis, may be provided from a suitable technology of known acceleration detection means (e.g. piezoelectric method or piezoresistance type method) or from another suitable technology that might be developed in the future. 
     As understood by anyone skilled in the art, such acceleration detection means that is used in acceleration sensors  701  and  761  can only sense acceleration (linear acceleration) along a straight line which corresponds to each axis of the acceleration sensor. Thus, direct outputs from the acceleration sensors  701  and  761  are signals indicating linear acceleration (static or dynamic) along each axis. Therefore, the acceleration sensors  701  and  761  cannot directly sense physical properties such as a motion along a non-linear (e.g. circular arc shape) pathway, a rotation, a rotational motion, an angular displacement, the inclination, the position, the attitude, and the like. 
     However, by reading the description in this specification, anyone skilled in the art can easily understand that additional information regarding the core unit  70  and the subunit  76  can be presumed or calculated from additionally processing acceleration signals outputted from each of the acceleration sensors  701  and  761 . For example, when a static acceleration (gravitational acceleration) is sensed, inclinations against the gravity vector for each of the objects (core unit  70  and subunit  76 ) can be presumed from a calculation using, an inclination angle and the sensed acceleration, which are both obtained by outputs from the acceleration sensors  701  and  761 . As described above, inclinations, attitudes and positions of the core unit  70  and the subunit  76  can be determined by using a combination of the acceleration sensors  701  and  761  and the microcomputer  751  (or another processor). Similarly, when the core unit  70  having the acceleration sensor  701 , and the subunit  76  having the acceleration sensor  761 , for example, are accelerated dynamically by the user&#39;s hands, the core unit  70  and the subunit  76  can calculate or presume their various motions and/or positions, by processing each of the acceleration signals generated by the acceleration sensors  701  and  761 . In an alternate embodiment, the acceleration sensors  701  and  761  each may include an embedded signal processing apparatus or another type of process apparatus for, before outputting a signal to the microcomputer  751 , conducting a desired process on the acceleration signal outputted from the built-in acceleration detection means. For example, when the acceleration sensor is designed for detecting a static acceleration (e.g. gravitational acceleration), the embedded or dedicated process apparatus may be designed for converting sensed acceleration signals into each of the corresponding inclination angle. Data that represent accelerations sensed by the acceleration sensors  701  and  761  are outputted to the communication section  75 . 
     In the description above, motions of core unit  70  and subunit  76  are each detected by using acceleration represented by acceleration data in directions of the three axes obtained from the acceleration sensor  701  and  761  respectively. However, each of the motions of the core unit  70  and the subunit  76  may be detected by using data outputted from another type of sensor fixed in the core unit  70  and the subunit  76  respectively. For example, data outputted from: a sensor (acceleration sensor, inclination sensor) that outputs data in response to the inclination of the core unit  70  against the gravity direction (hereinafter, simply referred to as “inclination”); a sensor (magnetic sensor) that outputs data in response to a direction of the core unit  70 ; a sensor (gyro sensor) that outputs data in response to a rotational motion of the core unit  70 ; and the like, may be used. Similarly, data outputted from: a sensor (acceleration sensor, inclination sensor) that outputs data in response to the inclination of the subunit  76  against the gravity direction (hereinafter, simply referred to as “inclination”); a sensor (magnetic sensor) that outputs data in response to a direction of the subunit  76 ; a sensor (gyro sensor) that outputs data in response to a rotational motion of the subunit  76 ; and the like, may be used. Furthermore, not only those capable of detecting motions in multiple axes, but also those capable of detecting motions in one axis can be used as the acceleration sensor and the gyro sensor. Additionally, a more precise detection of motions may be conducted by combining any of the above-described sensors. A camera fixed on the core unit  70  (e.g. the imaging information calculation section  74 ) can also be used as any of the sensors described above. In this case, since an image taken by the camera will change in response to a motion of the core unit  70 , the motion of the core unit  70  can be decided by analyzing this image. Furthermore, by disposing a camera to the subunit  76  that is similar to the camera fixed on the core unit  70  (e.g. the imaging information calculation section  74 ), a motion of the subunit  76  can be decided by a similar method. 
     The above-described sensor may be provided separately on the exterior of the controller  7  depending on the type of the sensor. The motions of the core unit  70  and the subunit  76  can be decided by, as one example, taking an image covering the whole body of the controller  7  (the core unit  70  and the subunit  76 ) from the exterior of the controller  7  by a camera as a sensor, and analyzing an image of the controller  7  in the taken image. Moreover, a system which allows a cooperative functioning of two units, one unit fixed in the controller  7  and the other unit separately provided on the exterior of the controller  7 , may also be used. In one example of this system, a light-emitting unit (the marker section  34   b  in  FIG. 1 ) is separately provided on the exterior of the controller  7 , and cameras fixed to both the core unit  70  and the subunit  76  (e.g. the imaging information calculation section  74 ) photograph a light from the light emitting unit. The motions of the core unit  70  and the subunit  76  can be decided by analyzing the images taken by these cameras. Furthermore, listed as another example is a system in which a magnetic field generator is separately provided on the exterior of the controller  7  and magnetic sensors are fixed to the core unit  70  and the subunit  76  respectively. 
     The communication section  75  includes: the microcomputer  751 , a memory  752 , a wireless module  753 , and the antenna  754 . The microcomputer  751  controls the wireless module  753  which wirelessly transmits transmission data, by using the memory  752  as a storage area during processing. Furthermore, the microcomputer  751  controls a behavior of the sound IC  707  in response to data from the game apparatus  12  received by the wireless module  753  via the antenna  754 . The sound IC  707  processes sound data and the like transmitted from the game apparatus  12  via the communication section  75 . 
     Outputted to the microcomputer  751  are: operation signals (core key data) from the operation sections  72  that is provided in the core unit  70 , an acceleration signal (core acceleration data) from the acceleration sensor  701 ; and process result data from the imaging information calculation section  74 . Furthermore, operation signals (sub key data) from the operation sections  78  that is provided in the subunit  76 , and an acceleration signal (sub acceleration data) from the acceleration sensor  761 , are outputted to the microcomputer  751  via the connection cable  79 . The microcomputer  751  temporarily stores each of the inputted data (core key data, sub key data, core acceleration data, sub acceleration data, and process result data) onto the memory  752  as transmission data to be transmitted to the game apparatus  12 . A wireless transmission from the communication section  75  to the game apparatus  12  is conducted periodically at a predetermined time interval. Since a game process is generally performed at a cycle unit of 1/60 sec., it is necessary to collect and transmit data in a shorter cycle unit. Specifically, a process unit of the game is 16.7 ms ( 1/60 sec.), and a transmission interval of the communication section  75  that adopts Bluetooth (registered trademark) is 5 ms. At the time of transmitting to the game apparatus  12 , the microcomputer  751  outputs, the transmission data stored in the memory  752  as a series of operation information, to the wireless module  753 . Then, the wireless module  753  modulates a carrier wave having a predetermined frequency by utilizing the operation information; and radiates the resultant weak radio signal from the antenna  754 ; based on, for example, Bluetooth (registered trademark) technology. Thus, the core key data provided to the core unit  70  from the operation sections  72 ; the sub key data provided to the subunit  76  from the operation sections  78 ; the core acceleration data provided to the core unit  70  from the acceleration sensor  701 ; the sub acceleration data provided to the subunit  76  from the acceleration sensor  761 ; and the process result data provided from the imaging information calculation section  74 ; are all outputted as a weak radio signal from the core unit  70 . Then, the weak radio signal is received by the wireless controller module  52  of the game apparatus  12 , and the weak radio signal is demodulated and decoded in the game apparatus  12 . This is how the CPU  40  of the game apparatus  12  can acquire the series of operation information (core key data, sub key data, core acceleration data, sub acceleration data, and process result data). Then, the CPU  40  of the game apparatus  12  performs a game process based on, the acquired operation information and the game program. When Bluetooth (registered trademark) technology is adopted to the communication section  75 , the communication section  75  may also include a function for receiving transmission data that is wirelessly transmitted from other devices. 
     &lt;Game Playing Method&gt; 
       FIG. 7  illustrates a state where a game is played by the user who is using the controller  7 . As shown in  FIG. 7 , when playing a game with the video game system  10  by using the controller  7 , the user holds the core unit  70  in one hand (e.g. right hand) and holds the subunit  76  in the other hand (e.g. left hand). 
     As described above, the inclination, the attitude, the position, and the motion (transporting motion, swinging motion, and the like), of the core unit  70  can be determined by using an output (core acceleration data) from the acceleration sensor  701  that is provided in the core unit  70 . Thus, as a result of the user moving his/her hand holding the core unit  70 , upward, downward, rightward, leftward, and the like; the core unit  70  functions as operation input means that responds to the user&#39;s hand motion and direction. Furthermore, as described above, the inclination, the attitude, the position, and the motion (transporting motion, swinging motion, and the like) of the subunit  76  can be determined by using an output (sub acceleration data) from the acceleration sensor  761  that is provided in the subunit  76 . Thus, as a result of the user moving his/her hand holding the subunit  76  upward, downward, rightward, leftward, and the like; the subunit  76  functions as operation input means that responds to the user&#39;s hand motion and direction. Accordingly, motion of both hands can be inputted by having the user holding the two units, one in each hand, and operating the two units by moving both hands. 
     A mode, in which the controller  7  and the game apparatus  12  are connected by wireless communication, is described above. However, the controller  7  and the game apparatus  12  may also be electrically connect by a cable. In this case, the cable connected to the core unit  70  is also connected to a connection terminal of the game apparatus  12 . 
     Furthermore, among the core unit  70  and the subunit  76  which are a part of the controller  7 , the communication section  75  is provided only to the core unit  70  in the description above. However, a communication section that transmits the transmission data to the game apparatus  12  via wireless transmission (or wired communication) may be provided to the subunit  76 . Moreover, communication sections may be provided to both the core unit  70  and the subunit  76 . For example, communication sections that are provided in both the core unit  70  and the subunit  76  may each wirelessly transmit transmission data to the game apparatus  12 ; or after the communication section  75  of the core unit  70  receives transmission data from the communication section of the subunit  76  as a wireless transmission for the core unit  70 , the communication section  75  of the core unit  70  may wirelessly transmit, the transmission data of the subunit  76  together with the transmission data of the core unit  70 , to the game apparatus  12 . In this case, there is no need for a connection cable  79  that electrically connect the core unit  70  and the subunit  76 . 
     &lt;General Outline of a Game Process&gt; 
     A general outline of a game process executed by the game apparatus  12  will be described below. 
       FIG. 8  shows one example of a game image generated by the game apparatus  12  and displayed on a screen of the monitor  34 . For the current embodiment, described is a case where a race game is executed, and in this race game, a character object  80  (hereinafter, simply referred to as OBJ  80 ), which a bicycle with a human on the bicycle, runs in a game space in response to an operation by the user. In  FIG. 8 , objects of opponents and the like are not diagrammatic represented in order to simplify the description. The user operates a movement amount (motion speed) and a moving direction of the OBJ  80 , by operating the controller  7 . 
     In the following, an operation method of the OBJ  80  is described with reference to  FIG. 9  and  FIG. 10 . In  FIG. 9  and  FIG. 10 , user&#39;s hands are not diagrammatic represented in order to simplify the description. In addition, XYZ coordination system of the core unit  70  (refer  FIG. 4 ) and XYZ coordination system of the subunit  76  (refer  FIG. 5 ) are indicated in  FIG. 9  and  FIG. 10  for convenience of the description. 
     First, an operation method regarding the moving direction of the OBJ  80  is described with reference to  FIG. 9 . The user, for example, holds the core unit  70  in the right hand and the subunit  76  in the left hand; and then holds the core unit  70  and the subunit  76  horizontally. More specifically, the user holds the core unit  70  such that the positive direction of the Y-axis of the core unit  70  points toward the gravity direction; and similarly, holds the subunit  76  such that the positive direction of the Y-axis of the subunit  76  points toward the gravity direction. Then, as shown in  FIG. 9 , if the user intends to point the moving direction of the OBJ  80  toward the left, the user tilts the core unit  70  and the subunit  76  toward a leftward direction using the Z-axis as an axis of rotation. Alternatively, if the user intends to point the moving direction of the OBJ  80  toward the right, the user tilts the core unit  70  and the subunit  76  toward a rightward direction. Thus, the user tilts the core unit  70  and the subunit  76  in the leftward direction in order to steer handlebars to the left and turn the OBJ  80  toward the left (refer  FIG. 9 ); and tilts the core unit  70  and the subunit  76  in the rightward direction in order to steer the handlebars to the right and turn the OBJ  80  toward the right (hereinafter, this operation is referred to as a steering operation). In such manner, the user can conduct operations regarding the moving direction of the OBJ  80 . In the description above, as shown in  FIG. 9 , the core unit  70  and the subunit  76  are held horizontally, and the steering operation is conducted by tilting these toward the right or the left. However, the steering operation can be conducted by holding both the core unit  70  and the subunit  76 , or either one of the two, in an upright state (i.e. pointing the negative direction of the Z-axis in the vertical downward direction); and tilting these, or either one of the two, toward the right or the left. Additionally, as described in the following, the moving direction of the OBJ  80  is not determined based solely on the steering operation, but also determined based on other factors. 
     Next, an operation method regarding the movement amount of the OBJ  80  is described with reference to  FIG. 10 . If the user intends to accelerate the movement of the OBJ  80 , for example, the user holds the core unit  70  in the right hand and the subunit  76  in the left hand; and alternately swings the core unit  70  and the subunit  76 . More specifically, as shown in  FIG. 10 , the user swings the core unit  70  and the subunit  76  such that, a state A, in which the core unit  70  is held upright and the subunit  76  is tilted toward the front direction, and a state B, in which the subunit  76  is held upright and the core unit  70  is tilted toward the front direction, are repetitively alternated (hereinafter, this operation is referred to as a pedaling operation). Thus the user can accelerate and move the OBJ  80  by alternately swinging forward the core unit  70  and the subunit  76  as if alternately pressing on the pedals of the bicycle by the feet. Furthermore, the user can greatly accelerate the OBJ  80  by conducting more of this pedaling operation within a per unit of time. In the current embodiment, since the OBJ  80  is a bicycle with a human on the bicycle, the speed of the OBJ  80  gradually reduces during a period when the pedaling operation is not conducted. 
     Although the steering operation and the pedaling operation has been described separately above, the steering operation and the pedaling operation may be conducted simultaneously. Thus, the user may conduct the steering operation by tilting the core unit  70  and the subunit  76  right and left, while conducting the pedaling operation by swinging the core unit  70  and the subunit  76  back and forth. 
     (Process Details of the Game Apparatus) 
     Details about game processes executed by the game apparatus  12  will be described next. 
       FIG. 11  shows a memory map of an external main memory  46 . In the current embodiment, an example, in which the CPU  40  executes a game process by using the external main memory  46 , is described. However, it is not limited to this manner, and the CPU  40  may execute the game process by using the internal main memory  42   e . A game program and image data, stored on the optical disc  18  are loaded on the external main memory  46 . The game program and the image data may be provided to the game apparatus  12 , not just from the optical disc  18 , but also from other arbitrary computer readable storage medium, or a network of wired or wireless communication. As shown in  FIG. 11 , the external main memory  46  includes a program storage area  100  and data storage area  200 . 
     Stored in the program storage area  100  is a game program such as a main process program  101  or the like which executes the processes in a flowchart shown in  FIG. 12 , which will be described later, and the like. 
     Stored in the data storage area  200  are data such as, operation data  201 , user handlebars data  203 , steering speed data  204 , target position data  205 , course data  206 , target coordination data  207 , object forward direction data  208 , system handlebars angle data  209 , user handlebars angle data  210 , handlebars angle data  211 , first flag data  212 , second flag data  213 , movement amount data  214 , object coordination data  215 , and the like. 
     The operation data  201  is data acquired from the controller  7 , and includes acceleration data  202 . 
     The acceleration data  202  are the core acceleration data indicating the acceleration of the core unit  70  and the sub acceleration data indicating the acceleration of the subunit  76 , which are both described above. The wireless controller module  52  included in the game apparatus  12  receives acceleration data included in operation data (input data) transmitted from the controller  7  per every predefined cycle (e.g. every 1/200 second). The received acceleration data is stored in a buffer which is not diagrammatic represented, and which is included in the wireless controller module  52 . Then, the acceleration data stored in the buffer described above is read out per every single frame which is a game process cycle, (e.g. every 1/60 second); and the acceleration data  202  in the external main memory  46  is updated. 
     As described above, since the cycle for receiving the operation data and the process cycle are different, operation data received at a plurality of time points are described in the buffer described above. In a process at step  121  which is described in the following with reference to  FIG. 13 , as one example, among the operation data receive at a plurality of time points, the latest operation data is used. Additionally, in processes at step  131  and  134 , which are described in the following with reference to  FIG. 20 , among the operation data received at a plurality of time points, as one example, the most recent three operation data are used. Furthermore, in a process flow described in the following, although the acceleration data  202  is updated per every single frame which is the game process cycle; the acceleration data  202  may be updated in another process cycle. 
     The user handlebars data  203  is data indicating a numerical value UH which is not less than −1 and not more than 1, and which is calculated based on the steering operation by the user described in  FIG. 9 . As discussed in greater detail below, when the steering operation by the user indicates: straight ahead, then UH becomes 0; a left turn, then UH becomes a negative value; a right turn, then UH becomes a positive value. Furthermore, the user handlebars data  203  is data indicating the latest UH and the UH immediately prior to the latest UH which are respectively calculated from processes at the two most recent frames (most recent two game process cycles). 
     The steering speed data  204  is data indicating a numerical value HS which is not less than 0 and not more than 1, and which represents an absolute value of the difference between the latest UH and the UH immediately prior to the latest UH indicated by the user handlebars data  203 . HS is corrected to become a numerical value that falls within a range from 0 to 1, and is corrected as HS=1 when HS exceeds 1. 
     The target position data  205  is data indicating a numerical value TP which is not less than −1 and not more than 1, and which represents a position of a target  300  that will be described later. 
     The course data  206  is data for specifying a pathway in which the OBJ  80  runs. Specifically, the course data  206  is data that indicates: a course vector  90  (refer  FIG. 14  and the like) which represents the three-dimensional shape of the pathway (uphill, downhill, straight, right turn, left turn, and the like), and a direction where the OBJ  80  should proceed (hereinafter, referred to as course forward direction); a width of the pathway; and the like. 
     The target coordination data  207  is data indicating a three-dimensional coordination 3DTP which represents the position of the target  300  and which is a coordination on the pathway specified based on the course data  206 . The target  300  is a point positioned frontward, when viewed from the OBJ  80 , in the course forward direction. 
     The object forward direction data  208  is data indicating an angle that represents the forward direction of the OBJ  80 . 
     The system handlebars angle data  209  is data indicating an angle SHA which is calculated based on the object forward direction data  208 , the object coordination data  215 , and the target coordination data  207 . 
     The user handlebars angle data  210  is data obtained by converting the user handlebars data  203 , which is not less than −1 and not more than 1 and which indicates the numerical value UH, into data which indicate an angle UHA. 
     The handlebars angle data  211  is data indicating an angle HA which represents the moving direction of the OBJ  80 , and which is calculated based on the user handlebars angle data  210  and the system handlebars angle data  209 . 
     The first flag data  212  is data indicating Flag  1  which is used for judging whether or not the user is conducting the pedaling operation (refer  FIG. 10 ). 
     Similarly, the second flag data  213  is data indicating Flag  2  which is used for judging whether or not the user is conducting the pedaling operation. 
     The movement amount data  214  is data indicating a movement amount per unit of time (motion speed) of the OBJ  80  determined based on the pedaling operation by the user. 
     The object coordination data  215  is data indicating a three-dimensional coordination which represents a position of the OBJ  80  after a movement and which is calculated based on the handlebars angle data  211  and the movement amount data  214 . 
     (Main Process) 
     With reference to the flowcharts in  FIG. 12 ,  FIG. 13 ,  FIG. 20 , and  FIG. 21 , flows of processes execute by the CPU  40  based on the main process program  101  will be described in the following. In  FIG. 12 ,  FIG. 13 ,  FIG. 20 , and  FIG. 21 , each step executed by the CPU  40  is abbreviated as “S”. 
     First, when the execution of the game program starts, the CPU  40  executes an initial setting process at step  10  in  FIG. 12 . Each of the data in the external main memory  46  is configured to initial values by the initial setting process. Specifically, by the initial setting process, the OBJ  80  is placed at the starting point in the game space, and each of the data in the external main memory  46  are configured with initial values indicating this state. Furthermore, by the initial setting process, an initial value for Flag  1  which is indicated by the first flag data  212 , and an initial value for Flag  2  which is indicated by the second flag data  213 , are both configured as “off”. 
     Next, at step  11 , the CPU  40  updates the operation data  201  in the external main memory  46 . As already described, the operation data  201  includes: the core acceleration data indicating the most recent three accelerations of the core unit  70 ; and the sub acceleration data indicating the most recent three accelerations of the subunit  76 . 
     Next, at step  12 , the CPU  40  performs a handlebars angle determination process. The handlebars angle determination process at step  12  will be described in the following with reference to  FIG. 13 . 
     First, at step  121 , the CPU  40  calculates the user handlebars data  203  and stores the user handlebars data  203  in the external main memory  46 . A specific description is given with reference to  FIG. 9  in the following. First the CPU  40  calculates the inclination angle in the left-right direction of the core unit  70  against the gravity direction, by using the latest core acceleration data included in the operation data  201  and updated at step  11 . This calculation can be conducted, for example, by using static accelerations, which are included in the latest core acceleration data, along the Y-axis and the X-axis. Since an acceleration detected when the core unit  70  is motionless is a gravitational acceleration, the inclination angle of the core unit  70  can be calculated from the Y-axis component and the X-axis component of an acceleration during when the core unit  70  is assumed not to be moving very much. By applying this method, the inclination of the core unit  70  in the left-right direction can be calculated even when the core unit  70  is tilted toward, for example, the front direction as shown in  FIG. 9 . Similarly, the CPU  40  calculates the inclination angle in the left-right direction of the subunit  76  against the gravity direction, by using the latest sub acceleration data included in the operation data  201  updated at step  11 . In the example in  FIG. 9 , the inclination angle of the core unit  70  is −20°; and the inclination angle of the subunit  76  is −40°. Next, the CPU  40  calculates an average value of the calculated inclination angle of the core unit  70  and the calculated inclination angle of the subunit  76  (hereinafter, referred to as handlebars average angle). The handlebars average angle is −30° in the example in  FIG. 9 . Next, the CPU  40  converts the handlebars average angle into the user handlebars data  203  indicating the numerical value UH which is not more than −1 and not more than 1. Specifically, when the handlebars average angle is 0°, this angle is converted into user handlebars data  203  indicating UH=0; when the handlebars average angle is −60°, this angle is converted into user handlebars data  203  indicating UH=−1; and when the handlebars average angle is 60°, this angle is converted into user handlebars data  203  indicating UH=1. Since the handlebars average angle is −30° in the example in  FIG. 9 , this angle is converted into user handlebars data  203  indicating UH=−0.5. At this point, if the handlebars average angle is a value smaller than −60°, the handlebars average angle is corrected to be −60°; and if the handlebars average angle is a value larger than 60°, the handlebars average angle is corrected to be 60°. In such manner, the handlebars average angle is adjusted to be a value not less than −60° and not more than 60°. The adjustment of the handlebars average angle is not limited only to this range, and, for example, may be adjusted to be a value not less than −45° and not more than 45°. In such a case, when the handlebars average angle is −45°, this angle is converted into user handlebars data  203  indicating UH=−1; and when the handlebars average angle is 45°, this angle is converted into user handlebars data  203  indicating UH=1. 
     Here, while also described later with reference to  FIG. 20 , dynamic accelerations of the core unit  70  and the subunit  76  are used in order to detect the pedaling operation (refer  FIG. 10 ) by the user. Thus, the pedaling operation is detected based on acceleration data when the core unit  70  and the subunit  76  are assumed to be moving. Since the dynamic acceleration (acceleration based on motion) and the static acceleration (gravitational acceleration) cannot be separated out from the acceleration data, the acceleration data when the core unit  70  and the subunit  76  are assumed not to be moving very much is defined as the static acceleration, and the acceleration data when the core unit  70  and the subunit  76  are assumed to be moving extensively is defined as the dynamic acceleration. For example, acceleration data, obtained when accelerations of the core unit  70  and the subunit  76  settle within a predefined fluctuation range for a predefined number of times (e.g. three times) of frame processing, can be used as the static accelerations (Y-axis component and X-axis component of the gravitational acceleration) of the core unit  70  and the subunit  76  for calculating the above described user handlebars data  203 . 
     Next, at step  122 , the CPU  40  calculates the steering speed data  204 , and stores the steering speed data  204  in the external main memory  46 . Specifically, first, the CPU  40  acquires, from the external main memory  46 , the latest UH calculated by the process at the present step  121 , and the immediately preceding UH calculated by the process at the immediately preceding step  121 . Then, the CPU  40  calculates the difference between the two acquired UHs, obtains the absolute value of this difference, and defines this absolute value as HS. HS is adjust to become a numerical value that falls within a range from 0 to 1, and is corrected as HS=1 when HS exceeds 1. 
     Next, at step  123 , the CPU  40  calculates the target position data  205 , and stores the target position data  205  in the external main memory  46 . A specific description is provided in the following. First, the CPU  40  acquires, from the external main memory  46 : TP calculated by the process at the immediately preceding step  123 ; UH calculated by the process at the present step  121 ; and HS calculated by the process at the present step  122 . Then, the CPU  40  obtains TP (left side of formula 1 described below) that should be calculated by the process at the present step  123 , by assigning the acquire TP, UH, and HS in the right side of the formula 1 described below.
 
 TP=TP +( UH−TP ) HS   (1)
 
Next, the CPU  40  updates the target position data  205  in the external main memory  46  with TP calculated by the present process. TP is adjusted to be a numerical value that falls within a range from −1 to 1, by correcting TP as TP=−1 when TP is smaller than −1 and by correcting TP as TP=1 when TP exceeds 1. By calculating TP as described above: a drastic change can be applied to the position of the target when the user rapidly changes the direction; and conversely, an influence of a minute change of the direction is not reflected so much. Therefore, an operation capable of easily reflecting the user&#39;s intention can be applied to an operation that requires delicate adjusting, particularly when controlling the direction based on acceleration, as in the current embodiment.
 
     Next, at step  124 , the CPU  40  calculates the target coordination data  207  and stores the target coordination data  207  in the external main memory  46 . The target coordination data  207  is data indicating the three-dimensional coordination 3DTP of the target  300 . A specific description of the process at step  124  is provided in the following with reference to  FIG. 14 .  FIG. 14  is a schematic diagram of the game space when viewed from above. As shown in  FIG. 14 , the pathway, in which the OBJ  80  runs, is specified by the course vector  90 , a pathway width W, and the like; and the target  300  is allocated within this pathway. First, the CPU  40  draws a perpendicular line from a position of the OBJ  80  to the course vector  90 ; and calculates a coordination of an intersection point A of this perpendicular line and the course vector  90 . Next, the CPU  40  calculates a coordination of point B which is located frontward of the intersection point A in the course direction for a predefined distance L. Next, the CPU  40  obtains a line segment N. The line segment N is a line segment which orthogonally intersects at the center thereof with the course vector  90  at point B, and which reaches both side ends of the pathway, and which length is equal to the pathway width W. Next, the CPU  40  acquires the latest TP updated at step  123  from the external main memory  46 . Next, the CPU  40  calculates a coordination on the line segment N corresponding to the acquired TP, and defines the calculated coordination as 3DTP. Specifically, when TP=0, 3DTP is at the coordination of point B; when TP=−1, 3DTP is at the coordination of point C which is on the left side end of the pathway; and when TP=1, 3DTP is at the coordination of point D which is on the right side end of the pathway. In the example in  FIG. 14 , since TP=−0.5, 3DTP is at the coordination of a midpoint of point B and point C. It is preferred if target  300  is actually not drawn in a displayed image (game image). 
       FIG. 15  and  FIG. 16  are figures for describing cases where the intersection point A and point B exist on different course vectors  90  at step  124 .  FIG. 15  is a schematic diagram of a game space when viewed from above, and corresponds to  FIG. 14 . As shown in  FIG. 15 , the predefined distance L is a sum of L 1  and L 2 , when the intersection point A and point B exist on different course vectors  90 .  FIG. 16  is a schematic diagram of a game space when viewed from a side surface and when the pathway sways up and down in the vertical direction. Similarly, the predefined distance L is also a sum of L 1  and L 2  in this case. 
     In  FIG. 14  and  FIG. 15 , described are cases where the pathway and a range in which the target  300  is positioned are equal. However, the pathway and the range in which the target  300  is positioned do not have to be equal. For example, a width of the range in which the target  300  is positioned may be larger than the width of the pathway. In this case, there is a possibility that the target  300  is positioned outside the pathway. Furthermore, for example, a width of the range in which the target  300  is positioned may be smaller than the width of the pathway. In this case, the target  300  will be positioned in a range having a predefined width that is narrower than the width of the pathway, which width is derived by defining the center of the pathway as the center of the width. 
     Next, at step  125 , the CPU  40  calculates the system handlebars angle data  209  based on the object forward direction data  208 , the object coordination data  215 , and the target coordination data  207 ; and stores the system handlebars angle data  209  in the external main memory  46 . A specific description of the process at step  125  is provided in the following with reference to  FIG. 17 .  FIG. 17  is a schematic diagram of a game space when viewed from above, and shows a state identical to the state represented in  FIG. 14 . First, the CPU  40  acquires, from the external main memory  46 : the object forward direction data  208  indicating the forward direction of the OBJ  80 ; the latest object coordination data  215  indicating the position of the OBJ  80 ; and the target coordination data  207  calculated at the present step  124 . The object coordination data  215  is data calculated by the process (immediately preceding process) at step  14  in  FIG. 12  which is described in the following. Next, the CPU  40  calculates a target direction j from the OBJ  80  toward the target  300  by using the acquired object coordination data  215  and target coordination data  207 . Next, the CPU  40  calculates an angle between the calculated target direction j and a forward direction d of the OBJ  80  indicated by the acquired object forward direction data  208 , as SHA indicated by the system handlebars angle data  209 . 
     Next, at step  126 , the CPU  40  converts the user handlebars data  203  into the user handlebars angle data  210 . Namely the CPU  40  converts the numerical value UH which is within a range from −1 to 1, into UHA which represents an angle. Described in the following is one example where UHA is a value not less than −45° and not more than 45°. For example, the CPU  40 : converts UH into UHA=−45° when UH=−1; converts UH into UHA=−22.5° when UH=−0.5; converts UH into UHA=0° when UH=0; converts UH into UHA=22.5° when UH=0.5; and converts UH into UHA=45° when UH=1. 
     Next, at step  127 , the CPU  40  determines the handlebars angle data  211  based on the user handlebars angle data  210  and the system handlebars angle data  209 , and stores the handlebars angle data  211  in the external main memory  46 . A specific description of the process at step  127  is provided in the following. First, the CPU  40  acquires, from the external main memory  46 : the user handlebars angle data  210  (UHA) calculated at the present step  126 ; and the system handlebars angle data  209  (SHA) calculated at the present step  125 . Next, the CPU  40  calculates the handlebars angle data  211  (HA) by using the formula 2 described below.
 
 HA=SHA (1− t )+ UHA×t   (2)
 
Here, t is a constant number of 0≦t&lt;1, and it is a constant number that defines the degree of influence that the user&#39;s steering operation has on a steering angle of the OBJ  80  (i.e. moving direction). The larger t is, the larger the influence on the steering angle of the OBJ  80  by the user&#39;s steering operation is. In the following, t=0.2 is used as one example. A more specific description is provided in the following with reference to  FIG. 18  and  FIG. 19 . In  FIG. 18  and  FIG. 19 , direction d is the forward direction of the OBJ  80  indicated by the object forward direction data  208 ; direction j is a direction indicated by the system handlebars angle data  209  (SHA) (which is a direction from the OBJ  80  toward the target  300 ); direction e is a direction indicated by the user handlebars angle data  210  (UHA); and direction f is a direction indicated by the handlebars angle data  211  (HA).  FIG. 18  and  FIG. 19  shows a state identical to the state represented in  FIG. 17 . As shown in  FIG. 18 , when UHA=−40° and SHA=−30°, then HA=−32°. Additionally, as shown in  FIG. 19 , when UHA=40° and SHA=−30°, then HA=−16°. As shown above, HA becomes a value between UHA and SHA, or a value equal to SHA, depending on the constant number t. For example, HA becomes: a value in the middle between UHA and SHA when t=0.5; a value closer to SHA than the middle between UHA and SHA when t is smaller than 0.5; and a value closer to UHA than the middle between UHA and SHA when t is larger than 0.5.
 
     As a result of the processes from step  121  to step  127  in  FIG. 13  described above, the handlebars angle data  211  (HA) is determined. As described above, when the OBJ  80  is intended to travel along the pathway, as a result of configuring the system handlebars angle (SHA), a control in response to an input by the user can be conducted while enabling the OBJ  80  to travel along the pathway to some extent, by allowing the user to control, within a defined range, a relative position from the pathway. Furthermore, the user can easily recognize that his/her input is reflected in the control even while the travel along the pathway is maintained to some extent, since a component, which is directly influenced by the user&#39;s input, is included as a component of the traveling direction, by calculating the final handlebars angle (HA) from the system handlebars angle (SHA) and the user handlebars angle (UHA) as described above. The user can enjoy the feeling of having his/her input being reflected in the operation while suppressing operation errors, especially in a game that requires a delicate control, particularly when controlling the direction based on acceleration, as in the current embodiment. 
     Next, at step  13  in  FIG. 12 , the CPU  40  conducts a motion speed determination process of the OBJ  80  by utilizing the operation data  201  updated at step  11 . The process at step  13  is a process which detects the pedaling operation, described above with reference to  FIG. 10 , by the user; and which determines the motion speed (movement amount per unit of time) of the OBJ  80 . The motion speed determination process at step  13  will be described in the following with reference to a flowchart in  FIG. 20 . 
     First, at step  131 , the CPU  40  detects a peak of the acceleration of the core unit  70 , by using the most recent three core acceleration data included in the operation data  201  and updated at step  11  in  FIG. 12 . Here, the latest core acceleration data is referred to as a first core acceleration data; the second latest core acceleration data is referred to as a second core acceleration data; and the third latest core acceleration data is referred to as a third core acceleration data. A specific description is provided in the following. First, the CPU  40  acquires, from among the first core acceleration data, an acceleration Ay 1  in the Y-axis direction and an acceleration Az 1  in the Z-axis direction, both of the core unit  70  and shown in  FIG. 10 . Next, the CPU  40  calculates an acceleration Ayz 1  by using formula 3 described below.
 
 Ayz 1=0.3× Ay 1+0.7× Az 1  (3)
 
Here, the user generally conducts the pedaling operation in  FIG. 10 , by swinging the core unit  70  back and forth while using his/her elbow as a fulcrum point. Therefore, in order to efficiently detect the pedaling operation, Ay 1  is multiplied by 0.3 and Az 1  is multiplied by 0.7 in formula 3 described above. During a swing, a centrifugal force applied in the Z-axis direction, and an acceleration applied in the Y-axis direction, which occurs especially at the start and end of a swing, are detected; and detection of an acceleration is conducted in the condition described above, due to an assumption that detection of the centrifugal force contributes in better detection of a swing. The constant numbers multiplied to Ay 1  and Az 1  are not limited to those in formula 3, and other constant numbers can be used as long as they are suited for detecting the pedaling operation. Similarly, the CPU  40 : acquires, from among the second core acceleration data, an acceleration Ay 2  in the Y-axis direction and an acceleration Az 2  in the Z-axis direction, both of the core unit  70  and shown in  FIG. 10 ; and similarly calculates an acceleration Ayz 2 . Similarly, the CPU  40 : acquires, from among the third core acceleration data, an acceleration Ay 3  in the Y-axis direction and an acceleration Az 3  in the Z-axis direction, both of the core unit  70  and shown in  FIG. 10 ; and similarly calculates an acceleration Ayz 3 . Next, the CPU  40  detects a peak by using the calculated Ayz 1 , Ayz 2 , and Ayz 3 . One example of a detection method of this peak is described in the following. CPU  40  judges whether Ayz 3 ≦Ayz 2  and Ayz 2 ≧Ayz 1  are both satisfied or not. If Ayz 3 ≦Ayz 2  and Ayz 2 ≧Ayz 1  are both satisfied, a peak is detected (YES at step  131 ); and then the process proceeds to step  132 . On the other hand, if Ayz 3 ≦Ayz 2  and Ayz 2 ≧Ayz 1  are both not satisfied, a peak is not detected (NO at step  131 ); and then the process proceeds to step  134 . Although a local maximum is detected as a peak in the description above, a local minimum can also be detected as a peak. In such a case, the CPU  40  judges whether Ayz 3 ≧Ayz 2  and Ayz 2 ≦Ayz 1  are both satisfied or not.
 
     At step  132 , the CPU  40  confirms whether Flag  1  indicated by the first flag data  212  is “on” or not. If Flag  1  is “on” (YES at step  132 ), the process proceeds to step  134 . On the other hand, if Flag  1  is “off” (NO at step  132 ), the process proceeds to step  133 . As a result of the initial setting process at step  10  in  FIG. 12 , an initial value for Flag  1  is configured as “off” at the initial setting. 
     At step  133 , the CPU  40  turns Flag  1  indicated by the first flag data  212  “on”, turns Flag  2  indicated by the second flag data  213  “off”, and updates the first flag data  212  and the second flag data  213 . Then, the process proceeds to step  134 . 
     At step  134 , the CPU  40  detects a peak of the acceleration of the subunit  76 , by using the most recent three sub acceleration data included in the operation data  201  and updated at step  11  in  FIG. 12 . This process is similar to the process in step  131 , which detects the peak of the acceleration of the core unit  70 . Here, the latest sub acceleration data is referred to as a first sub acceleration data; the second latest sub acceleration data is referred to as a second sub acceleration data; and the third latest sub acceleration data is referred to as a third sub acceleration data. First, the CPU  40  acquires, from among the first sub acceleration data, an acceleration Ay 1  in the Y-axis direction and an acceleration Az 1  in the Z-axis direction, both of the subunit  76  and shown in  FIG. 10 . Next, the CPU  40  calculates an acceleration Ayz 1  by using formula 3 used in the process at step  131 . Similarly, the CPU  40 : acquires, from among the second sub acceleration data, an acceleration Ay 2  in the Y-axis direction and an acceleration Az 2  in the Z-axis direction, both of the subunit  76  and shown in  FIG. 10 ; and similarly calculates an acceleration Ayz 2 . Similarly, the CPU  40 : acquires, from among the third sub acceleration data, an acceleration Ay 3  in the Y-axis direction and an acceleration Az 3  in the Z-axis direction, both of the subunit  76  and shown in  FIG. 10 ; and similarly calculates an acceleration Ayz 3 . Next, the CPU  40  detects a peak by using the calculated Ayz 1 , Ayz 2 , and Ayz 3 . Description of the detection method of this peak is omitted, since it is identical to the process at step  131 . If a peak is detected at step  134  (YES), the process proceeds to step  135 . On the other hand, if a peak is not detected at step  134  (NO), the process proceeds to step  139 . 
     At step  135 , the CPU  40  confirms whether Flag  2  indicated by the second flag data  213  is “on” or not. If Flag  2  is “on” (YES at step  135 ), the process proceeds to step  139 . On the other hand, if Flag  2  is “off” (NO at step  135 ), the process proceeds to step  136 . As a result of the initial setting process at step  10  in  FIG. 12 , an initial value for Flag  2  is configured as “off” at the initial setting. 
     At step  136 , the CPU  40  turns Flag  1  indicated by the first flag data  212  “off”, turns Flag  2  indicated by the second flag data  213  “on”, and updates the first flag data  212  and the second flag data  213 . Then, the process proceeds to step  138 . 
     At step  138 , the CPU  40  adds the movement amount of the OBJ  80 . Specifically, the CPU  40  adds a predefined addition movement amount per unit of time of the OBJ  60  (i.e. predefined addition speed) to a value of the movement amount data  214 . For example, in the game space, a predefined addition movement amount per unit of time of the OBJ  80 , 1 km/h, is added to a value of the movement amount data  214 , 10 km/h, and the value of the movement amount data  214  is updated as 11 km/h. Then the process proceeds to step  14  in  FIG. 12 . Furthermore, depending on the status of the pathway (uphill slope, downhill slope, gravel road, paved road, and the like), state of the OBJ  80  (stamina exhaustion level and the like), and the like; the predefined addition movement amount per unit of time of the OBJ  80  described above may be different in each status or state. 
     On the other hand, at step  139 , the CPU  40  subtracts the movement amount of the OBJ  80 . Specifically, the CPU  40  subtracts a predefined subtraction movement amount per unit of time of the OBJ  80  (i.e. predefined subtraction speed) from a value of the movement amount data  214 . For example, in the game space, a predefined subtraction movement amount per unit of time of the OBJ  80 , 0.5 km/h, is subtracted from a value of the movement amount data  214 , 10 km/h, and the value of the movement amount data  214  is updated as 9.5 km/h. Then the process proceeds to step  14  in  FIG. 12 . Furthermore, depending on the status of the pathway (uphill slope, downhill slope, gravel road, paved road, and the like) and the like, the predefined subtraction movement amount per unit of time of the OBJ  80  described above may be different in each status. 
     As a result of the processes from step  131  to step  139  in  FIG. 20  described above, the motion speed of the OBJ  80  is determined. Provided in the following is a simple description of a typical process route conducted in the flowchart in  FIG. 20 . If the user is not conducting the pedaling operation, the process route in  FIG. 20  will proceed through step  131 ,  134 , and  139 . In this case, the motion speed of the OBJ  80  is reduced. If the user is conducting the pedaling operation, the process route in  FIG. 20  will proceed from step  131  to  138 . In this case, the motion speed of the OBJ  80  is increased. If the user is swinging only the core unit  70 , the process route in  FIG. 20  will proceed through step  131 ,  132 ,  134 , and  139 . In this case, the motion speed of the OBJ  80  is reduced. If the user is swinging only the subunit  76 , the process route in  FIG. 20  will proceed through step  131 ,  134 ,  135 , and  139 . In this case, the motion speed of the OBJ  80  is reduced. As described above, the user can accelerate the OBJ  80  by conducting an operation (pedaling operation) of alternately swinging forward the core unit  70  and the subunit  76  as if alternately pressing on the pedals of the bicycle. 
     Next, at step  14  in  FIG. 12 , the CPU  40  conducts an object moving process. The object moving process at step  14  will be described in the following with reference to a flowchart in  FIG. 21 . 
     First, at step  141 , the CPU  40  acquires: the course data  206 ; the handlebars angle data  211  determined at the present step  12 ; the movement amount data  214  determined at the present step  13 ; and the object coordination data  215  determined at the immediately preceding step  14 . 
     Next, at step  142 , the CPU  40 : moves, within the pathway specified by the acquired course data  206 , the OBJ  80  at a speed indicated by the movement amount data  214  toward a direction indicated by the handlebars angle data  211 , by using a coordination 3DTP indicated by the acquire object coordination data  215  as a base point; and calculates a coordination 3DTP of the OBJ  80  after the movement and updates a value of the latest object coordination data  215  with this calculation result. A specific description is provided in the following with reference to  FIG. 22 . The state represented in  FIG. 22  corresponds to the state represented in  FIG. 18 , and direction f is a direction indicated by the handlebars angle data  211 . As shown in  FIG. 22 , as a result of the process at step  142 , the OBJ  80  moves from the immediately preceding coordination toward direction f, for a determined movement amount. 
     As a result of the processes at step  141  and step  142  in  FIG. 22  described above, a moving process of the OBJ  80  is performed. Then the process proceeds to step  15  in  FIG. 12 . 
     At step  15  in  FIG. 12 , the CPU  40  causes the GPU  42   b  (refer  FIG. 2 ) to generate a game image based on the latest object coordination data  215  (the coordination 3DTP of the OBJ  80  after the movement) calculated at step  14 , and conducts a displaying process of the game image. 
     Next, at step  16  in  FIG. 12 , the CPU  40  judges whether the game has been ended or not. If the game has been ended (YES at step  16 ), the CPU  40  ends the processes in the flowchart in  FIG. 12 . On the other hand, if the game has not been ended (NO at step  16 ), the process returns to step  11 . 
     As described above, in the current embodiment, determined as the moving direction of the OBJ  80  (refer direction f in  FIG. 18  and  FIG. 19 ) is, either a direction in between a direction based on the steering operation by the user (refer direction e in  FIG. 18  and  FIG. 19 ) and a direction from the OBJ  80  toward the target  300  (refer direction j in  FIG. 18  and  FIG. 19 ), or the direction from the OBJ  80  toward the target  300 . Here, as already described, the target  300  is positioned in the forward direction of the course where the OBJ  80  should proceed, at a predefined distance frontward of the OBJ  80 , within a predefined width (refer  FIG. 14 ). As a result, the moving direction of the OBJ  80  is corrected from a direction based on the steering operation by the user to a forward direction of the course where the OBJ  80  should proceed. 
     Furthermore, the target  300  moves for an amount that corresponds to a speed (HS) of the steering operation, in a direction (rightward direction or leftward direction) pointed by the steering operation (refer formula 1). When the OBJ  80  is about to steer away from (or already has steered out from) the pathway, the user generally conducts the steering operation rapidly toward a direction where the OBJ  80  should proceed (direction along the pathway). For example, when the OBJ  80  is about to go beyond (or already has gone beyond) the left side end of the pathway, the user generally conducts the steering operation rapidly so as to quickly turn the OBJ  80  toward the right. In this case, the target  300  moves greatly toward the right side direction of the pathway. As a result, the OBJ  80  turns greatly toward the forward direction of the course where the OBJ  80  should proceed. 
     A more specific description is provided in the following with reference to formula 1. Discussed below is a case where the user conducts the steering operation rapidly toward the rightward direction so as to quickly turn the OBJ  80  toward the right when the OBJ  80  is about to go beyond (or already has gone beyond) the left side end of the pathway. Suppose the right side of formula 1 is TP=−1 (i.e. target  300  is positioned on the left side point C on the pathway in the example in  FIG. 14 ), and UH in formula 1 has largely increased from 0 to 0.5 due to the above described steering operation by the user. In this case, UH−TP in formula 1 is 1.5, and HS in formula 1 is 0.5. As a result, the left side of formula 1 becomes TP=−1+1.5×0.5=−0.25. This means that the target  300  moves toward the right side direction of the pathway for 0.75. As describe here, when the OBJ  80  is about to go beyond (or already has gone beyond) the left side end of the pathway, and when the user conducts the steering operation rapidly toward the rightward direction, the target  300  moves greatly toward the right side direction of the pathway. As can be understood from  FIG. 18  and  FIG. 19 , the larger the difference which is between the target direction j and the direction e (direction defined by UHA) and which is defined by the steering operation of the user is, the greater the moving direction f of the OBJ  80  is pulled from the direction e toward the target direction j. Therefore, in this case, the moving direction of the OBJ  80  is greatly pulled toward the target  300 . Thus, the OBJ  80  turns greatly toward the forward direction of the course where the OBJ  80  should proceed. As a result, the moving direction of the OBJ  80  can be assisted so as to approach the direction where the OBJ  80  should proceed (course forward direction). 
     As described above, according to the current invention, the operation by the user can be moderately assisted in a game that requires a relatively high level of operation skills for the user (e.g. a virtual bicycle game, described in the embodiment above, in which the OBJ  80  is advanced by the pedaling operation (refer  FIG. 10 ) while the traveling direction of the OBJ  80  is altered by the steering operation (refer  FIG. 9 )). As a result, the user can enjoy the operation without losing a realistic feel for the operation. 
     In the description above, acceleration data of the core unit  70  and the subunit  76  are used in order to reflect the steering operation and the pedaling operation conducted by the user in the motion of the OBJ  80 . However, the steering operation and the pedaling operation conducted by the user may be reflected in the motion of the OBJ  80 , by using data that corresponds to rotational motions of the core unit  70  and the subunit  76 . In this case, the core unit  70  and the subunit  76  will each include a gyro sensor and the like. Moreover, the steering operation and the pedaling operation conducted by the user may be reflected in the motion of the OBJ  80  by using data that corresponds to inclinations of the core unit  70  and the subunit  76 . In this case, the core unit  70  and the subunit  76  will each include an inclination sensor. Furthermore, the steering operation and pedaling operation conducted by the user may be reflected in the motion of the OBJ  80  by using image data taken by cameras fixed on the core unit  70  and the subunit  76 . In this case, the core unit  70  and the subunit  76  will each include a camera (e.g. the imaging information calculation section  74  in  FIG. 6 ). Thus, by using sensors capable of outputting data that can be used to calculate inclinations of the core unit  70  and the subunit  76 , the steering operation and the pedaling operation can be detected and reflected in the motion of the OBJ  80 . 
     Furthermore, in the description above, the steering operation is conduct by having the user tilt the core unit  70  and the subunit  76  in the left-right direction (refer  FIG. 9 ). However, the steering operation may be conducted by having the user tilt either one of the core unit  70  or subunit  76  in the left-right direction. 
     Furthermore, in the description above, the pedaling operation is conducted by having the user alternately swinging forward the core unit  70  and the subunit  76  (refer  FIG. 10 ). However, the pedaling operation may be conducted by having the user swing forward either one of the core unit  70  or the subunit  76 . In this case, swinging motion of the unit (core unit  70  or subunit  76 ) that is subjected to swinging is detected. 
     Furthermore, a game in which a bicycle runs in the game is described above as one example. However, the game is not limited to this type, and the game may be, for example, a boat driving game, a human running game, a human swimming game, and the like. 
     Furthermore, the shapes of the above described controller  7 ; and the shape, number, and installation position and the like of the operation section  72  provided to the controller  7  are merely one example, and the current invention can be attained with other shapes, numbers, and installation positions. 
     Furthermore, although the game apparatus  12  is operated by the controller  7  in the above described embodiment, for example, an information processing apparatus such as a generally personal computer may be operated by an input device that includes detecting means which can detect a steering operation and a pedaling operation. 
     While the current invention has been described in detail, the foregoing description is in all aspects illustrative and not restrictive. It is understood that numerous other modifications and variations can be devised without departing from the scope of the invention.