π
<-
Chat plein-écran
[^]

Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Unread postby critor » 02 Feb 2019, 21:31

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 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: Select all
#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()

10222
Alors, 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
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 90.1%
 
Posts: 32089
Images: 8369
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

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

Unread postby compsystems » 03 Feb 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.
User avatar
compsystems
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 29.7%
 
Posts: 232
Joined: 30 May 2011, 13:44
Gender: Male
Calculator(s):

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

Unread postby ptitjoz » 05 Feb 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)
User avatar
ptitjoz
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 56.6%
 
Posts: 75
Joined: 17 Oct 2018, 15:38
Location: France Loir et Cher
Gender: Not specified
Calculator(s):
Twitter: @PtitJoz

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

Unread postby jean-baptiste boric » 05 Feb 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...
User avatar
jean-baptiste boricPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 11.7%
 
Posts: 220
Joined: 21 Dec 2015, 22:22
Gender: Not specified
GitHub: boricj

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

Unread postby telpe51 » 06 Feb 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.
User avatar
telpe51VIP++
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 62.5%
 
Posts: 24
Joined: 18 Nov 2017, 12:31
Gender: Not specified
Calculator(s):


Return to News NumWorks

Who is online

Users browsing this forum: No registered users and 3 guests

Campagne de dons
Pour nous aider à financer nos déplacements sur les salons/congrès qui vous donnent du contenu exclusif

Vous aurez droit aux avantages VIP et des goodies !
46%
-
Search
-
Featured topics
Avantages VIP et goodies pour les donateurs !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
100 utilisateurs:
>66 invités
>28 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)