Voici une petite astuce qui peut vous simplifier la vie. Dans un grand nombre de jeux, nous avons besoin de stocker la liste des niveaux terminés par le joueur, et de pouvoir y accéder rapidement. La méthode la plus simple est de stocker cette donnée dans un SharedObject que nous retrouverons à chaque lancement de session.
Sauvegarde des données
Pour stocker une liste d'entiers dans un SharedObject sous la forme d'un entier seul, il faut sauvegarder la somme des puissances de 2 des valeurs souhaitées.
var mySo:SharedObject = SharedObject.getLocal("myApplication");
var dataToSave : Array = [2, 5, 4];
var somme : int = 0;
for each(var data : int in dataToSave)
{
somme += Math.pow(2, data);
}
mySo.data.savedValue = somme;
Récupération des données
Et pour récupérer les données :
var intValue : int = mySo.data.savedValue;
var currentIndex : int; // identifiant du niveau à tester
if( ( Math.pow(2, currentIndex) & intValue) > 0 )
{
// L'entier est bien présent dans la liste
}
Lire la suite >>
La version 3 de NME est enfin disponible sur haxelib !!
Le rêve de tout développeur est en train de se réaliser : developper une application, et la publier sur toutes les plates formes ! C'est enfin possible grâce à haXe et NME.
Quelques précisions :
Avant d'aller plus loin, voyons un peu de quoi il s'agit. Si vous êtes familié avec haXe, vous ne l'êtes peut etre pas avec NME.
NME (pour Neko Media Engine) est un framework open source permettant de publier une application vers tout type de plate forme (windows, linux, android, ios, et j'en passe). Ce framework s'appui sur le langage haXe, ce qui permet d'avoir une syntaxe proche de l'Actionscript. NME s'occupe ensuite de mapper tout ca, et de publier pour la plate forme voulue.
Nous ne nous interresserons pour le moment, qu'à la plate forme android.
Voici un schéma permettant de comprendre le fonctionnement :
Lire la suite >>
Voici une petite démo d'un effet pixels.
Importez l'image de votre choix, puis sauvegardez le png généré :
Fonctionnement :
Chaque pixel de l'image source est récupéré, puis éventuellement dupliqué (selon la valeur du zoom), et pour terminer on lui applique un effet de bordure.
L'effet de bordure n'est visible que pour un zoom d'au moins x3.
Il faut avoir la place de rajouter un pixel de bordure de chaque coté du pixel de l'image source.
Dû aux
limitations du flash player 10, l'image de destination (taille image source x coefficient de zoom)
ne peut dépasser 8191 pixels de haut et de large (restriction du
BitmapData).
Lire la suite >>
En AS3, il n'y a pas de fonction native permettant de tronquer un nombre. Voici comment faire ça:
public function truncate(val:Number, precision:uint=0):Number
{
var multiplier : Number = Math.pow(10, precision);
return Math.round(val * multiplier) / multiplier;
}
truncate(10.2653, 2); //-> va retourner 10.26
Il existe une autre manière de le faire, mais nettement moins propre. Il s'agit de convertir le nombre en chaine de caractère, tronquer cette chaine, puis refaire la convertion ...
Lire la suite >>
Admettons que nous voulons monitorer et afficher sous forme de courbe le fps d'une application.
La manière la plus simple à mettre en place est de passer par un Shape sur lequel on utilise l'API de dessin.
Cependant, si nous commencons à avoir plusieurs courbes à afficher en meme temps sur une grosse application, cela peut nous reduire de maniere importante les performances.
Une manière moins couteuse de dessiner un graphe est donc de passer par un BitmapData sur lequel on remplit les pixels nécessaires avec la bonne couleur.
Par exemple, admettons que nous avons les valeurs stockées sous la forme d'un vecteur:
var fpsValues : Vector.< Int >;
Nous partons du principe que nous remplissons le vecteur en ayant toujours un nombre maximal d'entrée inférieurs ou égal à la taille max du graphe, pour éviter d'avoir trop de données inutiles.
Attention: comme nous parlons en pixel, nous ne pouvons pas avoir de réels, seulement des entiers.
Lire la suite >>
Showing 1 - 5 of 65 Articles | Page 1 of 13