Puis-je créer des jeux Android en utilisant Python ou Pygame ?


Selon la réponse de Joshua A Saxby, je pense que bien que vous puissiez créer des jeux, ils ne seront pas performants sur Android. Je vous suggère donc d'essayer Free 2D Game Engine (love2d) . Il s'agit d'un moteur multiplateforme, ce qui signifie que votre jeu fonctionnera sur Windows, Linux et Android (peut-être aussi sur ios). Il utilise le langage lua pour les scripts, ce qui n'est pas très difficile si vous connaissez déjà le langage python. Vous pourriez développer et tester votre jeu directement sur votre téléphone(par exemple lorsque vous ne pouvez pas avoir un accès à votre pc). Vous avez juste besoin d'un éditeur.

  1. Premièrement installer LÖVE pour Android - Apps on Google Play .
  2. Créer un fichier nommé 'main.lua' à l'intérieur du dossier 'lovegame'.
  3. éditer ce fichier(j'utilise l'éditeur vim à l'intérieur de Termux) ,mettre votre code à l'intérieur et lancer l'application ... Votre jeu est maintenant opérationnel.

Essayer de coller le code ci-dessous pour tester un jeu 2d de base. J'essayais de suivre ce tutoriel (écrit pour ordinateur) et j'ai fini par faire un jeu pour android avec un peu de changement.

  1. local t_d = {} 
  2. t_d.is_inside = function (x,y,box_x,box_y) if (x >= box_x-20 and x <= box_x+20 and y >= box_y-20 and y <= box_y+20) then 
  3. return true 
  4. else return false 
  5. end end 
  6. -- local dr_btn= require("draw_button") 
  7. exit_x=50 
  8. exit_y=50 
  9. buttonl_x=050 
  10. buttonl_y=320 
  11. buttonr_x=600 
  12. buttonr_y=320 
  13. JumpButton_x = 300 
  14. JumpButton_y = 320 
  15.  
  16. platform = {} 
  17. player = {} 
  18. function love.load() 
  19. platform.height = love.graphics.getHeight()  
  20. platform.width = love.graphics.getWidth()  
  21. platform.x = 0 
  22. platform.y = platform.height / 2 + 50 
  23. player.x = love.graphics.getWidth() /2 
  24. player.y = love.graphics.getHeight() /2 + 50 
  25. player.img = love.graphics.newImage('purple.png') 
  26. player.speed = 150 
  27. player.ground = player.y 
  28. player.y_velocity = 0 
  29. player.jump_height = -300 
  30. player.gravity = -500 
  31. end 
  32. function love.update(dt) 
  33.  
  34. local touches = love.touch.getTouches() 
  35.  
  36. for i, id in ipairs(touches) do 
  37.  
  38. x, y = love.touch.getPosition(id) 
  39.  
  40. end 
  41. if (t_d.is_inside(x or 0,y or 0,exit_x,exit_y)) then 
  42. love.event.quit() 
  43. end 
  44. if (t_d.is_inside(x or 0,y or 0,buttonr_x,buttonr_y)) then 
  45. player.x = player.x < love.graphics.getWidth() -32 and player.x + player.speed * dt or player.x 
  46. end 
  47. if (t_d.is_inside(x or 0,y or 0,buttonl_x,buttonl_y)) then 
  48. player.x = player.x > 0 and (player.x - player.speed * dt) or player.x 
  49. end 
  50. if (t_d.is_inside(x or 0,y or 0,JumpButton_x,JumpButton_y)) then 
  51. player.y_velocity = player.y_velocity == 0 and player.jump_height or player.y_velocity 
  52. end 
  53. if player.y_velocity ~= 0 then 
  54. player.y = player.y + player.y_velocity * dt 
  55. player.y_velocity = player.y_velocity - player.gravity * dt 
  56. end 
  57. if player.y > player.ground then 
  58. player.y_velocity = 0 
  59. player.y = player.ground 
  60. end 
  61.  
  62. end 
  63.  
  64. function love.draw() 
  65.  
  66. love.graphics.setColor(1,1,1) 
  67. love.graphics.rectangle('fill',platform.x,platform.y,platform.width,platform.height) 
  68. love.graphics.setColor(0.5,0.5,0.5) 
  69. if ( x and y ) then 
  70. love.graphics.circle("fill", x, y, 20) 
  71. love.graphics.print(x.." "..y,0,0) 
  72. end 
  73. love.graphics.circle("fill", exit_x, exit_y, 20) 
  74. love.graphics.circle("fill", buttonl_x, buttonl_y, 20) 
  75. love.graphics.circle("fill", buttonr_x, buttonr_y, 20) 
  76. love.graphics.circle("fill", JumpButton_x, JumpButton_y, 20) 
  77. love.graphics.draw(player.img,player.x,player.y,0,1,1,0,32) 
  78.  
  79. x = nil 
  80. y = nil 
  81. end 

Just try once. You will be in love with löve.