lundi 31 décembre 2007

Double buffering en C# CF

Je fais un billet dessus parceque j'ai eu du mal à trouver une des informations rapidement à ce propos.

C'est quoi le double buffering ?
Un méthode de rendu.

A quoi ça sert ?
A résoudre le problème de clignotement de l'écran lorsqu'on redessine tout l'écran (flickering).

Comment on fait ?
On crée une classe qui hérite de PictureBox et on surcharge les méthodes OnPaint() et OnPaintBackground() :

protected override void OnPaint(PaintEventArgs e)
{
Bitmap buffer = new Bitmap(this.Width, this.Height);
Graphics graphics = Graphics.FromImage(buffer);
Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);
PaintEventArgs arg = new PaintEventArgs(graphics, rect);

//paint in the buffer
PaintEverythingInTheBuffer(arg);

//paint on the screen
e.Graphics.DrawImage(buffer, 0, 0);

//clean
graphics.Dispose();
buffer.Dispose();
}

protected override void OnPaintBackground(PaintEventArgs e)
{
//do nothing
}

Voilà, on peut faire plus simple en évitant de créer un PaintEvenArg et en se contentant du Graphics. On peut aussi remplir le buffer dans une fonction appelé avant l'évènement OnPaint() pour ne faire que e.Graphics.DrawImage(buffer, 0, 0); dans l'évènement OnPaint().

Voilà avec ça, adieu les clignotements !

Tower Defence


Bon voilà je m'y suis mis, histoire de voir ce qui était possible de faire sur un appareil comme le Touch. Il y a forcément quelque contraintes imposées (et même choisies):
  • pas de clavier, donc tout doit être tactile
  • les boutons qui doivent apparaîtrent sur l'écran (puisque pas de clavier) prennent sur l'aire de jeu
  • puissance et RAM limitée avec le Touch
  • je développe en C# CF
Après un peu de code, je me retrouve avec un petit Tower Defence qui fonctionne et qui possède ces fonctionnalités :
  • Ajout de de 2 types de tour différents possédant des armes différantes, des portées différantes, des cadences différentes, etc
  • Upgrade des tours
  • Augmentation des caractéristiques des enemis au fur et à mesure des nouvelles vagues d'assaut (vitesse, HP, gain, coût)
Pour le gameplay je m'inspire directement de ce très agréable Tower Defence, mais en simplifié (je pense pas implémenter d'effet de zone, peut être une tour qui tire sur plusieurs enemis en même temps pour compenser). Le but final étant d'avoir un Tower Defence qui assure un framerate minimum ! Maintenant, il faut que je rajoute d'autres types de tour, mais ça va être rapide, et que j'équilibre tout ça... Ni trop dur, ni trop facile, il faut que ça arrive à me faire tenir pendant les 35 minutes de métro entre chez moi et le bureau !
Petite info, j'ai développé l'architecture pour charger des maps depuis le file system, et donc je verrai bien un petit éditeur de map. Je pense aussi à faire une évolution du jeu vers un Tower Defence où les enemis peuvent attaquer les défenses. Dernière chose, je voulais faire design proche de Geometry Wars, mais bon je commence à regarder d'autres possibilités :
  • Warcraft 3 ? (heroic fantasy de manière générale)
  • Starcraft ? (sci-fi)
  • Lapin crétin ? (humour)
  • autres ?
Comme je suis pas trop douer en pixel art, il me faudrait un set de textures existant, je sais pas si ça existe pour le jeux vidéo ce genre de chose (gratuit ou payant) .

Je ferai un autre billet quand j'aurai une beta jouable, téléchargeable, et avec un petit guide utilisateur.

mardi 25 décembre 2007

Et en 2008 ?

