20-02-2011, 03:17 PM
(Modification du message : 20-02-2011, 03:31 PM par Sephi-Chan.)
En fait, il ne faut pas actualiser 15 fois, il faut le laisser s'initialiser une bonne fois pour toute. Il est intéressant de mettre le Beacon.connect sur toutes les pages du site, comme ça le client détermine la technique à utiliser avant d'en avoir besoin.
Côté serveur, voici la méthode appelée en Ajax quand on clique sur une case :
Et la méthode move_to, qui effectue le déplacement (ou pas, si les coordonnées ne correspondent à aucune case) et retourne un booléen.
Sephi-Chan
Côté serveur, voici la méthode appelée en Ajax quand on clique sur une case :
def move
if current_character.move_to(params[:x], params[:y])
RestClient.post(
"http://api.beaconpush.com/1.0.0/256bf7fd/channels/map",
{
:type => :character_move,
:character_id => current_character.id,
:x => params[:x],
:y => params[:y]
}.to_json,
{ 'X-Beacon-Secret-Key' => '27456...9f6' }
)
render :json => true
else
render :json => false
end
end
Et la méthode move_to, qui effectue le déplacement (ou pas, si les coordonnées ne correspondent à aucune case) et retourne un booléen.
def move_to(x, y)
tile = Tile.find_by_x_and_y(x, y)
!!tile && update_attributes(:tile => tile)
end
Sephi-Chan