π
<-
Chat plein-écran
[^]

Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Message non lude Admin » 02 Fév 2019, 21:31

jean-baptiste boric avait déjà travaillé à une modification du firmware NumWorks afin d'étendre les possibilités graphiques du module Python kandinsky, lui rajoutant les fonctions :
  • draw_line(x1,y1,x2,y2,color) pour le tracer de lignes
  • fill_rect(x,y,w,h,color) pour le tracer de rectangles pleins
Dans les deux cas ces fonctions n'étaient pas connectées à la fonction Python setpixel(x,y,color) mais à du code C permettant donc des tracés optimaux, notamment pour le rafraichissement de sprites dans des jeux.

Aujourd'hui jean-baptiste boric poursuit son chemin dans le but de nous permettre enfin de coder en Python des jeux graphiques jouables, en nous diffusant une nouvelle version de son firmware amélioré.

Voyons donc ensemble les dernières nouveautés


9895A première vue, bizarrement,pas de nouveauté kandinsky.

L'on note toujours comme seuls et uniques ajouts :
  • draw_line(x1,y1,x2,y2,color)
  • fill_rect(x,y,w,h,color)

Mais histoire d'être sûr, explorons le module kandinsky à l'aide du script suivant :
Code: Tout sélectionner
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
  id=-1
  try:
    import sys
    try:
      if sys.platform=='nspire':id=0
      if sys.platform=='TI-Python Adapter':id=4
    except:id=3
  except:
    try:
      import kandinsky
      id=1
    except:
      try:
        if chr(256)==chr(0):id=5+(not ("HP" in version()))
      except:
        id=2
  return id
 
platform=getplatform()
#lines shown on screen
plines=[29,12,  7, 9,11,0,0]
#max chars per line
#(error or new line if exceeded)
pcols =[53,99,509,32,32,0,0]

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*ls):
  global curline
  st=""
  for s in ls:
    if not(isinstance(s,str)):
      s=str(s)
    st=st+s
  stlines=1+int(len(st)/ncols)
  if curline+stlines>=nlines:
    input("Input to continue:")
    curline=0
  print(st)
  curline+=stlines

def sstr(obj):
  try:
    s=obj.__name__
  except:
    s=str(obj)
    a=s.find("'")
    b=s.rfind("'")
    if a>=0 and b!=a:
      s=s[a+1:b]
  return s

def isExplorable(obj):
  s=str(obj)
  return s.startswith("<module '") or s.startswith("<class '")

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c=0
  for itms in sorted(dir(pitm)):
    c=c+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if isExplorable(itm):
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,pitmsl2,False)
    except:
      mprint(hd+itms)
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c

Et bingo, oh que oui il y a des choses, simplement elles ne sont pas listées dans la boîte à outils.

10220Déjà après les sorties graphiques, Jean-Baptise s'attaque maintenant aux entrées clavier en définissant des codes pour l'ensemble des touches du clavier et rajoutant la fonction get_keys() pour connaître la ou les touches pressées ! :bj:
10216102171021810219


10221Mais ce n'est pas tout, nous avons également de nouvelles fonctions de sorties graphiques :
  • get_pixels(x,y,width,data)
  • set_pixels(x,y,width,data)
  • wait_vblank()

10222Alors, mission remplie ou pas avec tout ça ? Peut-on enfin coder un Mario pour la calculatrice NumWorks ?

Nous te proposons d'aller juger par toi-même en testant la fluidité du jeu PONG codé par Jean-Baptiste en exploitant ces nouvelles fonctionnalités, premier jeu Python contrôlable au clavier ! :bj:

Attention au fait que le firmware diffusé par Jean-Baptiste dans ce contexte est basé sur l'état actuel du code source public de la calculatrice NumWorks, et que celui-ci est actuellement en phase bêta de la future version 10.0.0. Des problèmes peuvent donc apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants (DS, examens, concours...). :#non#:


Téléchargement : firmware 1.10.0 bêta précompilé avec ces améliorations (installable facilement via webdfu_numworks )
Code : https://github.com/numworks/epsilon/pull/746
Source : viewtopic.php?t=22284&p=239388#p239388
 
Ce compte ne reçoit pas de MP / This account does not receive PMs.
Avatar de l’utilisateur
AdminAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 0.5%
 
Messages: 458
Images: 28
Inscription: 30 Aoû 2011, 11:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Message non lude compsystems » 03 Fév 2019, 15:05

Hello, very good update

There are many articles of education that inform that one of the ways to initiate or improve algorithmic and computational reasoning is to manipulate graphics and write games.
Avatar de l’utilisateur
compsystems
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 40.2%
 
Messages: 256
Inscription: 30 Mai 2011, 13:44
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Message non lude ptijoz » 05 Fév 2019, 12:41

j'ai essayé en mettant la rom sur la NW est c'est vraiment sympa ! ce pong :)
sinon savez vous comment mettre la rom sur l'émulateur ? (pour faire des copies d'écran c'es plus facile que se faire des photos de la calculatrice)
Un peu poète, un peu geek, un peu écolo
Avatar de l’utilisateur
ptijoz
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.6%
 
Messages: 333
Images: 0
Inscription: 17 Oct 2018, 15:38
Localisation: France Loir et Cher
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: a la poursuite du vent et des etoiles.

Re: Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Message non lude jean-baptiste boric » 05 Fév 2019, 18:58

J'ai fait quelques ajustements depuis la publication de mon firmware, le pong arrive maintenant à tenir les 40 Hz de l'écran (c'est deux fois plus fluide que le firmware publié). Pour jouer avec le script sur émulateur, il faut compiler ma branche et soit utiliser EPSILON_GETOPT pour l'injecter à la ligne de commande, soit trafiquer les scripts préchargés.

Je regarderai un de ces jours si la technique de bourrer les pixels à la volée comme sur Atari 2600 tiendra depuis MicroPython, mais même si ça marche ce serait assez improbable que NumWorks accepterait de merger un truc pareil...
Avatar de l’utilisateur
jean-baptiste boricPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 4.5%
 
Messages: 374
Inscription: 21 Déc 2015, 22:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
GitHub: boricj

Re: Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Message non lude telpe51 » 06 Fév 2019, 15:04

Alors là, je dis BRAVO :#top#: :#top#: :#top#: !!! On va pouvoir coder avec interaction clavier :8): . C'est vraiment du beau travail : Merci ! :D :D :D . (A noter : la touche d'interruption du programme pong est la touche "Home" et non pas la touche "Retour").
Et ne pas oublier de renommer le fichier 10.0.0_beta_kandinsky_getkeys.bin en 10.0.0_beta_kandinsky_getkeys.bin.rom pour que le download marche.
Avatar de l’utilisateur
telpe51VIP++
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 14.1%
 
Messages: 63
Images: 1
Inscription: 18 Nov 2017, 12:31
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile


Retourner vers News NumWorks

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 40 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.
1063 utilisateurs:
>1041 invités
>17 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)