Detailed Description
Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numbers in different drawings refer to the same or similar elements, unless otherwise indicated. The implementations described in the following exemplary examples do not represent all implementations consistent with the application. Rather, they are merely examples of methods consistent with aspects of the application as detailed in the accompanying claims.
Referring to fig. 1, a schematic diagram of a motion trajectory according to an embodiment of the application is shown. The frame rate calculation can influence the time length of single frame calculation, and correspondingly can influence the time step of each frame for physical motion calculation, thereby influencing the physical displacement of the single frame. In general, in order to ensure the display effect of the pictures in the client, the client maintains a high calculated frame rate, and thus the calculated frame rate of the client is generally higher than that of the server. If the calculated frame rate is higher, more time points can be calculated in the same period. The motion trail is a folded line segment with a plurality of connected position points. In some embodiments, the motion profile may also be referred to as a motion path, a movement profile, a movement path, or the like. In some embodiments, the motion trajectory of the virtual projectile may be derived from motion information of the virtual projectile (for an explanation of the motion information, see below). In some embodiments, the motion information of the virtual throwing object includes information indicating a position of the virtual throwing object at a corresponding time of each calculation frame. Therefore, according to the motion information of the virtual throwing object in each calculation frame, the position points corresponding to the virtual throwing object at each moment are determined, and the position points of the virtual throwing object are sequentially connected according to the time sequence, so that the motion trail of the virtual throwing object can be obtained.
As shown in fig. 1, the motion trajectory 11 is a motion trajectory of a virtual throwing object calculated by a client, and the motion trajectory 12 is a motion trajectory of a virtual throwing object calculated by a server, and a calculated frame rate of the client is greater than a calculated frame rate of the server. Taking the moving process of the virtual throwing object from the first moment to the second moment as an example, because the calculating frame rate of the server is lower and the time step in the calculating process is larger, the server can only calculate the positions of the virtual throwing object at the first moment and the second moment respectively, the moving track between the first moment and the second moment is uncertain, the positions of the virtual throwing object at the first moment and the second moment can only be calculated through the straight line connecting server, so that the moving path of the object calculated by the server from the first moment to the second moment is a straight line segment 121, and because the calculating frame rate of the server is higher and the time step in the calculating process is smaller than that of the server, for the moving process of the virtual throwing object from the first moment to the second moment, the client can not only calculate the positions of the virtual throwing object at the first moment and the second moment respectively, but also calculate the positions of the virtual throwing object at the third moment, the third moment is positioned between the first moment and the second moment, the moving path of the virtual throwing object calculated by the client from the first moment to the second moment is a broken line segment 111 which is formed by connecting the positions of the virtual throwing object at the first moment, the third moment and the second moment in sequence in time order.
It can be seen that the higher the calculated frame rate, the smaller the single frame displacement, the smoother the motion track, and the lower the calculated frame rate, the larger the single frame displacement, and the coarser the motion track. Therefore, if the calculated frame rates of the client and the server are different, the motion trajectories of the virtual throwing object calculated by the client and the server may be different during the motion of the virtual throwing object in the virtual environment.
In view of this, in the technical solution provided in the embodiments of the present application, the calculated frame rate of the virtual throwing object is set by the client as the calculated frame rate of the server, so that the calculated frame rates of the client and the server for the virtual throwing object are kept the same, and thus, the time steps of the motion trajectories calculated by the client and the server for the virtual throwing object in the same time period are kept the same, and the possibility that the positions of the virtual throwing object calculated by the client and the server are the same in each time period is higher, so that the possibility that the motion trajectories calculated by the client and the server coincide is also higher.
Referring to fig. 2, a schematic diagram of an embodiment of the present application is shown, which may be implemented as a movement control system for a virtual projectile. As shown in fig. 2, the system 200 may include a first terminal device 13 and a server 14.
The first terminal device 13 has installed and running therein a target application, such as a first client of the target application. Optionally, the first client logs in with a first user account. The user corresponding to the first user account can control or trigger throwing of the virtual throwing object, for example, the virtual character or the virtual throwing prop is controlled to throw the virtual throwing object through the first user account. The terminal device is an electronic device with data computing, processing and storage capabilities. The terminal device may be a smart phone, a tablet computer, a PC (Personal Computer ), a wearable device, a VR (Virtual Reality) device, an AR (Augmented Reality) device, an MR (Mixed Reality) device, or the like, which is not limited by the embodiment of the present application. The target application may be a game application, such as a shooting game application, a multi-player gunfight survival game application, a flee kill survival game application, an LBS (Location Based Service, location based services) game application, a MOBA (Multiplayer Online Battle Arena, multi-player online tactical competition) game application, a party game application, and so forth, which embodiments of the present application are not limited. The target application may also be any application with movement control of virtual throws, such as social applications, payment applications, video applications, music applications, shopping applications, news applications, etc. The main execution body of each step of the method provided by the embodiment of the present application may be the first terminal device 13, such as the first client running in the first terminal device 13.
A communication connection (e.g. a network connection) is established between the server 14 and the first terminal device 13, and the server 14 is configured to provide background services for the target application. The server may be an independent physical server, a server cluster or a distributed system formed by a plurality of physical servers, or a cloud server providing cloud computing service.
In some embodiments, the system 200 may further include at least one second terminal device 15, where the second terminal device 15 has installed and running a target application, such as a second client of the target application. Optionally, a second user account is logged into the second client. In some embodiments, if there are a plurality of second terminal devices 15, the user accounts logged in different second terminal devices 15 are also different, and at least one second client may synchronously display the virtual throwing object controlled or triggered by the first user account and its movement through the server. In some embodiments, the server 14 establishes a communication connection (e.g., a network connection) with the second terminal device 15.
The step content related to the technical scheme provided by the embodiment of the application can be interactively executed by the first client and the server. Wherein the first client-side method may be performed by the first client and the server-side method may be performed by the server 14.
The technical scheme of the application is described and illustrated by the following examples.
Referring to fig. 3, a flowchart of a method for controlling movement of a virtual projectile according to an embodiment of the application is shown. In this embodiment, the description will be given taking the method as an example performed by the first terminal device (e.g., the first client in the first terminal device) described above. The method may include the following steps (310-330):
In step 310, the obtaining server calculates a frame rate for the virtual projectile, where the calculated frame rate refers to a frame rate at which the server calculates motion information of the virtual projectile.
In some embodiments, during a game, a calculated frame rate of the server for the virtual projectile is acquired, where the calculated frame rate refers to the frequency at which the server calculates motion information of the virtual projectile. In some embodiments, the calculated frame rate may be expressed in terms of how many times the frame rate is calculated per unit time, which represents how many times the motion information of the virtual projectile is calculated per unit time. Alternatively, the calculated frame rate may be expressed in terms of time steps, i.e., the motion information of the virtual projectile is calculated every other time step. In some embodiments, the calculated frame rate and the time step may be converted to each other by the formula time step = 1/calculated frame rate.
In some embodiments, the calculation of one calculation frame is completed every time the client or server calculates the motion information of the virtual projectile. For example, if the frame rate of the calculation of the virtual throwing object by the server is 24 frames/second, the time step of calculating the motion information of the virtual throwing object by the server is 1/24 seconds, the motion information of the virtual throwing object at the corresponding time point needs to be calculated once every 1/24 seconds by the server, and the motion information of the virtual throwing object needs to be calculated 24 times per second by the server. The movement of an object (e.g., a virtual projectile) in a virtual environment is typically calculated to simulate as much as possible the movement in the real world. Since the computer devices (such as terminal devices and servers) can only execute the calculation logic of the aimed motion information after a certain time, namely, the calculation is limited by the frame rate, the position of the object can be updated every time the logic is executed. The distance the object moves is equal to the product of time and speed. In each calculation frame, the displacement of the object in the calculation frame can be obtained by multiplying the current speed by the time interval between two adjacent calculation frames, so as to obtain the new position to which the object should be moved in the calculation frame. And (3) carrying out visual representation on the calculation result of each frame, so that an approximately smooth motion track can be obtained. Of course, in the operation process of each frame, some physical judgment and adjustment can be performed between the new position and the original position, such as whether collision occurs, the influence of gravity acceleration, and the like. In some embodiments, in the process of calculating the motion information of the virtual throwing object by the server, the first calculation frame is used for calculating the motion information of the virtual throwing object in the frame based on the initial data and the time step, and from the second calculation frame, each calculation frame can be used for calculating the motion information of the virtual throwing object in the frame based on the motion information and the time step calculated by the virtual throwing object in the last frame.
In some embodiments, during the time that the first client is on or joining a game, the first client may obtain the calculated frame rate for the game by the server. In some embodiments, the calculated frame rate of the server for the game is the calculated frame rate of the server for the virtual projectile, and thus the calculated frame rate of the server for the virtual projectile is obtained as long as the calculated frame rate of the server for the game is obtained. In some embodiments, the calculated frame rate of the server for all virtual elements in the game is the same, and the first client receives frame rate information from the server indicating the calculated frame rate of the server for all virtual elements in the game including the virtual throws.
In some embodiments, the first client accepts the timing of the server-synchronized calculation of the frame rate, there are two possibilities.
Opportunity one in some embodiments, the first client receives a calculated frame rate synchronized by the server at first time intervals.
In some embodiments, the server synchronizes the calculated frame rate of the server in real time to the first client and to at least one second client participating in the game. That is, at first time intervals, the server synchronizes the calculated frame rate of the server to all clients in the game. In some embodiments, the second client is different from the first client. The second client refers to a client that participates in the same game as the first client or a client that performs live viewing of a game in which the first client participates. In some embodiments, for a calculated frame rate of a server received at a certain time for a virtual projectile, if the calculated frame rate of the server does not change within a last first time interval, the calculated frame rate of the server received at the time for the virtual projectile is the same as that received at a last time, and if the calculated frame rate of the server changes within the last first time interval, the calculated frame rate of the server received at the time for the virtual projectile is different from that received at the last time. In some embodiments, the first time interval may be 1 second, may be 5 seconds, may be 10 seconds, may be 15 seconds, may be 30 seconds, may be 1 minute, may be 5 minutes, and so on. Of course, the specific duration of the first time interval may also be other values, which may be specifically set by the relevant skilled person according to the actual situation, which is not specifically limited in the embodiment of the present application. In this embodiment, the reception server transmits the calculated frame rate at fixed time intervals, so that it is possible to continuously confirm whether the calculated frame rate of the server has changed, and to acquire the changed calculated frame rate in a short time.
Opportunity two in some embodiments, the first client receives a calculated frame rate that the server synchronizes if the calculated frame rate changes.
In some embodiments, the server will not repeatedly synchronize the calculated frame rate to the client if the calculated frame rate of the server does not change, and the server will synchronize the calculated frame rate to the client only if the calculated frame rate of the server changes, so as to inform each client of the updated frame rate of the server (i.e., the latest calculated frame rate of the server). In the embodiment, the server synchronizes the latest calculated frame rate to the client only under the condition that the calculated frame rate of the server changes, and the latest calculated frame rate is not repeatedly calculated to the client at other times, so that unnecessary information interaction between the server and the client is reduced, transmission resources of the server and the client are saved, and meanwhile, the latest calculated frame rate of the server can be timely obtained by the first client due to the fact that the latest calculated frame rate of the server is changed, so that the calculation result of the client on the motion trail of the virtual throwing object is further ensured, and the calculation result of the motion trail of the virtual throwing object is matched with the calculation result of the server as far as possible.
In some embodiments, a virtual projectile refers to a virtual element in a virtual environment, and refers to a virtual element that can be moved into the air by throwing, kicking, bumping, topping, clapping, beating, etc. in a virtual environment presented by a client (e.g., a first client). In some embodiments, the virtual projectile may be a virtual projectile attack prop, such as a burning flask, grenade, smoke bomb, flash bomb, tear-gas bomb, etc., a virtual ball, such as football, basketball, volleyball, ball, badminton, table tennis, hemisphere, baseball, golf, billiards, etc., or a virtual pet, virtual stone, virtual drink bottle, etc. In some embodiments, the specific type of virtual projectile may be set by the skilled person according to the actual situation, and the embodiments of the present application are not limited in this particular manner.
In some embodiments, the virtual projectile may be generated or refreshed in the first client, and the virtual projectile may be controlled or triggered to be thrown by the first user account. In some embodiments, the virtual projectile may be thrown by a virtual character controlled by the first user account. For example, the virtual character can throw or throw the virtual throwing object by hand (such as a hand-held burning flask, a virtual pet and the like), can kick the virtual throwing object by legs or feet (such as kicking football), can throw the virtual throwing object by body parts such as shoulders, abdomen, head and the like (such as kicking football), can eject the virtual throwing object by body parts such as shoulders, head, back and the like (such as pushing football in the air), and can shoot or throw the virtual throwing object by body parts such as palms and the like (such as shooting or throwing volleyball).
In some embodiments, the virtual projectile may be thrown by a virtual throwing prop controlled by the first user account, such as a virtual stone projector, virtual slingshot, virtual spring bed, virtual ball dispenser, virtual racket, or the like. In some embodiments, the virtual projectile may be co-cast by a virtual character controlled by the first user account and a virtual projectile prop held by the virtual character. For example, a virtual character controlled by the first user account holds a virtual racket or a virtual bat or a virtual club (e.g., a virtual badminton racket, a virtual table tennis racket, a virtual baseball bat, a virtual golf club, etc.), and virtual balls such as shuttlecocks, table tennis balls, baseballs, golf balls, etc. can be played or knocked out by controlling the virtual character to swing.
In some embodiments, the first client may display a virtual environment generated by the target application, which may include, but is not limited to, at least one of a virtual mountain, a virtual desert, a virtual grassland, a virtual forest, a virtual sea, a virtual rain forest, a virtual snow mountain, a virtual town village. The virtual environment may be three-dimensional, two-dimensional, or 2.5-dimensional, which is not particularly limited in the embodiment of the present application. In some embodiments, other virtual elements besides virtual throws may be included in the virtual environment, such as virtual characters, virtual props (e.g., virtual attack props, virtual defense props, virtual carriers, etc.), virtual pets, virtual buildings (e.g., virtual houses, virtual towers, virtual statues, virtual walls, virtual fences, virtual fountains, etc.), virtual stacks, virtual stones, virtual furniture (e.g., virtual tables, chairs, beds, stools, sofas, etc.). In some embodiments, the virtual roles refer to the virtual roles that the user accounts control in the target application. Taking a target application program as an example of a game application program, the virtual character refers to a game character controlled by a user account in the game application program. In some embodiments, the avatar may be presented in two-dimensional form or in three-dimensional form. Alternatively, when the virtual environment in which the virtual character is located is a three-dimensional virtual environment, the virtual character may be a three-dimensional stereoscopic model created based on an animated skeleton technique. The virtual character has its own shape and volume in the three-dimensional virtual environment, occupying a part of the space in the three-dimensional virtual environment. Alternatively, the target application may have a function of simulating a real physical environment. In the virtual environment, the motion rule of each virtual element (such as virtual characters and virtual throwing objects) accords with or approaches to the physical rule of reality.
Step 320, after the virtual throwing object is thrown, calculating according to the calculated frame rate to obtain first motion information of the virtual throwing object, where the first motion information includes motion information of the virtual throwing object calculated by the first client in at least one frame, where the motion information is used to indicate a position and a speed of the virtual throwing object.
In some embodiments, when the virtual throwing object is thrown, the first client generates the virtual throwing object, sets the calculated frame rate of the first client for the virtual throwing object as the calculated frame rate of the server for the virtual throwing object, and then calculates first motion information of the virtual throwing object according to the calculated frame rate of the server for the virtual throwing object. The first motion information is the motion information of the virtual throwing object calculated by the first client, and the calculated frame rate of the first client for the virtual throwing object is consistent with the calculated frame rate of the server for the virtual throwing object. The calculated frame rate of the first client for the virtual throwing object is consistent with the calculated frame rate of the server providing background service for the target application program, so that the time step of the motion information of the first client and the server for the virtual throwing object is also consistent.
In some embodiments, the physical laws in the virtual environment mimic or approximate the physical laws of the real environment, such as simulating the mechanical laws and kinematic laws of the real environment. The forces and movements of the various virtual elements (including virtual throws) in the virtual environment follow or approximate the physical laws of the real environment. In some embodiments, after the virtual throwing object is thrown, if the virtual throwing object flies only in the air and does not collide with the virtual elements in the virtual environment, the virtual throwing object only receives gravity in the virtual environment (of course, if air friction is considered, friction force exerted by air is also received), and after the virtual throwing object is thrown, if the virtual throwing object collides with other virtual elements in the virtual environment, the virtual throwing object receives force exerted by other virtual elements, and therefore the motion path can be changed.
In some possible implementations, the method further includes:
1. Determining initial motion information of the virtual throwing object during throwing, wherein the initial motion information is used for indicating an initial position and an initial speed of the virtual throwing object during throwing;
2. And sending the initial motion information to a server, wherein the server is used for calculating second motion information of the virtual throwing object according to the initial motion information and the calculated frame rate, and the second motion information comprises the motion information of the virtual throwing object in at least one frame, which is calculated by the server.
In some embodiments, the first client determines initial motion information for the virtual projectile. In some embodiments, when a virtual projectile is thrown, it is when the virtual projectile has just left the virtual character or virtual projectile stage, and has just begun to be no longer subject to the force exerted by the virtual character or virtual projectile stage. Thus, the initial position of the virtual projectile at the time of casting refers to the position at which the virtual projectile has just left the virtual character or virtual projectile stage and has just begun to be no longer subjected to the force exerted by the virtual character or virtual projectile stage. The virtual projectile is subjected to forces exerted on the virtual projectile by the virtual character or virtual projectile props before being thrown and thus attains an initial velocity. The force exerted by the virtual character or virtual throwing prop on the virtual throwing object before it is thrown out will give the virtual throwing object an acceleration in the direction of that force. The initial speed of the virtual projectile when thrown is the speed at which the virtual projectile just leaves the virtual character or virtual projectile and just begins to no longer receive the force applied by the virtual character or virtual projectile. In some embodiments, the velocity of the virtual projectile (including the initial velocity) is a vector, and thus, the velocity of the virtual projectile includes the rate and direction of movement of the virtual projectile.
In some embodiments, after the initial motion information of the virtual throwing object during throwing is obtained, the first client can calculate the position and the speed of the virtual throwing object in each calculation frame based on the initial motion information, that is, calculate the first motion information of the virtual throwing object in each calculation frame.
In some embodiments, the initial motion information of the virtual projectile may also be synchronized to the server by the first client, and the first client and the server each calculate the position and velocity of the virtual projectile at each calculated frame based on the same initial motion information and calculated frame rate. The position and the speed of the virtual throwing object calculated by the first client side in each calculation frame are first motion information, and the position and the speed of the virtual throwing object calculated by the server in each calculation frame are second motion information. Obviously, in the process of calculating the motion information of the virtual throwing object by the first client and the server, the initial motion information and the calculation frame rate adopted are the same, and the calculation rules (such as a calculation formula, parameters, coefficients and the like) adopted by the first client and the server for calculating the motion information of the virtual throwing object are also the same, so that the probability that the calculation result of the motion trail of the virtual throwing object by the client accords with the server is improved, and the accuracy of the motion control of the virtual throwing object is improved.
Step 330, controlling the virtual throwing object to move according to the first motion information.
In some embodiments, the first client controls the virtual projectile to move according to the first motion information calculated by the first client after calculating the first motion information of the virtual projectile. According to the technical scheme provided by the embodiment of the application, the movement of the virtual throwing object is controlled without the need of calculating and sending the movement information in real time according to the server, the movement information of the virtual throwing object is calculated locally at the client, and the movement of the virtual throwing object is controlled according to the movement information of the virtual throwing object calculated locally at the client, so that the problem of delay caused by unstable communication connection (such as unstable network connection) between the client and the server is avoided, the fluency of movement control of the virtual throwing object in the client is improved, the situations of picture delay, picture blocking and the like of the virtual throwing object after throwing are reduced, the fluency of a picture of the client is improved, and the control experience of a user on the virtual throwing object is also improved.
In some embodiments, the path of movement of the virtual projectile between the cast and the drop point is displayed during or after the virtual projectile movement. In some embodiments, the drop point refers to the final drop point of the virtual projectile, i.e., the point where the final stop or explosion occurs. In some embodiments, the drop point of the virtual projectile is represented during or after the virtual projectile is moved. In some embodiments, the landing point refers to a middle landing point (may also be referred to as a collision point) of the virtual throwing object during the moving process, and after the virtual throwing object moves to the middle landing point, the virtual throwing object can pop up and then fall or collide with another position point (if the virtual throwing object pops up vertically, the virtual throwing object falls to the original position point). In some embodiments, there may be only one or more intermediate drop points of the virtual projectile. In the embodiment, by visualizing the moving path or the falling point of the virtual throwing object, the method is beneficial to a user to learn, adjust and optimize the throwing skill of the virtual throwing object according to the visualized moving path or the falling point, such as adjusting the throwing gesture, the throwing angle, the throwing force, the throwing direction and the like, so that the throwing experience and the game experience of the user on the virtual throwing object are further improved.
In some embodiments, the first motion information may be used to represent the position of the virtual projectile calculated by the first client at each calculation frame. The positions of the virtual throwing objects calculated by the calculation frames are sequentially connected, and the movement track of the virtual throwing objects calculated by the first client is obtained. As introduced above, the motion profile is related to the calculated frame rate (or time step). In the embodiment of the application, the calculated frame rate of the first client and the server for the virtual throwing object is kept consistent, the calculated time step of each time is also conceivable, and after the initial motion information of the virtual throwing object or the motion information of the last calculated frame is obtained, the first client and the server can calculate the motion information corresponding to the current calculated frame according to the same time step, so that the motion information of the virtual throwing object calculated by the first client and the server in the current calculated frame is also the same. Similarly, the motion information of the virtual throwing object calculated by the first client and the server in each calculation frame is the same, so that the positions of each calculation frame (i.e. the positions of the corresponding moments of each calculation frame) obtained by the first client and the server according to the motion information are the same, and further, the motion trail of the virtual throwing object obtained by each first client and the server is the same.
In summary, according to the technical scheme provided by the embodiment of the application, the calculated frame rate of the client and the calculated frame rate of the server for the virtual throwing object are kept the same, so that the calculated result of the motion trail of the client for the virtual throwing object matches with the calculated result of the server for the motion trail of the virtual throwing object as much as possible, and the accuracy of the movement control of the client for the virtual throwing object is improved.
In addition, in the technical scheme provided by the embodiment of the application, the movement of the virtual throwing object is controlled without the need of calculating and sending the movement information in real time according to the server, the movement information of the virtual throwing object is calculated locally at the client, and the movement of the virtual throwing object is controlled according to the movement information of the virtual throwing object calculated locally at the client, so that the problem of delay caused by unstable communication connection (such as unstable network connection) between the client and the server is avoided, the fluency of the movement control of the virtual throwing object in the client is improved, the situations of picture delay, picture blocking and the like of the virtual throwing object after throwing are reduced, the fluency of a picture of the client is improved, and the control experience of a user on the virtual throwing object is also improved.
In some embodiments, if the calculated frame rates of the first client and the server are not the same for the virtual projectile, then it may be that, as shown in FIG. 4, after the virtual character throws the virtual projectile (e.g., a burning flask), the virtual projectile will successfully fly over the table 17 and fall to the desired location 18 of the user, according to the calculated path of movement 16 of the virtual projectile by the first client.
However, due to the difference in the calculated frame rates, the motion information of the first client and the server for the virtual throwing object may deviate at a certain time point, as shown in fig. 5, according to the moving path 19 of the virtual throwing object calculated by the server, the virtual throwing object cannot fly through the table 17, but collides with the table 17, and rebounds back to the vicinity of the virtual character 20 along the moving path 19, and thus the virtual character 20 may be accidentally injured (for example, the life value of the virtual character 20 is reduced). In this case, since the first client displays the screen shown in fig. 4, it is difficult for the virtual character 20 to avoid the virtual projectile that bounces back.
By adopting the technical scheme provided by the embodiment of the application, the calculated frame rate of the client and the calculated frame rate of the server for the virtual throwing object are kept the same, so that the probability that the calculated result of the motion trail of the client for the virtual throwing object accords with the calculated frame rate of the server is improved, even if an attacking virtual throwing object such as a burning flask rebounds to the vicinity of the virtual character, the picture of the virtual throwing object rebounded back is displayed in time in the client, so that the virtual character is more likely to avoid the virtual throwing object rebounded back in time, and the control experience of a user for the virtual character is improved.
In some embodiments, as shown in fig. 6, the method for controlling movement of a virtual throwing object according to the embodiment of the present application may further include the following steps (610 to 680):
in step 610, the server synchronizes the calculated frame rate of the server in real time to the first client and the at least one second client.
In some embodiments, the calculated frame rate of the server is the calculated frame rate of the server for the virtual projectile.
In response to the instruction to use the virtual projectile, the first client synchronizes initial motion information of the virtual projectile to the server, step 620.
In some embodiments, the first client generates instructions to use the virtual projectile when the virtual projectile is thrown. In some embodiments, the first client obtains initial motion information of the virtual projectile at or after the virtual projectile is thrown and synchronizes the initial motion information of the virtual projectile to the server.
The first client generates a virtual projectile based on the initial motion information, step 630.
In some embodiments, the first client generates a virtual projectile and imparts initial motion information to the virtual projectile.
The server generates a virtual projectile based on the initial motion information, step 640.
In some embodiments, the server generates a virtual projectile having initial motion information based on the initial motion information.
The server synchronizes the initial motion information of the virtual projectile to the at least one second client, step 650.
In step 660, the at least one second client synchronously generates the virtual projectile according to the initial motion information, respectively.
In some embodiments, the at least one second client each generates a virtual projectile having initial motion information based on the initial motion information.
In step 670, the first client sets the calculated frame rate of the moving component of the virtual projectile as the calculated frame rate of the server.
In some embodiments, the motion component in the first client is a component of the first client that is used to calculate motion information for the virtual projectile, and the motion component in the first client may be generated synchronously by the first client when the virtual projectile is generated.
In some embodiments, the calculated frame rate of the motion component in the first client is set to the calculated frame rate of the server, and the first client calculates motion information of the virtual projectile by the motion component at the calculated frame rate of the server and controls the movement of the virtual projectile based on the motion information.
In step 680, the at least one second client sets the calculated frame rate of the moving component of the virtual projectile as the calculated frame rate of the server, respectively.
In some possible implementations, the method further includes the steps of:
1. The first client receives third motion information sent by the server, wherein the third motion information comprises motion information of the virtual throwing object in at least one frame, which is calculated by the server;
2. the first client compares the third motion information with the first motion information;
3. Under the condition that the motion information of the first calculation frame in the first motion information is different from the motion information of the third calculation frame in the third motion information, the first client replaces the motion information of the first calculation frame in the first motion information with the motion information of the third calculation frame to obtain corrected motion information of the first calculation frame, wherein the third calculation frame and the first calculation frame are calculation frames at the same moment;
4. And calculating the motion information of the calculated frames of the virtual throwing object after the first calculated frame according to the calculated frame rate based on the corrected motion information of the first calculated frame.
In some embodiments, the first client compares the third motion information with the first motion information after receiving the third motion information sent by the server. If the comparison result is consistent, the first client does not need to correct the related data of the virtual throwing object in the first client.
In some embodiments, although the initial motion information and the frame rate of calculation used by the first client and the server in calculating the motion information of the virtual projectile are the same, the position or speed of the virtual projectile may be a floating point number in the calculation process, so that floating point number calculation is inevitably generated in the calculation process, and it is difficult to ensure that the calculation of the floating point number is completely consistent on different platforms and different devices. This results in the possibility that the motion trajectories of the virtual throws calculated by the first client and the server may not coincide. If the comparison result has a non-conforming portion, the relevant data of the virtual throwing object in the first client needs to be corrected, and the first client needs to calculate the motion information of the calculation frame after the non-conforming calculation frame according to the corrected operation information.
In some embodiments, if the motion information of each calculation frame included in the third motion information is the same as the motion information of the corresponding calculation frame in the first motion information, it means that the calculation results of the first client and the server are consistent and the third motion information is compared with the first motion information in the calculation frames, and also means that the movement track calculated by the server is the same as the movement track calculated by the first client in the calculation frames, and the first client does not need to correct the related data and information of the virtual throwing object.
In some embodiments, if the motion information of each calculation frame included in the third motion information is different from the motion information of the corresponding calculation frame in the first motion information, the motion path of the virtual thrown object calculated by the first client is shown to deviate from the motion path of the virtual thrown object calculated by the server. In the embodiment of the application, the actual motion information and the moving path of the virtual throwing object are based on the calculation result of the server, so that the first client needs to correct the related data in the first client in time, delete the motion information of the calculation frame which is inconsistent with the third motion information (such as the first calculation frame) and the calculation frame after the first calculation frame in the first client, and calculate the motion information of the calculation frame after the inconsistent calculation frame according to the corrected operation information. For example, if the motion information of the first calculation frame in the first motion information is different from the motion information of the third calculation frame in the third motion information, the first client replaces the motion information of the first calculation frame in the first motion information with the motion information of the third calculation frame to obtain corrected motion information of the first calculation frame, where both the motion information of the first calculation frame in the original first motion information and the motion information of the calculation frame after the first calculation frame need to be deleted.
In the implementation, the first client compares the third motion information with the first motion information, and corrects the part, which is not matched with the third motion information calculated by the server, of the first motion information calculated by the first client in time, so that the motion information and the moving path of the virtual throwing object calculated by the first client are ensured to be consistent with the movement control accuracy of the virtual throwing object calculated by the server as much as possible.
In some embodiments, the third motion information is part or all of the second motion information. In some embodiments, the motion information of each calculated frame in the second motion information in the server is sent as the third motion information to the first client for comparison with the first motion information by the server. In this embodiment, each calculation frame is compared, so that timeliness of correcting the motion information with calculation deviation in the first client is guaranteed.
In some embodiments, the motion information of one calculation frame is extracted at intervals of the second time interval to be used as the third motion information, so that the timeliness of correcting the motion information with calculation deviation in the first client is ensured, the signaling overhead between the server and the client is saved, and the processing resource and the processing efficiency of the client are also saved.
In some embodiments, the second time interval is a duration of n calculated frames, n being a positive integer. n may be a positive integer of 1, 2, 3,5, 10, 20, 23, 35, 47, etc., which is not particularly limited in the embodiment of the present application.
In some embodiments, the third motion information comprises motion information of at least one key frame, wherein the key frame is a calculation frame for determining that the virtual throwing object is in contact with a virtual element in the virtual environment by the server, and comparing the third motion information with the first motion information comprises comparing the motion information of the key frame with the motion information of a corresponding calculation frame in the first motion information.
In some embodiments, the third motion information refers to motion information of a key frame, and the number of key frames may be plural. In some embodiments, if the server calculates that the virtual projectile is in contact with a virtual element in the virtual environment, the corresponding calculated frame belongs to the key frame.
In some embodiments, the situation that the calculation results of the motion information of the virtual throwing object by the client and the server are not consistent basically occurs when the virtual throwing object is in contact with the virtual element. That is, the first client and the server calculate motion information of a key frame such as a collision, and thus a deviation is likely to occur. Thus, only the motion information of the key frame determined by the server may be used as the third motion information to be compared with the first motion information calculated by the first client. In the above embodiment, since the number of key frames is generally far less than the total number of calculated frames, compared with each frame, the method and the device can save signaling overhead between the server and the client and save processing resources and processing efficiency of the client while ensuring timeliness of correcting motion information with calculation bias in the first client.
In some embodiments, the motion information of the key frame includes at least one of collision point information, stop point information. In some embodiments, the collision point information includes at least one of a collision position, a collision velocity, a collision pose corresponding to a calculated frame of a virtual projectile colliding with the virtual element. In some embodiments, the stopping point information includes at least one of a stopping position, a stopping speed, and a stopping gesture corresponding to a calculated frame in which the virtual projectile is stopped.
In some embodiments, the key frame may be a calculated frame of a virtual projectile and virtual element collision, such as a virtual projectile colliding with a virtual wall, stone, table, chair, bed, stool, sofa, or the like. The motion information of the calculated frame, which is separated from the collision point after collision, may be referred to as collision point information.
In some embodiments, the key frame may also be a calculation frame for stopping the motion of the virtual throwing object, such as stopping on the ground, on the roof, in the virtual carrier, etc., the final landing point of the virtual throwing object may be referred to as a stopping point, and the motion information of the corresponding calculation frame may be referred to as stopping point information. In some embodiments, if the virtual throwing object is an explosive such as a grenade, the stopping point may also be the location point where the explosion occurs. The virtual projectile may still have a velocity before the detonation, and thus the stopping velocity of the virtual projectile may or may not be 0.
In some embodiments, for the motion information of the key frames, only the position of each key frame may be compared, that is, the collision position or the stop position in the key frame determined by the server is compared with the position of the virtual throwing object in the calculated frame corresponding to the first motion information calculated by the client, if the positions are the same, the key position points calculated by the first client and the server are the same, the movement track is the same or basically the same, in this case, the time and the position of the final stop or explosion of the virtual throwing object are not greatly influenced, and the motion information may be considered to be consistent. The embodiment reduces the comparison data amount, saves signaling overhead between the server and the client, and saves processing resources and comparison efficiency of the client.
In some embodiments, for the motion information of the key frames, only the speed of each key frame may be compared, that is, the collision speed or stop speed in the key frame determined by the server is compared (including the comparison speed and the speed direction) with the speed of the virtual throwing object in the calculation frame corresponding to the first motion information calculated by the client, if the speeds are the same, the speeds of the key position points calculated by the first client and the server are the same, and in this case, the time and the position for the final stop or explosion of the virtual throwing object are not greatly influenced, and the motion information can be considered to be consistent. The embodiment reduces the comparison data amount, saves signaling overhead between the server and the client, and saves processing resources and comparison efficiency of the client.
In some embodiments, after the virtual throwing object is generated in the first client and the server, the first client and the server each have an array for recording the position and the speed of the virtual throwing object in the key frame, when the server or the first client calculates that the virtual throwing object collides or stops, the position and the speed information of the collision point or the stopping point are added into the respective arrays, if the data in the array of the server is changed, the server synchronizes the data of the array to the first client, after the first client receives the data of the array synchronized by the server, the first client starts to compare with the first element of each frame of the data of the array of the server one by one, and the data of the key frame recorded in the array locally by the first client are the same as the data of the key frame, if each node (i.e. each key frame) is the same as the server, the calculated motion information of the first client is correct, if the data is found to be different, the local array on the first client is deleted from the node (e. the first calculation frame) after the data is deleted, and the corrected according to the calculated position and the corrected data of the virtual throwing object in the corresponding frame (i.e. the position and the corrected data of the virtual throwing object) is obtained. And then, the first client calculates the motion information of the calculated frame according to the corrected position and speed of the virtual throwing object.
In some embodiments, as shown in fig. 7, the method for controlling movement of a virtual projectile may further include the following steps (710 to 770):
in step 710, the first client records the collision point information calculated by the first client.
In some embodiments, the first client records motion information of a corresponding calculation frame as collision point information in the first array when it calculates that the virtual projectile collides with the virtual element.
In step 720, the server records the collision point information calculated by the server.
In some embodiments, the server records motion information of the corresponding calculated frame as collision point information in the second group in case that the virtual projectile collides with the virtual element.
In step 730, the server synchronizes the calculated collision point information to the first client.
In some embodiments, the server synchronizes the second array to the first client in the event of a data change (e.g., an increase in data) in the second array in the server.
In step 740, the first client compares the collision point information calculated by the first client with the collision point information calculated by the server.
In some embodiments, the first client compares the data in the local first array with the data in the second data from the server element by element.
Step 750, if the collision point information calculated by the first client is the same as the collision point information calculated by the server, the first client continues to execute step 710.
In some embodiments, if the first array and the second array are identical, indicating that the computation of the first client is not currently problematic, the first client continues to perform step 710.
In step 760, if the collision point information calculated by the first client is different from the collision point information calculated by the server, the first client deletes the data in the first client that is different from the collision point information calculated by the server.
In some embodiments, if the first array and the second array have different data, the first client deletes the data corresponding to the calculation frame with different data and the calculation frame after the calculation frame with different data in the first array.
In step 770, the first client corrects the motion information of the virtual projectile to be set as the collision point information calculated by the server in the corresponding calculation frame.
In some embodiments, the first client sets the position and the speed of the first calculation frame with different data in the first array as the position and the speed of the corresponding calculation frame in the second array, so as to obtain the corrected position and the corrected speed of the calculation frame. Then, the first client calculates motion information after the virtual throwing object from the calculation frame based on the corrected position and speed of the calculation frame.
In the implementation manner, by comparing the third motion information with the first motion information, the part, which is not matched with the third motion information calculated by the server, of the first motion information calculated by the first client is corrected in time, so that the motion information and the moving path of the virtual throwing object calculated by the first client are ensured to be consistent with the movement control accuracy of the virtual throwing object calculated by the server as much as possible.
Referring to fig. 8, a flowchart of a method for controlling movement of a virtual projectile according to another embodiment of the application is shown. In the present embodiment, the method is applied to the server described above for illustration. The method may include the following steps (810-830):
Step 810, sending a calculated frame rate of the server for the virtual throwing object to the first client, where the calculated frame rate refers to a frame rate of the server calculating motion information of the virtual throwing object, and the first client is configured to calculate, according to the calculated frame rate, first motion information of the virtual throwing object after the virtual throwing object is thrown out, and control the virtual throwing object to move according to the first motion information, where the first motion information includes motion information of the virtual throwing object calculated by the first client in at least one frame, and the motion information is used to indicate a position and a speed of the virtual throwing object.
In some embodiments, the server may send the calculated frame rate for the virtual projectile to the first client for the first client to maintain consistency in the calculated frame rate for the virtual projectile at the server.
In some embodiments, the frame rate is synchronously calculated to the first client at first time intervals.
In some embodiments, the frame rate is synchronously calculated to the first client in the event that the calculated frame rate changes.
Step 820, calculating second motion information of the virtual throwing object according to the calculated frame rate, wherein the second motion information comprises motion information of the virtual throwing object calculated by the server in at least one frame.
In some embodiments, step 820 may further comprise the steps of:
1. Receiving initial motion information synchronized by a first client, wherein the initial motion information is used for indicating an initial position and an initial speed of a virtual throwing object when the virtual throwing object is thrown out;
2. and calculating second motion information according to the initial motion information and the calculated frame rate.
And step 830, sending second motion information to at least one second client.
In some embodiments, the method further comprises sending third motion information to the first client, wherein the third motion information comprises motion information of the virtual throwing object calculated by the server in at least one frame, the third motion information is used for comparing with the first motion information, and when the motion information of the first calculation frame in the first motion information is different from the motion information of the third calculation frame in the third motion information, the motion information of the first calculation frame in the first motion information is replaced by the motion information of the third calculation frame to obtain corrected motion information of the first calculation frame, the third calculation frame and the first calculation frame are calculation frames at the same moment, and the corrected motion information of the first calculation frame is used for calculating the motion information of the calculation frame of the virtual throwing object behind the first calculation frame.
In some embodiments, the third motion information includes motion information for at least one key frame, the key frame being a calculated frame that the server determines that the virtual projectile is in contact with a virtual element in the virtual environment. In some embodiments, the motion information of the key frame is used to compare with the motion information of the corresponding calculated frame in the first motion information.
In some embodiments, the motion information of the key frame comprises at least one of collision point information and stopping point information, wherein the collision point information comprises at least one of a collision position, a collision speed and a collision gesture corresponding to a calculated frame of the virtual throwing object colliding with the virtual element, and the stopping point information comprises at least one of a stopping position, a stopping speed and a stopping gesture corresponding to a calculated frame of the virtual throwing object stopping.
For an explanation of the steps of the embodiment of fig. 8, reference may be made to the content of the embodiment of fig. 3, which is not described herein.
In summary, according to the technical scheme provided by the embodiment of the application, the calculated frame rate of the client and the calculated frame rate of the server for the virtual throwing object are kept the same, so that the calculated result of the motion trail of the client for the virtual throwing object matches with the calculated result of the server for the motion trail of the virtual throwing object as much as possible, and the accuracy of the movement control of the client for the virtual throwing object is improved.
The following are examples of the apparatus of the present application that may be used to perform the method embodiments of the present application. For details not disclosed in the embodiments of the apparatus of the present application, please refer to the embodiments of the method of the present application.
Referring to fig. 9, a block diagram of a movement control device for a virtual projectile according to an embodiment of the application is shown. The device has the function of realizing the method for controlling the movement of the virtual throwing object at the first client side, wherein the function can be realized by hardware or by executing corresponding software by the hardware. The device may be the first terminal device described above, or may be provided on the first terminal device. The apparatus 900 may include a frame rate acquisition module 910, an information calculation module 920, and a mobile control module 930.
The frame rate obtaining module 910 is configured to obtain a calculated frame rate of the server for the virtual projectile, where the calculated frame rate refers to a frame rate of the server calculating motion information of the virtual projectile.
The information calculating module 920 is configured to calculate, according to the calculated frame rate, first motion information of the virtual thrown object after the virtual thrown object is thrown, where the first motion information includes motion information of the virtual thrown object calculated by the first client in at least one frame, where the motion information is used to indicate a position and a speed of the virtual thrown object.
The movement control module 930 is configured to control the virtual projectile to move according to the first motion information.
In some embodiments, the apparatus further comprises an information determination module and an information transmission module.
The information determining module is used for determining initial motion information of the virtual throwing object when the virtual throwing object is thrown out, and the initial motion information is used for indicating an initial position and an initial speed of the virtual throwing object when the virtual throwing object is thrown out.
The information sending module is used for sending the initial motion information to the server, the server is used for calculating second motion information of the virtual throwing object according to the initial motion information and the calculated frame rate, and the second motion information comprises the motion information of the virtual throwing object in at least one frame, which is calculated by the server.
In some embodiments, the device further comprises an information receiving module, an information comparing module and an information replacing module.
The information receiving module is configured to receive third motion information sent by the server, where the third motion information includes motion information of the virtual throwing object in at least one frame, where the motion information is calculated by the server.
The information comparison module is used for comparing the third motion information with the first motion information.
The information replacing module is configured to replace, when the motion information of a first calculation frame in the first motion information is different from the motion information of a third calculation frame in the third motion information, the motion information of the first calculation frame in the first motion information with the motion information of the third calculation frame to obtain corrected motion information of the first calculation frame, where the third calculation frame and the first calculation frame are calculation frames at the same time.
The information calculating module 920 is further configured to calculate, based on the corrected motion information of the first calculation frame, motion information of a calculation frame of the virtual projectile after the first calculation frame according to the calculation frame rate.
In some embodiments, the device further comprises a third motion information comprising motion information of at least one key frame, wherein the key frame refers to a calculated frame when the server determines that the virtual throwing object is in contact with a virtual element in a virtual environment, and the information comparison module is used for comparing the motion information of the key frame with the motion information of a corresponding calculated frame in the first motion information.
In some embodiments, the motion information of the key frame comprises at least one of collision point information and stopping point information;
the collision point information comprises at least one of a collision position, a collision speed and a collision gesture corresponding to a calculation frame of the virtual throwing object colliding with the virtual element;
The stopping point information comprises at least one of a stopping position, a stopping speed and a stopping posture corresponding to a calculated frame for stopping the virtual throwing object.
In some embodiments, the frame rate acquisition module 910 is configured to:
the method comprises the steps of receiving the calculated frame rate synchronized by the server at intervals of a first time, or receiving the calculated frame rate synchronized by the server under the condition that the calculated frame rate changes.
In summary, according to the technical scheme provided by the embodiment of the application, the calculated frame rate of the client and the calculated frame rate of the server for the virtual throwing object are kept the same, so that the calculated result of the motion trail of the client for the virtual throwing object matches with the calculated result of the server for the motion trail of the virtual throwing object as much as possible, and the accuracy of the movement control of the client for the virtual throwing object is improved.
Referring to fig. 10, a block diagram of a movement control device for a virtual throwing object according to another embodiment of the present application is shown. The device has the function of realizing the method example of the movement control of the virtual throwing object at the server side, wherein the function can be realized by hardware or can be realized by executing corresponding software by the hardware. The device may be the server described above or may be provided on the server. The apparatus 1000 may include a frame rate transmission module 1010, an information calculation module 1020, and an information transmission module 1030.
The frame rate sending module 1010 is configured to send, to a first client, a calculated frame rate of the server for the virtual projectile, where the calculated frame rate refers to a frame rate of motion information of the virtual projectile calculated by the server, and the first client is configured to calculate, after the virtual projectile is thrown out, first motion information of the virtual projectile according to the calculated frame rate, and control the virtual projectile to move according to the first motion information, where the first motion information includes motion information of the virtual projectile calculated by the first client in at least one frame, and the motion information is used to indicate a position and a speed of the virtual projectile.
The information calculating module 1020 is configured to calculate, according to the calculated frame rate, second motion information of the virtual thrown object, where the second motion information includes motion information of the virtual thrown object calculated by the server in at least one frame.
The information sending module 1030 is configured to send the second motion information to at least one second client.
In some embodiments, the information calculation module 1020 is configured to:
Receiving initial motion information synchronized by the first client, wherein the initial motion information is used for indicating an initial position and an initial speed of the virtual throwing object when the virtual throwing object is thrown out;
and calculating the second motion information according to the initial motion information and the calculated frame rate.
In some embodiments, the information sending module 1030 is further configured to send third motion information to the first client, where the third motion information includes motion information of the virtual throwing object calculated by the server in at least one frame, the third motion information is used for comparing with the first motion information, and when motion information of a first calculation frame in the first motion information is different from motion information of a third calculation frame in the third motion information, the motion information of the first calculation frame in the first motion information is replaced with motion information of the third calculation frame, so as to obtain corrected motion information of the first calculation frame, and the corrected motion information of the first calculation frame is used for calculating and obtaining motion information of a calculation frame of the virtual throwing object after the first calculation frame.
In some embodiments, the third motion information comprises motion information of at least one key frame, wherein the key frame refers to a calculated frame when the server determines that the virtual projectile is in contact with a virtual element in a virtual environment, and the comparing the third motion information with the first motion information comprises comparing the motion information of the key frame with the motion information of a corresponding calculated frame in the first motion information.
In some embodiments, the motion information of the key frame comprises at least one of collision point information and stopping point information;
the collision point information comprises at least one of a collision position, a collision speed and a collision gesture corresponding to a calculation frame of the virtual throwing object colliding with the virtual element;
The stopping point information comprises at least one of a stopping position, a stopping speed and a stopping posture corresponding to a calculated frame for stopping the virtual throwing object.
In some embodiments, the frame rate sending module 1010 is configured to:
And synchronizing the calculated frame rate to the first client at first time intervals, or synchronizing the calculated frame rate to the first client if the calculated frame rate changes.
In summary, according to the technical scheme provided by the embodiment of the application, the calculated frame rate of the client and the calculated frame rate of the server for the virtual throwing object are kept the same, so that the calculated result of the motion trail of the client for the virtual throwing object matches with the calculated result of the server for the motion trail of the virtual throwing object as much as possible, and the accuracy of the movement control of the client for the virtual throwing object is improved.
It should be noted that, in the apparatus provided in the foregoing embodiment, when implementing the functions thereof, only the division of the foregoing functional modules is used as an example, in practical application, the foregoing functional allocation may be implemented by different functional modules, that is, the internal structure of the device is divided into different functional modules, so as to implement all or part of the functions described above. In addition, the apparatus and the method embodiments provided in the foregoing embodiments belong to the same concept, and specific implementation processes of the apparatus and the method embodiments are detailed in the method embodiments and are not repeated herein.
Referring to fig. 11, a block diagram of a terminal device 1100 according to an embodiment of the present application is shown. The terminal device 1100 may be an electronic device such as a cell phone, tablet computer, game console, electronic book reader, multimedia playing device, wearable device, PC, etc. The terminal device is used for implementing the movement control method of the virtual throwing object on the first client side provided in the above embodiment. The terminal device may be the first terminal device 13 in the implementation environment shown in fig. 2. Specifically, the present application relates to a method for manufacturing a semiconductor device.
In general, terminal device 1100 includes a processor 1101 and memory 1102.
The processor 1101 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and the like. The processor 1101 may be implemented in at least one hardware form of DSP (DIGITAL SIGNAL Processing), FPGA (Field Programmable GATE ARRAY ), PLA (Programmable Logic Array, programmable logic array). The processor 1101 may also include a main processor, which is a processor for processing data in a wake-up state, also referred to as a CPU (Central Processing Unit ), and a coprocessor, which is a low-power processor for processing data in a standby state. In some embodiments, the processor 1101 may integrate a GPU (Graphics Processing Unit, image processor) for rendering and drawing of content required to be displayed by the display screen. In some embodiments, the processor 1101 may also include an AI (ARTIFICIAL INTELLIGENCE ) processor for processing computing operations related to machine learning.
Memory 1102 may include one or more computer-readable storage media, which may be non-transitory. Memory 1102 may also include high-speed random access memory, as well as non-volatile memory, such as one or more magnetic disk storage devices, flash memory storage devices. In some embodiments, a non-transitory computer readable storage medium in memory 1102 is used to store a computer program and is configured to be executed by one or more processors to implement the method of movement control of a virtual projectile on the first client side described above.
In some embodiments, terminal device 1100 can optionally further include a peripheral interface 1103 and at least one peripheral. The processor 1101, memory 1102, and peripheral interface 1103 may be connected by a bus or signal lines. The individual peripheral devices may be connected to the peripheral device interface 1103 by buses, signal lines or circuit boards. Specifically, the peripheral devices include at least one of radio frequency circuitry 1104, a display screen 1105, audio circuitry 1106, and a power supply 1107.
It will be appreciated by those skilled in the art that the structure shown in fig. 11 is not limiting and that terminal device 1100 may include more or fewer components than shown, or may combine certain components, or may employ a different arrangement of components.
Referring to fig. 12, a block diagram of a server according to an embodiment of the present application is shown. The server is used for implementing the movement control method of the virtual throwing object on the server side provided in the above embodiment. Specifically, the present application relates to a method for manufacturing a semiconductor device.
The server 1200 includes a CPU (Central Processing Unit ) 1201, a system Memory 1204 including a RAM (Random Access Memory ) 1202 and a ROM (Read-Only Memory) 1203, and a system bus 1205 connecting the system Memory 1204 and the central processing unit 1201. The server 1200 also includes a basic I/O (Input/Output) system 1206, which facilitates the transfer of information between various devices within the computer, and a mass storage device 1207 for storing an operating system 1213, application programs 1214, and other program modules 1215.
The basic input/output system 1206 includes a display 1208 for displaying information and an input device 1209, such as a mouse, keyboard, etc., for user input of information. Wherein the display 1208 and the input device 1209 are coupled to the central processing unit 1201 via an input-output controller 1210 coupled to a system bus 1205. The basic input/output system 1206 may also include an input/output controller 1210 for receiving and processing input from a number of other devices, such as a keyboard, mouse, or electronic stylus. Similarly, the input output controller 1210 also provides output to a display screen, a printer, or other type of output device.
The mass storage device 1207 is connected to the central processing unit 1201 through a mass storage controller (not shown) connected to the system bus 1205. The mass storage device 1207 and its associated computer-readable media provide non-volatile storage for the server 1200. That is, the mass storage device 1207 may include a computer readable medium (not shown), such as a hard disk or CD-ROM (Compact Disc Read-Only Memory) drive.
The computer readable medium may include computer storage media and communication media without loss of generality. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes RAM, ROM, EPROM (Erasable Programmable Read Only Memory, erasable programmable read-only memory), EEPROM (ELECTRICALLY ERASABLE PROGRAMMABLE READ ONLY MEMORY, erasable programmable read-only memory), flash memory or other solid state memory, CD-ROM, DVD (Digital Video Disc, high density digital video disc) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices. Of course, those skilled in the art will recognize that the computer storage medium is not limited to the one described above. The system memory 1204 and mass storage device 1207 described above may be collectively referred to as memory.
The server 1200 may also operate via a network, such as the internet, connected to remote computers on the network, in accordance with various embodiments of the present application. I.e., the server 1200 may be connected to the network 1212 through a network interface unit 1211 coupled to the system bus 1205, or alternatively, the network interface unit 1211 may be used to connect to other types of networks or remote computer systems (not shown).
In an exemplary embodiment, there is also provided a computer-readable storage medium in which a computer program is stored, which when executed by a processor, implements the above-described method of controlling movement of a virtual thrown object on a first client side, or implements the above-described method of controlling movement of a virtual thrown object on a server side.
Alternatively, the computer-readable storage medium may include a ROM (Read-Only Memory), a RAM (Random-Access Memory), an SSD (Solid State disk STATE DRIVES), an optical disk, or the like. The random access memory may include, among other things, reRAM (RESISTANCE RANDOM ACCESS MEMORY, resistive random access memory) and DRAM (Dynamic Random Access Memory ).
In an exemplary embodiment, a computer program product is also provided, the computer program product comprising a computer program stored in a computer readable storage medium. The processor of the computer device reads the computer program from the computer-readable storage medium, and the processor executes the computer program so that the computer device executes the movement control method of the virtual thrown object on the first client side or the movement control method of the virtual thrown object on the server side.
It should be noted that, before and during the process of collecting the relevant data of the user, the present application may display a prompt interface, a popup window or output voice prompt information, where the prompt interface, popup window or voice prompt information is used to prompt the user to collect the relevant data currently, so that the present application only starts to execute the relevant step of obtaining the relevant data of the user after obtaining the confirmation operation of the user to the prompt interface or popup window, otherwise (i.e. when the confirmation operation of the user to the prompt interface or popup window is not obtained), the relevant step of obtaining the relevant data of the user is finished, i.e. the relevant data of the user is not obtained. In other words, all user data collected by the present application is collected with the consent and authorization of the user, and the collection, use and processing of relevant user data requires compliance with relevant laws and regulations and standards of the relevant country and region.
It should be understood that references herein to "a plurality" are to two or more. The character "/" indicates a fractional symbol, the number preceding the character "/" is a numerator, and the number following the character "/" is a denominator.
The foregoing description of the exemplary embodiments of the application is not intended to limit the application to the particular embodiments disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the application.