Vous connaissez geometry wars ? J'ai eu l'occasion d'y jouer sur DS. C'est vraiment sympa, et tout particulièrement le design. En partant de là, j'imaginerai bien un petit jeu du style tower defence. On pourrait dessiner ses défenses avec des signes simples du genre carré, rond, croix, etc... Je tenterai bien ça en .NET 2.0, histoire de voir si ça envoie la purée à coup de graphic.DrawLine(). Point de vue ambiance, faudrait que ça tire de tous les côtés sans s'arrêter. Que ça monte crescendo tout au long du round.

Je pense que je vais regarder ça en rentrant :)

lundi 24 décembre 2007

Noël & pub

Je profite de me rappeler que j'ai un blog sur le Touch pour poster une news la veille de noël. Et oui, beaucoup beaucoup de boulot depuis 2 mois, alors quand je rentre le soir, j'ai pas vraiment envie de replonger dans le code. Cependant, le boulot avance bien, et histoire de nous faire un peu de pub je vais faire un petit compte-rendu :

Je bosse dans ma société créée avec mes 2 associés (Serge et Fabien) : Tharsis Software. On est actuellement dans l'incubateur de la ville Paris situé près de la Bourse depuis 3 mois.

Que fait-on ? Très simplement, on a développé une technologie qui nous permet de faire comme Google Earth, c'est à dire visualiser en 3D temps réel une planète en utilisant des photos satellites et des données topographiques. On peut aussi descendre très bas au niveau 3D : dernièrement on a modélisé la planète Mars avec des images du cratère Victoria en 27 cm/pixel et avec du relief, on y a alors ajouté un petit rover qui se balade dedans pour montrer la possibilité de faire de l'intéractif (tout en respectant les véritables échelles). Pour la manipulation du rover, on peut le voir vers la fin de cette vidéo. Pour info, la 1ère partie de la vidéo concerne notre logiciel SLS utilisé par le CNES.
La grosse différence avec Google Earth, c'est le service proposé : nous adaptons totalement le logiciel (contenu et contenant) au besoin de la société demandeuse. Bref, vous pouvez avoir votre Google Earth à vous (et surtout sans les placemarks de tous les autres), le tout skinné à vos couleurs, tout celà très simplement accessible depuis une page web (pas d'installation de setup.exe, ou de plugin IE, firefox, etc...).

Vous voulez tester ce à quoi ça ressemble ? On a fait une petite application basique pour facebook, I Am There, qui ajoute la photo de ses utilisateurs sur le globe en 3D, on peut alors voir qui est proche de soi et accéder à son profil.

Si toi qui lit cette news tu es une société qui recherche un outil de communication inédit, intéractif, moderne et totalement adapté à tes besoins, contacte nous !

mardi 11 septembre 2007

Charger un bitmap

Non mais c'est quoi ce délire, après un test en .Net 2.0, de charger des bitmaps de 240 * 320 pixels, je constate qu'il faut en moyenne 250 ms à la classe Bitmap pour charger l'image contenue dans une Stream... Pour remettre les choses dans le monde réel, ça veut dire un fps de 4. J'hallucine, et puis quoi encore, autant ramer avec ses mains ou couper des petits légumes à la fourchettes. N'importe quoi.

Synchronisation avec Google Calendar

Vous utilisez Google Calendar pour votre utilisation personnelle ou professionelle ? Il existe un logiciel pour synchroniser votre pocket pc avec Google Calendar, mais en continuant d'utiliser l'agenda d'Outlook, et donc son intégration dans Windows Mobile 6. La solution s'appelle:

http://www.goosync.com/

Ce logiciel transfert tout simplement votre calendrier Google sur votre pocket Outlook très simplement... Une fois intallé :). Oui, la dessus, pas bravo l'installation, c'est pas super user-friendly, mais bon, ça a le mérite de fonctionner et d'être gratuit (même si j'ai cru comprendre qu'on pouvait payer).

Bon on peut faire quoi avec ça ?
  1. Récupérer son calendrier Google
  2. Transférer les nouveaux messages sur le calendrier Google depuis son ppc
Bref, c'est chouette.

dimanche 9 septembre 2007

