π
<-
Chat plein-écran
[^]

Manipulation objets graphiques dans les programmes HP-Prime

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Gilles59 » 13 Aoû 2013, 23:04

j'ai récupéré une Prime de pré-série :D
Ca va... vite ;)

Code: Tout sélectionner
EXPORT Defender()
BEGIN
LOCAL xv:=10,yv:=20;
DIMGROB_P(G1,640, 48);
DIMGROB_P(G2,320,240);
Y:=32;
FOR X:=0 TO 640 DO
  Y:=MIN(MAX(Y-1+IP(RANDOM(3)),0),47);
  LINE_P(G1,X,48,X,48-Y);
END;
RECT();
FOR X:=0 TO (640-64) DO
  xv:=MIN(MAX(xv+5*(ISKEYDOWN(8)-ISKEYDOWN(7)),0),309);
  yv:=MAX(yv+5*(ISKEYDOWN(12)-ISKEYDOWN(2)),0);
  BLIT_P(G2,0,0,320,240,G1,X,0,X+64,48);
  IF GETPIX_P(G2,xv+10,yv+5)==0 THEN BREAK; END;
  RECT_P(G2,xv,yv,xv+10,yv+5,0,#20B2AAh);
  BLIT_P(G0,G2);
END;
FOR N:=1 TO 100 DO INVERT_P; END;
END;


Lien vers la video (désolé c'est pourri mais mon tel déteste la lumière artificielle- Mais ca donne une idée).
http://www.dailymotion.com/video/x132v9e_defender_tech

Edit : j'ajoute que le prog fait ... 1 ko
Dernière édition par Gilles59 le 14 Aoû 2013, 07:04, édité 1 fois.
Avatar de l’utilisateur
Gilles59
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 93.3%
 
Messages: 12
Inscription: 09 Aoû 2013, 09:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur - y'a longtemps lol

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Lionel Debroux » 14 Aoû 2013, 06:45

Très bien ;)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Gilles59 » 14 Aoû 2013, 21:26

Une version avec un sprite de 45x22

C'est toujours aussi rapide :O

J'espère qu'il y aura d'autre façon de sauvegarder des images que des codes hex car c'est bien lourd, surout quand on voit la taille pour 1 sprite !..Mais çà marche :D

Code: Tout sélectionner
EXPORT Defender2()
BEGIN
LOCAL xv:=10,yv:=20;
DIMGROB_P(G1,700, 48);
DIMGROB_P(G2,320,240);
Y:=32;
FOR X:=0 TO 700 DO
  Y:=MIN(MAX(Y-1+IP(RANDOM(3)),0),42);
  IF X>640 THEN Y:=48 END;       
  LINE_P(G1,X,48,X,48-Y);
END;
DIMGROB_P(G3,45,22,{ #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #73003100849B849B:64, #3100730071044100:64, #3100730031007300:64, #3100730031007300:64, #7300310073007104:64, #849B310073003100:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #73006200849B849B:64, #7300740C72907104:64, #7300740C7300740C:64, #7300740C7300740C:64, #6200620041006200:64, #3100310031000100:64, #3100310031003100:64, #849B849B849B849B:64, #849B849B849B849B:64, #3100849B849B849B:64, #3100410031006200:64, #3100620031006200:64, #3100620031006200:64, #3100620031006200:64, #6200620031007300:64, #0100010001006200:64, #6200620062003100:64, #6200620062006200:64, #849B310031006200:64, #849B849B849B849B:64, #6200849B849B2210:64, #3100710431007300:64, #7300740C73007300:64, #7300740C7300740C:64, #7300740C7300740C:64, #730073007300740C:64, #0100221001003100:64, #6200730062006200:64, #6200730062007300:64, #6200620062007300:64, #849B849B849B3100:64, #620043184318849B:64, #72907290740C7300:64, #740C740C740C7300:64, #740C740C740C740C:64, #740C749C740C749C:64, #740C740C749C749C:64, #0100310062007300:64, #6200730062006200:64, #7300730073007300:64, #740C310062007300:64, #849B310062006200:64, #2210641C849B849B:64, #7104740C73006200:64, #7300730073007104:64, #7300730073007300:64, #7300730073007300:64, #73007300740C7300:64, #62000100740C740C:64, #4100410041004100:64, #740C730073007300:64, #010073007300740C:64, #4100730062003100:64, #4318849B849B4100:64, #7300620031002210:64, #7300620071044100:64, #7300620073006200:64, #7300620073006200:64, #7300740C73006200:64, #0100730073007300:64, #4100410041006200:64, #740C410041004100:64, #7300740C749C740C:64, #6200730062007300:64, #849B410041004100:64, #6200310001002210:64, #6200410041006200:64, #6200620062006200:64, #6200620062006200:64, #7300620062006200:64, #6200620062007300:64, #4100410031007300:64, #4100710471047104:64, #740C740C740C4100:64, #740C620073007300:64, #7290749C41004100:64, #849B849B0100849B:64, #4100310062003100:64, #6200310062003100:64, #6200310062003100:64, #6200310062003100:64, #6200310062006200:64, #4100410031003100:64, #7290729071047104:64, #740C740C41007104:64, #6200730073007300:64, #749C41000100740C:64, #849B849B4100749C:64, #31000100849B849B:64, #3100010041000100:64, #3100010031000100:64, #3100010031000100:64, #3100620031000100:64, #4100410031000100:64, #749C729071044100:64, #4100410071047290:64, #6200730073007300:64, #0100010073006200:64, #849B410041004100:64, #0100849B849B849B:64, #7290740C73003100:64, #749C740C740C7300:64, #730031007300740C:64, #7300730001000100:64, #4100410071043100:64, #7104710441004100:64, #4100710471047290:64, #6200730062004100:64, #0100730062007300:64, #410071044100749C:64, #849B849B849B849B:64, #4100310062003100:64, #6200310062003100:64, #6200310062003100:64, #6200310062003100:64, #6200310073003100:64, #4100410041004100:64, #4100710471047104:64, #6200730041004100:64, #7300620062007300:64, #7104410001000100:64, #0100849B22104100:64, #7104310073006200:64, #740C730073003100:64, #740C7300740C7300:64, #740C7300740C7300:64, #73007300740C7300:64, #4100410031007300:64, #4100410041004100:64, #6200730041004100:64, #6200620062007300:64, #4100410001006200:64, #4318431841007290:64, #7290740C73006200:64, #740C740C73007290:64, #740C740C740C740C:64, #749C740C749C740C:64, #740C749C749C740C:64, #310062007300740C:64, #4100410041004100:64, #6200410041004100:64, #6200620062006200:64, #4100410062006200:64, #641C849B71047104:64, #740C730062002210:64, #7300730071047104:64, #7300730073007300:64, #7300730073007300:64, #7300740C73007300:64, #0100740C740C7300:64, #4100410071046200:64, #6200710441004100:64, #6200620062006200:64, #6200620031006200:64, #849B410072907104:64, #6200310022104318:64, #6200710441007300:64, #6200730062007300:64, #6200730062007300:64, #740C730062007300:64, #7300730073007300:64, #7104729062000100:64, #3100620071047104:64, #6200620062006200:64, #3100010001006200:64, #849B410041006200:64, #310001002210849B:64, #4100410062006200:64, #6200620062006200:64, #6200620062006200:64, #6200620062006200:64, #6200620073007300:64, #0100310073006200:64, #3100620031003100:64, #3100620031006200:64, #7300010031006200:64, #849B010031006200:64, #849B0100849B849B:64, #310062003100849B:64, #3100620031004100:64, #3100620031006200:64, #3100620031006200:64, #3100620062006200:64, #0100310031006200:64, #3100310001002210:64, #3100620031003100:64, #3100620031006200:64, #849B010031003100:64, #849B849B849B849B:64, #0100849B849B849B:64, #0100410001003100:64, #0100310001003100:64, #0100310001003100:64, #6200310001003100:64, #6200310001003100:64, #0100010001006200:64, #3100310031000100:64, #3100310031003100:64, #849B010001003100:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #7290710473006200:64, #7300740C7300740C:64, #7300740C7300740C:64, #410062007300740C:64, #0100010062006200:64, #0100010001000100:64, #849B849B01000100:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B849B849B:64, #73003100849B849B:64, #3100730071044100:64, #3100730031007300:64, #3100730031007300:64, #7300310073007104:64, #849B310073003100:64, #849B849B849B849B:64, #849B849B849B849B:64, #849B849B:64 });

RECT();
FOR X:=0 TO 700 DO
  xv:=MIN(MAX(xv+5*(ISKEYDOWN(8)-ISKEYDOWN(7)),0),309);
  yv:=MAX(yv+5*(ISKEYDOWN(12)-ISKEYDOWN(2)),0);
  BLIT_P(G2,0,0,320,240,G1,X,0,X+64,48);
  IF GETPIX_P(G2,xv+45,yv+22)==0 THEN BREAK; END;
  BLIT_P(G2,xv,yv,G3);
  BLIT_P(G0,G2);
END;
FOR N:=1 TO 100 DO INVERT_P; END;
END;

END;


Trop rapide avec l'émulateur. On peut ajouter des WAIT mais le clavier répond moins bien.De plus le hdw gére bien les diagonales (fleche haut et droite en mêmetemps par ex. , l'émulateur non )
Avatar de l’utilisateur
Gilles59
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 93.3%
 
Messages: 12
Inscription: 09 Aoû 2013, 09:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur - y'a longtemps lol

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Lionel Debroux » 15 Aoû 2013, 06:53

C'est sûr que ce n'est pas très lisible... mais c'est bien que le BASIC soit si rapide :)
A-t-on confirmation de l'utilisation de l'accélérateur 2D présent dans le S3C2416, d'après toutes les datasheets et tous les manuels utilisateur, par l'OS de la Prime ?
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Gilles59 » 15 Aoû 2013, 10:20

Avec 640000 couleurs(3 octets par pixel), forcément les Sprites prennent de la place avec un codage hexa.On pourrait facilement réduire la taille des Sprite en utilisant une palette de couleur

2couleur => Taille 24 fois plus petites 1 bit = 1 pixel
16 couleur => 6 fois plus petit
256 couleur => 3 fois plus petite

Sans compter le zoom automatique pour réduire encore facilement par 4 sans que ca se voit vraiment (Un sprite 16 couleurs zoomx2 => 24 fois plus 'petit' que mon ex au dessus)

A la réflexion, il y tout ce qu'il faut integré même si pouvoir charger/sauvegarder des fichiers binaires serait top. Reste qu'avec le langage intégré des dev de type Pacman , Tetris, Space invader ... sont largement faisable avec une excellente vitesse (et facile vu le langage très souple)
Avatar de l’utilisateur
Gilles59
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 93.3%
 
Messages: 12
Inscription: 09 Aoû 2013, 09:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur - y'a longtemps lol

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Gilles59 » 19 Aoû 2013, 14:42

Juste un rapide message. J'ai continué quelques tests qui montrent que la manipulation de graphiques sur la Prime est _très_ rapide même avec le langage intégré. Les copies de de grob (objets graphiques) les uns vers les autres, complétement ou partiellement sont presque instantanés. Ca permet de faire des Sprites et même des scrollings fluides, on peut même zoomer (et dézoomer) en X et Y, un bloc image vers un autre bloc !

Même la manip pixel par pixel est assez rapide.

Par exemple, faire une 'rotation' à 90° d'une image de 100x100 pixels avec un algo aussi bête que :
Pour X:1->100, Pour Y1->100, pixon_p(y,y,getpixel_p(X,Y)) en utilisant 2 grobs prend moins 0,6 sec ! Tout cela en 64000 couleurs

Pour calculer au 1/1000ieme de sec, vous pouvez utiliser TICKS
Avatar de l’utilisateur
Gilles59
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 93.3%
 
Messages: 12
Inscription: 09 Aoû 2013, 09:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur - y'a longtemps lol

Précédente

Retourner vers News HP

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 17 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1530 utilisateurs:
>1489 invités
>36 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)