Basado en la respuesta de Joshua A Saxby, creo que aunque podrías hacer juegos no funcionarán bien en Android. Así que te sugiero que pruebes el motor de juegos 2D gratuito (love2d). Es multiplataforma, por lo que su juego funcionará en win, linux y android (posiblemente ios también). Utiliza lua para el scripting que no es muy difícil cosidering usted está familiarizado con python. Puedes desarrollar y probar tu juego en tu teléfono (por ejemplo, cuando no puedes acceder a tu PC). Sólo necesitas un editor.
- Primero instala LÖVE para Android - Aplicaciones en Google Play.
- Crea un archivo llamado 'main.lua' dentro de la carpeta 'lovegame'.
- Edita este archivo (yo uso el editor vim dentro de Termux), pon tu código dentro de él y ejecuta la aplicación... Tu juego está ahora en marcha.
Intenta pegar el código de abajo para probar un juego 2d de base. Yo estaba tratando de seguir este tutorial (escrito para el ordenador) y terminó haciendo un juego para android con un poco de cambio.
- 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.