猫史档案馆


【Python作品分享】忍者大战【作品秀】

用户:無一郎無一郎查看:0 回复:1 评论:0 创建时间:2020-08-23T21:01:05


【作品展示】

center_image

 

【作品介绍】

目前写了一半,剩下的就是碰撞检测和失败提示语。可以供二人玩,目前只有两个人物,以后为继续添加

 

【作品源代码】

import time
from arcade import *
from PIL import Image
import sys

# 设置游戏的屏幕大小
SCREEN_WIDTH = 1200
SCREEN_HEIGHT = 800
SCREEN_TITLE = "忍者大战"

CENTER_X = SCREEN_WIDTH // 2
CENTER_Y = SCREEN_HEIGHT // 2

# 造型参数
LEFT = 1
RIGHT = 0


class FeiBiao(Sprite):
    def __init__(self,image):
        super().__init__(image)
        


class Player_1(Sprite):
    def __init__(self, image):
        super().__init__(image)
        self.center_x = SCREEN_WIDTH//2 -500
        self.center_y = SCREEN_HEIGHT//2 -120
        self.append_texture(load_texture(
            "resource/鸣人待机1.jpg", mirrored=True, scale=3))


class Player_2(Sprite):
    def __init__(self, image):
        super().__init__(image)
        self.center_x = SCREEN_WIDTH//2 + 500
        self.center_y = SCREEN_HEIGHT//2 - 120
        self.append_texture(load_texture(
            "resource/佐助待机.jpg", mirrored=True, scale=3))

    def update(self):
        super().update()
        
class RenZhe(arcade.Window):
    def __init__(self, width, height, title):
        super().__init__(width, height, title)
        self.setup()

    def setup(self):
        # 设置背景图片
        Image.open("resource/火影1.jpg").resize((SCREEN_WIDTH, SCREEN_HEIGHT)).save("resource/new_sea.png")
        self.background = Sprite("resource/new_sea.png")
        self.background.center_x = SCREEN_WIDTH // 2
        self.background.center_y = SCREEN_HEIGHT // 2
        self.play_sprite = Player_1("resource/鸣人待机1.jpg")
        self.play_sprite.scale = 3
        self.play_sprite_zuo = Player_2("resource/佐助待机.jpg")
        self.play_sprite_zuo.scale = 3
        self.feibiao = FeiBiao("resource/shoulijian.png")
        # 设置标题图片
        self.BiaoTi = Sprite("resource/标题.jpg")
        self.BiaoTi.center_x = CENTER_X + 50
        self.BiaoTi.center_y = CENTER_Y + 300
        # 调整游戏状态
        self.init = False
        # 调整字体的状态
        self.font_init = True

        # 设置背景音乐
        self.bigin = load_sound("resource/战斗音乐.wav") 
        play_sound(self.bigin)
        # 设置武器音乐
        self.wuqi = load_sound("resource/手里剑扔出的声音.wav")
        # 导入血量图片
        self.xueliang = Sprite("resource/血量.png")
        self.xueliang.center_x = CENTER_X - 500
        self.xueliang.center_y = CENTER_Y +300


    def on_draw(self):
        start_render()
        self.background.draw()
        self.feibiao.draw()
        self.BiaoTi.draw()

        if self.font_init == True:
            draw_text("忍者大战按TAB键进入", CENTER_X - 150, CENTER_Y-300, color.WHITE, 30, font_name=("simhei", "PingFang"))
        if self.init == True:
            self.play_sprite.draw()
            self.play_sprite_zuo.draw() 
            self.play_sprite_zuo.set_texture(LEFT)
            self.xueliang.draw()
            draw_text("20", CENTER_X - 530, CENTER_Y+293,
                      color.BLACK, 15, font_name=("simhei", "PingFang"))

    def on_update(self, delta_time):
        self.play_sprite.update()
        self.feibiao.update()



    def on_key_press(self, symbol, modifiers):
        if symbol == key.RETURN:
            img = get_image(0,0,SCREEN_WIDTH,SCREEN_HEIGHT)
            img.save("游喵彩瞬间.png")

        elif symbol == key.D:
            self.play_sprite.change_x =  3
            self.play_sprite.set_texture(0) 
            self.play_sprite.scale = 3

        elif symbol == key.A: 
            self.play_sprite.change_x = -3
            self.play_sprite.set_texture(1)    
            self.play_sprite.scale = 3


        elif symbol == key.U:
            self.feibiao.center_x = self.play_sprite.center_x
            self.feibiao.center_y = self.play_sprite.center_y
            self.feibiao.change_x = 8
            play_sound(self.wuqi)

        elif symbol == key.ESCAPE:
            sys.exit()

    def on_key_release(self, symbol, modifiers):
        if symbol == key.TAB:
            # 在特定情况下添加玩家角色
            self.init = True #调整游戏状态
            self.font_init = False #调整游戏字体的状态
            img = Image.open("resource/背景.jpg").resize((SCREEN_WIDTH,SCREEN_HEIGHT)).save("resource/new_背景.jpg") 
            self.background = Sprite("resource/new_背景.jpg")
            self.background.center_x = CENTER_X
            self.background.center_y = CENTER_Y


        elif symbol == key.D or symbol == key.A:
            self.play_sprite.scale = 3
            self.play_sprite.change_x = 0

        # elif symbol == key.U:
        #     self.feibiao.change_x = 0



if __name__ == '__main__':
    game = RenZhe(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
    run()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
不知道该叫啥的一只萌新不知道该叫啥的一只萌新

sofa~~

点赞0


评论