Android上的Pygame

时间:2014-05-29 13:20:53

标签: android python pygame

我想知道是否有人可以详细解释如何在Android手机上运行使用Pygame开发的游戏/应用程序。我最近完成了对PacMan的编程,它在我的计算机上完美运行,但我认为如果我可以在手机上运行它会很棒。我尝试按照 http://pygame.renpy.org/android-packaging.html 上的说明进行操作,但每次在IDLE上运行“import android”时,我都会收到错误消息,说它没有找到模块。有人可以清楚地解释如何设置android模块吗?

另外,在我的程序中,我使用了if(event.key == K_UP或event.key == K_w)等代码:direction = UP。但是手机上没有箭头键。我需要使用什么代码来查看用户是否用手指向上滑动屏幕 - >向下或向左 - >对,等等。

任何帮助都会很棒。谢谢< 3

5 个答案:

答案 0 :(得分:4)

android有一个pyGame子集。但是,这需要特殊的重新加工和更改程序。希望它不会很难。

http://pygame.renpy.org/writing.html

http://pygame.renpy.org/index.html

然而关于你的第二个问题,我无法发出声音,因为我还没有足够的经验。

答案 1 :(得分:2)

我认为android的pygame子集会很好,但我不相信它的功能,我使用kivy作为其跨平台 如果你决定使用pygame子集用于android你在Android设备的屏幕上触摸翻转将是你在桌面上的鼠标移动所以我说,把触摸视为鼠标好运

答案 2 :(得分:2)

你的第一部分有一些非常好的答案,所以我不会回答这个问题。 (我来这里也是为了研究它的用途!)

然而,问题的第二部分应该更容易。

鼠标对象在鼠标按下事件时会将触摸坐标保存到MX和MY变量 然后当触发鼠标向上事件时,使用新坐标并使用MX和MY以及这个新点计算向量。滑动的距离和角度。使用三角学或数学模块作为角度(研究arctan2)。

然后您可以在if,elif,else中使用它来确定角度的象限和距离,以确定滑动是否有效(如果它大于某个值)。

我在移动设备上,所以不幸的是我不能举一个例子,但是我确信你很容易用这个指导来解决问题。

答案 3 :(得分:0)

对于第二个问题,另一个网站有一个答案。

https://amp.reddit.com/r/Python/comments/2ak14j/made_my_first_android_app_in_under_5_hours_using/

它说您可以尝试这样的代码

if android:
    android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)

我希望它能对您有所帮助。

答案 4 :(得分:0)

我已经为 android 运行了 pygame!!!!

首先,我使用将错误保存到文件来调试应用程序。 我得到的错误是在 android 上它只能在全屏下运行。 我已经创建了小应用程序并且可以正常工作:

import sys, os
andr = None
try:
    import android
    andr = True
except ImportError:
    andr = False
try:
    import pygame
    import sys
    import pygame
    import random
    import time
    from pygame.locals import *
    pygame.init() 
    fps = 1 / 3
    width, height = 640, 480
    screen = pygame.display.set_mode((width, height), FULLSCREEN if andr else 0)
    width, height = pygame.display.get_surface().get_size()
    while True:
        screen.fill((random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
        pygame.display.flip()
        time.sleep(fps)
except Exception as e:
    open('error.txt', 'w').write(str(e))

截图:https://i.stack.imgur.com/4qXPe.png
规范文件中的要求:

requirements = python3,pygame

APK 文件大小只有 12 MB!