Enregistrer les emails et le cache d'IE sur la carte mémoire

Si vous avez configuré votre compte email sur votre Touch vous avez surement du remarquer que tout est stocké sur la mémoire du téléphone qui sature vite... Idem pour les fichiers temporaires d'Internet Explorer. La solution c'est de modifier des clés de registre comme indiqué ici.

Cependant il faut adapter Storage card en carte mémoire pour votre version française du Touch. Pour faire tout ça il faut préalablement avoir installé un logiciel pour accéder à la base de registre...

Bref histoire de simplifier tout ça, voilà un .cab pour automatiser la manip sans installer de logiciel pour modifier la base de registre.

OptimTouchFr

Je vous rappelle que c'est à vos risques et péril :) .

mardi 4 septembre 2007

En vidéo

Petite démonstration vidéo de qualité pas top qui montre la fénéantise en action.


Idées pour une v2

Que modifier à TouchMyVlc pour encore moins bouger de son lit ? En vrac :
  • une version smartphone (pour les téléphones sans écran tactile)
  • diminuer / augmenter le volume
  • récupérer la playlist directement depuis le serveur web de Vlc (et non depuis la playlist de free) de manière à gérer n'importe quelle playlist
  • afficher l'icone des chaines de Tv dans la liste
  • sélectionner une chaine avec le simple click au lieu du double click
  • changer les icones fullscreen/windowed et exit qui sont pas top
  • faire une interface originale
  • faire un .cab pour l'installation avec un racourcis dans Programmes
Que rajouteriez-vous ?

dimanche 2 septembre 2007

TouchMyVlc, la télécommande pour FreeTV

Vous avez Free comme provider, vous n'avez pas de Tv, et vous regardez les chaines via le multiposte, donc vous avez un problème : vous devez vous lever pour changer de chaine... Mais cet enfer est terminé, avec votre Touch vous pouvez maintenant controler VLC via le wifi de votre freebox. En gros, je vous ai fait une petite télécommande de VLC pour le Touch en .Net.


Installation :

1 - Sur votre Touch, télécharger et décompresser ce fichier
2 - Sur votre pc qui affiche la tv, dans VLC -> Paramètres-> Ajouter une interface -> Interface Web
3 - Sur votre Touch éxécuter TouchMyVlc, menu -> Configuration -> insérer l'adresse de votre ordinateur qui affiche la TV (probablement 192.168.0.1:8080 pour se connecter à l'interface web de Vlc)

Fonctionnalités :
  • Changer le mode plein écran / fenétré
  • Lecture / stop
  • Son on / off
  • Séléctionner la chaine dans la liste en double cliquant dessus
  • Faire défiler la liste en glissant le doigt sur les flèches (iphone-like)
  • Zapper à la chaine suivante en fesant une glissade ver la droite
  • Zapper à la chaine précédente en fesant une glissade ver la gauche
  • Quitter


Votre Touch doit être connecté en wifi. Théoriquement ça doit fonctionner avec n'importe quel ppc tactile possédant .Net 2.0. Bonne utilisation.

lundi 27 août 2007

Synchronisation avec Outlook - Office 2007

J'ai juste installé Office 2007 sous Windows Vista, fait les mises à jour. Et hop, synchronisaion du Touch avec récupération des contacts et messages. J'espère pouvoir faire des hard reboots sans devoir réécrire tous mes contacts maintenant.

Joindre une image dans Outlook...

... sans qu'elle soit redimensionnée, c est possible, juste une petite configuration à faire dans les options du visualisateur d'images de Windows Mobile 6 : Menu -> Options -> conserver la taille d'origine.

;)

dimanche 26 août 2007

Visualiser des photos "à la Touch"

Je pense pas être le seul à avoir été déçu du visualiseur de Windows Mobile 6 qui n'affiche pas la photo suivante quand vous faite une glissade sur le coté avec votre doigt... (oui je suis dur)

