suite...

j'ai regardé un peu ce qui n'allait pas au niveau de la precision des armes.

1. dans le fichier classic.xml, les position x/y ne correspondent pas bien au images des armes, peut etre que les images ont été modifiée... (ci joint un fichier corrigé)

2. j'ai l'impression dans le code qu'il y a confusion entre les Weapon::PosXY(..) et Weapon::RotationPointXY(..) (je n'ai pas compris a quoi les valeurs calculee correpondaient vraiment).

le viseur s'affiche en se basant sur ActiveCharacter().GetHandPosition(x,y); donc a priori les balles devrait partir de ce meme point, et non pas de PosXY ou RotationPointXY selon les armes...

en corrigeant le fichier classic.xml et en modifiant le code pour faire partir tous les projectiles depuis "ActiveCharacter().GetHandPosition(x,y);", je retrouve une trajectoire qui correspond >exactement< au ciblage du viseur :))

ex pour gun.cpp, on aurait maintenant:

void BalleGun::Tire()

{

PrepareTir();

// Set the initial position.

int x,y;

//ActiveTeam().GetWeapon().RotationPointXY (x, y);

ActiveCharacter().GetHandPosition(x, y);

//x -= image->GetWidth()/2;

//y -= image->GetHeight()/2;

SetXY (x,y);

// Set the initial speed.

SetSpeed (BULLET_SPEED, ActiveTeam().crosshair.GetAngleRad());

}

et voila maintenant c'est encore mieux :)) encore bravo, c'est génial !

(un peu lent en 1280x1024, mais ca doit venir de SDL ca.. dommage)

rich

