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.
- Premièrement installer LÖVE pour Android - Apps on Google Play .
- Créer un fichier nommé 'main.lua' à l'intérieur du dossier 'lovegame'.
- é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.
- local t_d = {}
- 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
- return true
- else return false
- end end
- -- local dr_btn= require("draw_button")
- exit_x=50
- exit_y=50
- buttonl_x=050
- buttonl_y=320
- buttonr_x=600
- buttonr_y=320
- JumpButton_x = 300
- JumpButton_y = 320
- platform = {}
- player = {}
- function love.load()
- platform.height = love.graphics.getHeight()
- platform.width = love.graphics.getWidth()
- platform.x = 0
- platform.y = platform.height / 2 + 50
- player.x = love.graphics.getWidth() /2
- player.y = love.graphics.getHeight() /2 + 50
- player.img = love.graphics.newImage('purple.png')
- player.speed = 150
- player.ground = player.y
- player.y_velocity = 0
- player.jump_height = -300
- player.gravity = -500
- end
- function love.update(dt)
- local touches = love.touch.getTouches()
- for i, id in ipairs(touches) do
- x, y = love.touch.getPosition(id)
- end
- if (t_d.is_inside(x or 0,y or 0,exit_x,exit_y)) then
- love.event.quit()
- end
- if (t_d.is_inside(x or 0,y or 0,buttonr_x,buttonr_y)) then
- player.x = player.x < love.graphics.getWidth() -32 and player.x + player.speed * dt or player.x
- end
- if (t_d.is_inside(x or 0,y or 0,buttonl_x,buttonl_y)) then
- player.x = player.x > 0 and (player.x - player.speed * dt) or player.x
- end
- if (t_d.is_inside(x or 0,y or 0,JumpButton_x,JumpButton_y)) then
- player.y_velocity = player.y_velocity == 0 and player.jump_height or player.y_velocity
- end
- if player.y_velocity ~= 0 then
- player.y = player.y + player.y_velocity * dt
- player.y_velocity = player.y_velocity - player.gravity * dt
- end
- if player.y > player.ground then
- player.y_velocity = 0
- player.y = player.ground
- end
- end
- function love.draw()
- love.graphics.setColor(1,1,1)
- love.graphics.rectangle('fill',platform.x,platform.y,platform.width,platform.height)
- love.graphics.setColor(0.5,0.5,0.5)
- if ( x and y ) then
- love.graphics.circle("fill", x, y, 20)
- love.graphics.print(x.." "..y,0,0)
- end
- love.graphics.circle("fill", exit_x, exit_y, 20)
- love.graphics.circle("fill", buttonl_x, buttonl_y, 20)
- love.graphics.circle("fill", buttonr_x, buttonr_y, 20)
- love.graphics.circle("fill", JumpButton_x, JumpButton_y, 20)
- love.graphics.draw(player.img,player.x,player.y,0,1,1,0,32)
- x = nil
- y = nil
- end
Just try once. You will be in love with löve.