Quelqu'un y pense, vous pouvez trouver la dernière beta version ici. Pas encore parfait, quelques bugs et surtout, le temps de chargement de l'image est trop long (merci GDI+ du framework .Net). Mais en tous cas ça pourrait devenir vraiment bien et intuitif.

Déplacer le cache d'IE et les emails d'Outlook sur la carte mémoire

Et oui, si vous avez configuré votre Touch, vous avez du remarquer que tout est stocké sur la faible mémoire du téléphone. Pour y remédier installer les 2 .cab de ce thread des forums xda (vous devez avoir un compte) :
Ca fonctionne :)

samedi 25 août 2007

PocketCM, le clavier iphone sur Touch !

Voici un clavier gratuit à télécharger et assez efficace, qui en plus possède une skin Touch. PocketCM reprend les principales caractéristiques du déjà fameux clavier virtuel d'Apple. Si au début j'étais un peu inquiet de la taille des touches, finalement ça fonctionne bien, et maintenant je tape avec 2 doigts !

A essayer avant qu'il soit devenu impossible à télécharger vu tous les brevets qu'il doit violer...

jeudi 23 août 2007

Nouveau test de pièce jointe

Cette fois ci je teste en insérant en tant que fichier et pas image depuis outlook.

lundi 20 août 2007

Appareil photo du Touch

Pour ceux qui se demande ce que vaut le Touch en photo, voici un exemple à 2 Mpixels, en plein jour et le réglage qualité sur "fin".

C'est pas le Pérou, mais ça dépanne bien cet appareil photo.

Brochettes à Pékin

Alors là, accrochez vous ! Car figurez vous qu'à pékin vous pouvez trouver dans la rue des brochettes de cheval de mer et même d'étoile de mer !

Bon par contre, aucun doute, la cuisine chinoise est une Grande cuisine ! Tout simplement par la variété de plats, j'ai même goûté du concombre de mer !

Mais rassurez vous, la cuisine française reste numéro 1 car en chine il n'y a rien à boire excepté de la bonne bière et du sake qui vous réveille ! On est quand même loin du pays des mille et 1 vins ;)

Performances wifi

Pour ceux qui ont une Freebox, vous avez peut etre eu la surprise de voir que la connexion wifi du Touch était très instable. En fait il suffit de régler le mode d'alimentation du wifi sur Meilleure performance. Paramètres -> Connexions -> Réseau sans fils -> Mode d'alimentation -> choisissez Meilleure performance.

Ensuite je me suis permis de faire quelques tests maison, et bien contre toutes attentes mon Touch est capable de télécharger des données via le wifi à une vitesse de 450Ko/s ! C'est donc tout à fait correcte, par contre, dans ces conditions, la batterie se vide à vue d'oeil ;) .

Pour info j'ai fait ce test en utilisant mon PC comme serveur (un petit serveur UDP qui envoie des screenshots du bureau, en JPG et en continue) et un petit programme qui recupère ces données et les affiche sur le Touch. C'est la Freebox qui relit le tout.

La grande muraille de chine

Et voilà une photo de la grande muraille ! Cette version en pierre à été construite au 16 siècle, aujourd'hui il n'y a que quelques parties ouvertes au public et entretenues..

C'est tout simplement la chose la plus impressionante que j'ai pu voir en chine !

dimanche 19 août 2007

Utilisation d'outlook

Comme malheureusement gmail.com pour mobile ne permet pas l'envoi de pièce jointe, j'ai configuré outlook pour blogger à distance :)

Pour tester ça voici une photo prise à CDG terminal 2E.

dimanche 12 août 2007

Depuis le touch...

ca à l'air de fonctionner. mais gmail ne me propose pas de photo à ajouter :(

C'est partit !

C'est en urgence que je crée ce premier message, alors je vais la faire courte. J'ai acheté un HTC Touch, je pars à Pekin dans quelques heures, et je vais voir si ce petit PDAphone est capable de blogger :)

J'espère qu'il y aura des hotspots wifi !