<?xml version="1.0" encoding="iso-8859-1"?>
<game_mode>


  <allow_character_selection>before_first_action_and_end_turn</allow_character_selection>
  <!-- either 'always','never','before_first_action','change_on_end_turn','before_first_action_and_end_turn'-->

  <duration_turn>60</duration_turn>
  <duration_turn_end>2</duration_turn_end>
  <gravity>9.81</gravity>
  <safe_fall>10</safe_fall>
  <damage_per_fall_unit>7</damage_per_fall_unit>

  <max_teams>4</max_teams>
  <max_characters>6</max_characters>

  <weapons>
    <airhammer>      
      <position origin="hand" x="0" y="0" />
      <min_angle>0</min_angle>
      <max_angle>0</max_angle>
      <nb_ammo>5</nb_ammo>
      <unit_per_ammo>20</unit_per_ammo>
      <damage>5</damage>
    </airhammer>

    <dynamite>
      <position origin="hand" x="-1" y="-6" />
      <nb_ammo>6</nb_ammo>
      <damage>75</damage>
      <mass>1</mass>
      <explosion_range>3</explosion_range>
      <blast_force>9</blast_force>
      <blast_range>4</blast_range>
      <duree>3000</duree>
    </dynamite>

    <tux>
      <position origin="hand" x="-6" y="-15" />
      <nb_ammo>1</nb_ammo>
      <damage>50</damage>
      <mass>30</mass>
      <min_angle>-89</min_angle>
      <max_angle>89</max_angle>
      <explosion_range>2</explosion_range>
      <blast_range>2.4</blast_range>
      <blast_force>6</blast_force>
      <speed>20</speed>
    </tux>

    <gnulauncher>
      <position origin="hand" x="-8" y="-3" />
      <category>4</category>
      <max_strength>20</max_strength>
      <nb_ammo>2</nb_ammo>
      <damage>80</damage>
      <mass>10</mass>
      <air_resist_factor>0.5</air_resist_factor>
      <min_angle>-89</min_angle>
      <max_angle>89</max_angle>
      <explosion_range>2.5</explosion_range>
      <blast_range>2.5</blast_range>
      <blast_force>6</blast_force>
      <tps_avt_explosion>10</tps_avt_explosion>
      <rebound_factor>8.0</rebound_factor>
    </gnulauncher>
    
    <bazooka>
      <position origin="hand" x="-20" y="-18" />
      <max_strength>20</max_strength>
      <nb_ammo>-1</nb_ammo>
      <damage>50</damage>
      <mass>20.0</mass>
      <air_resist_factor>0.9</air_resist_factor>
      <min_angle>-89</min_angle>
      <max_angle>89</max_angle>
      <explosion_range>2</explosion_range>
      <blast_range>2.5</blast_range>
      <blast_force>6</blast_force>
    </bazooka>

    <automatic_bazooka>
      <position origin="hand" x="-20" y="-18" />
      <max_strength>20</max_strength>
      <nb_ammo>3</nb_ammo>
      <damage>60</damage>
      <mass>20.0</mass>
      <air_resist_factor>0.9</air_resist_factor>
      <min_angle>-89</min_angle>
      <max_angle>89</max_angle>
      <explosion_range>2</explosion_range>
      <blast_range>2.5</blast_range>
      <blast_force>6</blast_force>
    </automatic_bazooka>

    <grenade>
      <position origin="hand" x="-7" y="-9" />
      <max_strength>20</max_strength>
      <nb_ammo>5</nb_ammo>
      <damage>50</damage>
      <mass>1</mass>
      <air_resist_factor>0.0</air_resist_factor>
      <min_angle>-89</min_angle>
      <max_angle>89</max_angle>
      <explosion_range>2</explosion_range>
      <blast_range>2.5</blast_range>
      <blast_force>6</blast_force>
      <tps_avt_explosion>10</tps_avt_explosion>
      <rebound_factor>0.75</rebound_factor>
    </grenade>

    <holly_grenade>
      <position origin="hand" x="-10" y="-6" />
      <max_strength>12</max_strength>
      <nb_ammo>1</nb_ammo>
      <damage>80</damage>
      <mass>2</mass>
      <air_resist_factor>0.0</air_resist_factor>
      <min_angle>-89</min_angle>
      <max_angle>89</max_angle>
      <explosion_range>2.5</explosion_range>
      <blast_range>2.5</blast_range>
      <blast_force>6</blast_force>
      <tps_avt_explosion>10</tps_avt_explosion>
      <rebound_factor>0.05</rebound_factor>
    </holly_grenade>

    <cluster_bomb>
      <position origin="hand" x="-6" y="-9" />
      <max_strength>20</max_strength>
      <nb_ammo>7</nb_ammo>
      <damage>20</damage>
      <mass>2</mass>
      <air_resist_factor>0.0</air_resist_factor>
      <min_angle>-89</min_angle>
      <max_angle>89</max_angle>
      <explosion_range>2</explosion_range>
      <blast_range>2</blast_range>
      <blast_force>2</blast_force>
      <tps_avt_explosion>3</tps_avt_explosion>
      <rebound_factor>0.75</rebound_factor>
    </cluster_bomb>

    <gun>
      <position origin="hand" x="-8" y="-4" />
      <min_angle>-40</min_angle>
      <max_angle>90</max_angle>
      <nb_ammo>-1</nb_ammo>
      <unit_per_ammo>2</unit_per_ammo>
      <damage>25</damage>
      <air_resist_factor>0.0</air_resist_factor>
      <blast_range>1</blast_range>
      <blast_force>1</blast_force>
    </gun>

     <uzi>
      <position origin="hand" x="-7" y="-5" />
      <min_angle>-40</min_angle>
      <max_angle>89</max_angle>
      <nb_ammo>6</nb_ammo>
      <air_resist_factor>0.0</air_resist_factor>
      <unit_per_ammo>10</unit_per_ammo>
      <damage>5</damage>
    </uzi>

    <baseball>
      <position origin="hand" x="-9" y="-3" />
      <min_angle>-30</min_angle>
      <max_angle>75</max_angle>
      <nb_ammo>-1</nb_ammo>
      <damage>25</damage>
      <force>9</force>
      <longueur>70</longueur>
    </baseball>

    <teleportation>
      <position origin="over" x="0" y="-5" />
      <nb_ammo>5</nb_ammo>
    </teleportation> 

    <jetpack>
      <position origin="hand" x="-5" y="-6" />
      <nb_ammo>10</nb_ammo>
      <unit_per_ammo>30</unit_per_ammo>
      <change_weapon>1</change_weapon>
    </jetpack>

    <lowgrav>
      <position origin="hand" x="-24" y="-23" />
      <nb_ammo>10</nb_ammo>
      <change_weapon>1</change_weapon>
    </lowgrav>

    <ninjarope>
      <position origin="hand" x="-24" y="-23" />
      <nb_ammo>5</nb_ammo>
      <change_weapon>1</change_weapon>
      <min_angle>0</min_angle>
      <max_angle>89</max_angle>
    </ninjarope> 

    <parachute>
      <position origin="hand" x="-5" y="-6" />
      <nb_ammo>2</nb_ammo>
    </parachute>

    <suicide>
      <position origin="over" x="0" y="-5" />
      <nb_ammo>-1</nb_ammo>
      <damage>20</damage>
      <explosion_range>2.5</explosion_range>
      <blast_range>4</blast_range>
      <blast_force>2</blast_force>
    </suicide>

    <air_attack>
      <position origin="over" x="0" y="-5" />
      <nb_ammo>10</nb_ammo>
      <nbr_obus>3</nbr_obus>
      <mass>3</mass>
      <speed>7</speed>
    </air_attack> 

    <mine>
      <position origin="hand" x="-4" y="-4" />
      <nb_ammo>-1</nb_ammo>
      <damage>50</damage>
      <mass>1</mass>
      <explosion_range>2</explosion_range>
      <blast_range>2.5</blast_range>
      <blast_force>5</blast_force>
      <detection_range>1</detection_range>
    </mine>

    <skip_turn>
      <position origin="over" x="0" y="-5" />
      <nb_ammo>-1</nb_ammo>
    </skip_turn> 
  </weapons>

  <character>
    <energy initial="100" maximum="200" />
    <mass>50</mass>
    <jump strength="5" angle="-60" />
    <super_jump strength="10" angle="-80" />
    <air_resist_factor>1.0</air_resist_factor>
  </character>

</game_mode>

Répondre à