程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 關於手機游戲中的炮彈軌跡—拋物線

關於手機游戲中的炮彈軌跡—拋物線

編輯:JAVA編程入門知識
關於手機游戲中的炮彈軌跡——拋物線   在手機游戲的開發中經常會根據一條拋物線來模擬炮彈的軌跡。在已知炮彈的發射點,射程和射擊高度的情況下,完全可由
  拋物線方程來模擬出炮彈的運行軌跡,當然,這裡的模擬只是理想狀態下的,並沒有把風力等因素考慮進去。
  根據炮彈的發射點(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是[email protected],歡迎指出不足之處。

  例子運行效果如下:    

  例子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);
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved