关于手机游戏中的炮弹轨迹—抛物线

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

关于手机游戏中的炮弹轨迹——抛物线

在手机游戏的开发中经常会根据一条抛物线来模拟炮弹的轨迹。在已知炮弹的发射点,射程和射击高度的情况下,完全可由

抛物线方程来模拟出炮弹的运行轨迹,当然,这里的模拟只是理想状态下的,并没有把风力等因素考虑进去。

根据炮弹的发射点(x1,y1),射程(cs)和射击高度(h)可得出抛物线的三个点:

p1:(x1,y1)

p2:(x2,y2) x2=x1+cs/2, y2=y1+h

p3:(x3,y3) x3=x1+cs, y3=y1

根据这三个点可列出抛物线方程

ax1^2+bx1+c=y1

ax2^2+bx2+c=y2

ax3^2+bx3+c=y3

计算方程得到该抛物线的系数a,b,c

得到a,b,c后,即可根据a,b,c计算出抛物线每点的轨迹。

下面的例子将说明如何绘制轨迹:

例子源码及图片下载

我的MSN是zhagy_1981@hotmail.com,欢迎指出不足之处。

例子运行效果如下:

例子canvas中的代码

import java.io.IOException;

import javax.microedition.lcdui.Graphics;

import javax.microedition.lcdui.Image;

import javax.microedition.lcdui.game.GameCanvas;

import javax.microedition.lcdui.game.SPRite;

import javax.microedition.lcdui.game.TiledLayer;

public class MyCanvas extends GameCanvas implements Runnable

{

//小船的位置

int x,y;

//小船精灵

Sprite ship;

//地图

TiledLayer background;

//图片

Image ship_IMG, sea_IMG, bullet_IMG;

//炮弹

Bullets bullets;

public MyCanvas()

{

super(true);

//初始化船的位置

x = 10;

y = 60;

try

{

ship_IMG = Image.createImage("/ship.png");

sea_IMG = Image.createImage("/sea.png");

bullet_IMG = Image.createImage("/bullet.png");

}

catch (IOException e)

{

e.printStackTrace();

}

//初始化炮弹

bullets = new Bullets(bullet_IMG);

//初始化小船

ship = new Sprite(ship_IMG, 24, 30);

ship.setPosition(x, y);

//初始化地图

background = new TiledLayer(20, 6, sea_IMG, 32, 32);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航