關于手機游戲中的炮彈軌跡——拋物線   在手機游戲的開發中經常會根據一條拋物線來模擬炮彈的軌跡。在已知炮彈的發射點,射程和射擊高度的情況下,完全可由
拋物線方程來模擬出炮彈的運行軌跡,當然,這里的模擬只是理想狀態下的,并沒有把風力等因素考慮進去。
  根據炮彈的發射點(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 sh
ip;
 //地圖
 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);