Python街机模块制作的巫婆和仙女漫游太阳系小故事交互动画by lixingqiu。

这是一个交互动画,本人用python的海龟模块,Pygame模块做过类似的动画,现在又用arcade模块做一下。不过编了个小故事。
以下是部分代码预览:

"""
巫婆和仙女漫游太阳系小故事动画。

仙女教她的外婆仙术,可是她的外婆由于年纪大了,只学了一半,总也飞不起来。所以仙女送了外婆一把天方夜谭里的神扫帚。
就这样,她们一起离开了地球,在太阳系漫游的不亦乐乎。可是,她们也要呼吸啊,带的氧气不多了。还好,西天取经回来的斗战圣佛孙悟空在暗中已经明察秋毫。
他是不是地变一瓶氧气给她们使用。聪明的仙女一子就发现了太阳系会冒出氧气瓶,她们一起收集了一些氧气,造访了水星、金星、火星、木星、土星、天王星之后,还是玩厌了。
空荡荡的太阳系好无聊,其它星球都不适合人也不适合地神仙玩,所以她们想回地球。可是那时候地球已经被邪恶的宇宙超级大BOSS灭霸给锁住了,她们接近地球时只会被撞死。
还好,有惊奇队长和神奇女侠来帮忙了。惊奇队长安装了一个按扭,只要碰到按扭,那么太阳系行星和太阳的时空就会变慢。
神奇女侠送了神秘香蕉,只要吃了香蕉就能进入地球了。快来玩下这个游戏吧,操作方法:
按上下左右方向箭头或awsd箭头一个角色碰触按钮,让另一个角色顺利的吃到香蕉,然后一起飞回地球。
 
"""
import time
import math
import arcade
import random

SCREEN_WIDTH = 1350
SCREEN_HEIGHT = 780
SCREEN_TITLE = "Python街机动画:巫婆和仙女漫游太阳系动画,作者:李兴球"
MOVEMENT_SPEED = 5

class Planet(arcade.Sprite):
   
    def __init__(self,image,position,period):
        """image:造型图片,position:初始坐标,初始角度"""
        super().__init__(image)
        x,y = position
        self.center_x = SCREEN_WIDTH / 2
        self.center_y = SCREEN_HEIGHT / 2           
        self.a = y * 1.5                        # 长半轴
        self.b = y                              # 短半轴
        self.period = period        
        self.direction = 90
        
class Oxygen(arcade.Sprite):
    """氧气瓶类"""
    def __init__(self,image):
        super().__init__(image,0.5)
        self.center_x = random.randrange(SCREEN_WIDTH)
        self.center_y = random.randrange(SCREEN_HEIGHT)
        self.alpha = 80
        
    
class MyGame(arcade.Window):
    """
    继承自窗口的MyGame类.
    """
    timespace = 1                                             # 游戏的时空变量
    can_home = False                                          # 能回家的逻辑变量
    def __init__(self, width, height, title):
        super().__init__(width, height, title)
        self.frame_counter = 0                                # 帧计数器
        self.planet_list = arcade.SpriteList()                # 新建角色列表,以便统一渲染
        self.all_stars_list = arcade.SpriteList()             # 所有星星列表,包括恒星和行星
        self.oxygen_list = arcade.SpriteList()                # 氧气瓶列表
        self.astronaut_list = arcade.SpriteList()             # 宇航员列表
        
    def setup(self):
        """ 这里是对游戏中的各个对象进行设置 """

        # 背景角色生成
        self.background = arcade.Sprite("bg.png")
        self.background.center_x = SCREEN_WIDTH / 2
        self.background.center_y = SCREEN_HEIGHT / 2

        # 太阳角色生成
        self.sun = arcade.AnimatedTimeSprite()                # 新建动画时序角色
        self.sun.center_x = SCREEN_WIDTH//2
        self.sun.center_y = SCREEN_HEIGHT//2   
            
        # 宇航员角色生成
        self.astronaut1 = arcade.Sprite("princess.png",0.25)  # 宇航员1角色,第二个参数是比例
        self.astronaut1.status = "live"                       # 自定义属生,
        self.astronaut1.oxygens = 1000                        # 自定义属性,氧气数量
        self.astronaut1.center_x = 100
        self.astronaut1.center_y = 100
        self.astronaut2 = arcade.Sprite("witch.png",0.25)     # 宇航员2角色,第二个参数是比例
        self.astronaut2.status = "live"                       # 自定义属生,
        self.astronaut2.oxygens = 1000                        # 自定义属性,氧气数量
        self.astronaut2.center_x = SCREEN_WIDTH-100
        self.astronaut2.center_y = SCREEN_HEIGHT-100
        self.astronaut_list.append(self.astronaut1)
        self.astronaut_list.append(self.astronaut2)

            
    def on_key_release(self, key, modifiers):
        """松开按键. """
            
        
    def update(self, x):
        """每帧更新游戏内在逻辑"""       

    
    def on_draw(self):
        """
        渲染屏幕        """            
 

def main():
    """ Main method """
    window = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
    window.setup()
    arcade.run()


if __name__ == "__main__":
    main()

如需要查看完整代码,请扫码付款:

VIP免费查看

已有1人支付

本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。QQ群免费教学群:225792826 (提供真实姓名可入群)
李兴球的博客_Python创意编程技术前沿_pygame » Python街机模块制作的巫婆和仙女漫游太阳系小故事交互动画by lixingqiu。
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页