猫史档案馆


【Python作品分享】大鱼吃小鱼半成品【作业帖】

用户:打不死的小强hcb打不死的小强hcb查看:0 回复:1 评论:0 创建时间:2022-09-03T21:03:20


【作品展示】

center_image

 

【作品介绍】

这个是python高阶课地28课大鱼吃小鱼1

下下周发成品

我发过来只是打打卡

主要可以控制主角小丑鱼上下左右移动

 

【作品源代码】

from arcade import *
from PIL import Image

width = 1200
height = 900
title = "大鱼吃小鱼"
MOVEMENT_SPEED = 4
LEFT = 0
RIGHT =1

#玩家
class Player(Sprite):

    def __init__(self,image):

        super().__init__(image)
        self.center_x = width//2
        self.center_y = height//2
        self.append_texture(load.texture("resource/player.png",mirrored = True,scale = 1))
    #按键控制
    def update(self):

        super().update()
        if self.left < 0:
            self.left = 0
        elif self.right>width:
            self.right = width
        elif self.top >height:
            self.top = height
        elif self.bottom <0:
            self.bottom = 0

class Game(arcade.Window):

    def __init__(self,width,height,title):

        super().__init__(width, height,title)
        self.setup()

    def setup(self):

        #适配图片
        Image.open("resource/sea.png").resize((width, height)
                                              ).save("resource/new_sea.png")
        #背景图片
        self.background = Sprite("resource/new_sea.png")
        self.background.center_x = width//2
        self.background.center_y = height//2
        #添加玩家
        self.player_sprite = Player("resource/player.png")
    #绘制
    def on_draw(self):

        start_render()
        self.background.draw()
        self.player_sprite.draw()
    #刷新
    def on_update(self,delta_time):

        self.player_sprite.update()
    #按键按下
    def on_key_press(self,symbol,modifiers):
        #上
        if symbol == (kry.UP or key.W):
            self.player_sprite.change_y = MOVEMENT_SPEED
        #下
        elif symbol == (kry.DOWN or key.S):
            self.player_sprite.change_y = -MOVEMENT_SPEED
        #左
        elif symbol == (kry.LEFT or key.A):
            self.player_sprite.change_x = -MOVEMENT_SPEED
            self.player_sprite.set_texture(LEFT)
        #右
        elif symbol == (kry.RIGHT or key.D):
            self.player_sprite.change_x = MOVEMENT_SPEED
            self.player_sprite.set_texture(RIGHT)
    #按键松开
    def on_key_release(self, symbol, modifiers):
        #上下
        if symbol ==( key.UP or key.DOWN or key.W or key.S):
            self.player_sprite.change_y = 0
        #左右
        elif symbol == (key.LEFT or key.A or key.D or key.RIGHT):
            self.player_sprite.change_x = 0

if __name__ == "__mian__":
    game = Game(width,height,title)
    run()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
打不死的小强hcb打不死的小强hcb

不知道什么原因我这边运行不了,但我老师运行得了 imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%BF%BB%E7%99%BD%E7%9C%BC.gif"alt="emotion_编程猫_翻白眼"

点赞0


评论