angelslife26 wrote:Peut-on directement mettre l'image convertie sur la calto??
Pas encore. Il va falloir Ndless.
La seule manière de mettre une image (mais en plus moche et en n/b) directement sur la calto, c'est mon convertisseur^^.
angelslife26 wrote:Peut-on directement mettre l'image convertie sur la calto??
angelslife26 wrote:Peut on mettre une image d'un texte (en screenshot) sur la calto ou on pourrait y voir quelque chose?
JayTe wrote:Bon voila, j'ai fait ce qu'avait proposé critor:
Pour convertir les images: BMPtoC. Petit prog que je viens de faire et qui (contrairement à ce que son nom laisse penser) prend en charge tous les formats communs comme les bmp, jpg, png...
Il faut lui faire créer un fichier .c du nom de votre choix.
L'image fournie en entrée peut être de n'importe quelle taille, en niveau de gris ou en couleur, mais plus elle est grosse et plus elle sera longue à afficher.
Ensuite il faut compiler ce fichier:
Show/Hide spoilerAfficher/Masquer le spoiler
photo.c
- Code: Select all
#include "screen.c"
#include "keys.c"
//remplacez image.c par le nom du fichier créé par le programme BMPtoC
#include "image.c"
void dispIMG(int xoff, int yoff, unsigned char img[][256], unsigned int width, unsigned int height)
{
unsigned int i, j;
for(i = 0; i width; i ++)
{
for(j = 0; j height; j ++)
{
setPixel(xoff + i, yoff + j, img[j][i]);
}
}
}
int main()
{
int e = 0, ximg = 0, yimg = 0, t;
dispIMG(ximg, yimg, image, image_width, image_height);
while(1)
{
e = 0;
if(isKeyUpPressed())
{
yimg --;
e = 1;
}
if(isKeyDownPressed())
{
yimg ++;
e = 1;
}
if(isKeyLeftPressed())
{
ximg --;
e = 1;
}
if(isKeyRightPressed())
{
ximg ++;
e = 1;
}
if(e)
{
clrscr();
dispIMG(ximg, yimg, image, image_width, image_height);
}
}
return 0;
}
avec screen.c:
- Code: Select all
void setPixel(int x, int y, unsigned int color)
{
static unsigned char *scr = (unsigned char *) 0xa4000100;
if(x = 0 x 320 y = 0 y 240)
scr[y*160+x/2]=x1? (scr[y*160+x/2]0xF0)+color : (scr[y*160+x/2]0x0F)+(color 4);
}
void clrscr()
{
int i,j;
for(i = 0; i 320; i ++)
for(j = 0; j 240; j ++)
setPixel(i, j, 0xF);
}
et keys.c:
- Code: Select all
asm(".macro is_key_pressed row, column");
asm("ldr r0, =(0x900E0000 + row )");
asm("ldrh r0, [r0]");
asm("tst r0, column");
asm(".endm");
int isKeyLeftPressed()
{
asm("is_key_pressed 0x1e, #0b000001000000");
asm("movne r0, #0x0");
asm("moveq r0, #0x1");
}
int isKeyRightPressed()
{
asm("is_key_pressed 0x1e, #0b000000000100");
asm("movne r0, #0x0");
asm("moveq r0, #0x1");
}
int isKeyUpPressed()
{
asm("is_key_pressed 0x1e, #0b000000000001");
asm("movne r0, #0x0");
asm("moveq r0, #0x1");
}
int isKeyDownPressed()
{
asm("is_key_pressed 0x1e, #0b000000010000");
asm("movne r0, #0x0");
asm("moveq r0, #0x1");
}
On peut faire bouger l'image en appuyant sur les flèches directionnelles, et même la faire sortir de l'écran (c'est pour ça que ça marche avec des images plus grandes que l'écran de la nspire.
Au final on peut avoir quelque chose comme ça:
![]()
a+
JayTe
JayTe wrote:Merci critor![]()
Pour faire un autre topic... j'y avais pas trop pensé ce coup ci parce que c'est la continuation des travaux de Levak depuis le début du topic... Mais la prochaine fois que je ferais un nouveau truc qui sort un peu du sujet du topic, j'en créerai un , promis![]()
C'est vrai que maintenant on va pouvoir commencer à faire des vrais jeux, et pas simplement des démos graphiques...![]()
critor2000 wrote:JayTe wrote:Merci critor![]()
Pour faire un autre topic... j'y avais pas trop pensé ce coup ci parce que c'est la continuation des travaux de Levak depuis le début du topic... Mais la prochaine fois que je ferais un nouveau truc qui sort un peu du sujet du topic, j'en créerai un , promis![]()
C'est vrai que maintenant on va pouvoir commencer à faire des vrais jeux, et pas simplement des démos graphiques...![]()
Bon ben je n'attends plus que tu postes ton archive (même si c'est pas encore bien documenté, ce n'est pas grave) pour t'encenser dans une news.
Si tu te sens pas à l'aise, tu peux m'envoyer l'archive, ou l'envoyer à Mic.
Return to Native: Ndless, Linux, ...
Users browsing this forum: ClaudeBot [spider] and 3 guests