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

【作品介绍】
目前写了一半,剩下的就是碰撞检测和失败提示语。可以供二人玩,目前只有两个人物,以后为继续添加
【作品源代码】
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