Gros caracteres pixelisés

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
drfloyd
Messages : 220
Inscription : mar. 21/août/2007 13:30
Contact :

Gros caracteres pixelisés

Message par drfloyd »

Bon,

Mon jeu avance (un jeu a tres gros pixels rétro)

j'en suis au rajout du score et des textes

j'utilise DRAWTEXT mais bon ca genere du texte fin pas en rccord avec les graphismes, moi je veux du gros pixel (façon score dans PONG)

Il n'y a pas la possibilité de faire du gros caractere tres moche ?

Merci d'avance
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Gros caracteres pixelisés

Message par flaith »

Tu peux trouver pas mal de jeux avec ce type de caractères (utilisation d'une fonte image)
un (petit) exemple ici : http://www.purebasic.fr/french/viewtopic.php?f=2&t=9974
Il y en a d'autres (Huitbit, G-Rom, Dobro, et j'en oublie ... plein plein)
Donc utilise un DisplaySprite à la place :mrgreen:
drfloyd
Messages : 220
Inscription : mar. 21/août/2007 13:30
Contact :

Re: Gros caracteres pixelisés

Message par drfloyd »

Bon j'abandonne mon idée de tres gros caracteres façon PONG, je n'y arrive pas, je suis trop débutant....

Je vais utiliser DRAWTEXT avec une police enorme tout simplement...

Par contre la aussi probleme, comment on grossit la taille des caracteres ? (par compris dans l'aide)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Gros caracteres pixelisés

Message par G-Rom »

Le principe est pourtant relativement simple , si tu veut faire du jeu , c'est une technique que tu te dois de maitrisé.
Je vais donc tenté de t'aider.

Flaith t'a parlé de Fonte bitmap , il sagit en fait de fichier image contenant les formes des lettres , tu trouvera un package intéressant ICI

on va prendre cette image en exemple :

Image

Évidement , il manque des lettres... , pour ton cas , il est important que la fonte a une largeur fixe , sinon ton code va être plus complexe.

Tout d'abord il faut que tu charges cette image en sprite via LoadSprite() , l'image plus haut va être la référence :
REFERENCE = LoadSprite(#pb_any,"Image.png")
On part du principe que notre image de référence fait 128x128 , chaque lettre fait donc 64px de coté.
PureBasic intègre depuis peu les MAP , ca va être utile pour nous.
ex :
NewMap MaPolice.i()
en conjonction avec la fonction clipsprite :
MaPolice("A") = ClipSprite(REFERENCE,0,0,64,64)
MaPolice("D") = ClipSprite(REFERENCE,64,64,64,64)
MaPolice("C") = ClipSprite(REFERENCE,0,64,64,64)
etc...
ClipSprite(REFERENCE <-- Sprite sur lequel on découpe
,0,0, <-- Position du début du découpage
64,64) <-- Taille du découpage


MaPolice("A") Contient donc l'identifiant du sprite découpé qui forme la lettre A , etc...

L'affichage d'un message en 100,100:
Texte$ = "DBCAaA" ; Y a un piège ;)
PositionX = 100
PositionY = 100

for i = 1 to len(Text$)
Lettre$ = ucase(mid(Text$,i,1)) ; on extrait la lettre via mid() & on convertit en grand caractère via ucase() pour ne pas avoir de bug avec la lettre 'a' ( pas pareil que 'A' )
DisplaySprite( MaPolice( Lettre$ ) , PositionX, PositionY ) ; on affiche grace à notre MAP !!
PositionX+64 ; on décale les caractères de 64px
next
Simple non ?
drfloyd
Messages : 220
Inscription : mar. 21/août/2007 13:30
Contact :

Re: Gros caracteres pixelisés

Message par drfloyd »

ok bien compris, merci

Sinon par contre, comment grossir la taille de la police lorsqu'on affiche un simple drawtext (100,100,"HELLO WORLD") ?
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Gros caracteres pixelisés

Message par G-Rom »

LoadFont() ??

Sinon , c'est pas clipsprite , mais grabsprite , et il faut que tu affiche la référence avant de grabé.
Répondre