【发布时间】:2020-11-13 11:10:34
【问题描述】:
我对编码很陌生,所以对于硬编码和重复代码感到抱歉。这是代码
import random
import pygame, sys
from pygame.locals import *
import time
GREEN=(0,125,0)
BLUE=(0,0,125)
global Yplayer
Yplayer = 225/2
global Xplayer
Xplayer = 300
playerlinesavedata = []
playercurrent = []
global Xplayerchange
Xplayerchange=0
global Yplayerchange
Yplayerchange=0
global enemydirection
enemydirection = random.randint(1,4)
global Yenemy
Yenemy = 450
global Xenemy
Xenemy = 300
enemylinesavedata = []
enemycurrent = []
global enemy1
enemy1 = False
global Xenemychange
Xenemychange=0
global Yenemychange
Yenemychange=0
on = True
windowX = 900
windowY = 600
pygame.init()
DISPLAY=pygame.display.set_mode((windowX,windowY),0,32)
def enemymovement(enemy1,Xenemychange,Yenemychange,Xenemy,Yenemy,enemy,enemylinesavedata):
while enemy1 == True:
if enemydirection == 1:
Xenemychange-= random.randint(1,10)
print("1")
print(Xenemychange)
Xenemy+=Xenemychange
Xenemychange=0
enemy(enemylinesavedata,Yenemy,Yenemychange,Xenemy,Xenemychange)
enemy1 = False
if enemydirection == 2:
Xenemychange+= random.randint(1,10)
print("2")
print(Xenemychange)
Xenemy+=Xenemychange
Xenemychange=0
enemy(enemylinesavedata,Yenemy,Yenemychange,Xenemy,Xenemychange)
enemy1 = False
if enemydirection == 3:
Yenemychange-= random.randint(1,10)
print("3")
print(Yenemychange)
Yenemy+=Yenemychange
enemy(enemylinesavedata,Yenemy,Yenemychange,Xenemy,Xenemychange)
Yenemychange=0
enemy1 = False
if enemydirection == 4:
Yenemychange+= random.randint(1,10)
print("4")
print(Yenemychange)
Yenemy+=Yenemychange
enemy(enemylinesavedata,Yenemy,Yenemychange,Xenemy,Xenemychange)
Yenemychange=0
enemy1 = False
def enemy(enemylinesavedata,Yenemy,Yenemychange,Xenemy,Xenemychange):
for XnY in enemylinesavedata:
Yenemy+=Yenemychange
Xenemy+=Xenemychange
pygame.draw.rect(DISPLAY,BLUE, [XnY[0],XnY[1],5,5])
Yenemy+=Yenemychange
Xenemy+=Xenemychange
def player(playerlinesavedata):
for XnY in playerlinesavedata:
pygame.draw.rect(DISPLAY,GREEN,[XnY[0],XnY[1],5,5])
def main(Xplayer, Yplayer, Xplayerchange, Yplayerchange, Xenemy, Yenemy, Xenemychange, Yenemychange):
WHITE=(255,255,255)
BLUE=(0,0,255)
playerlinesavedata = []
DISPLAY.fill(WHITE)
pygame.display.update()
while on == True:
Yplayer+=Yplayerchange
Xplayer+=Xplayerchange
Yenemy+=Yenemychange
Xenemy+=Xenemychange
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
if event.type==KEYDOWN:
if event.key==K_d:
Xplayerchange+=1
if event.key==K_a:
Xplayerchange-=1
if event.key==K_w:
Yplayerchange-=1
if event.key==K_s:
Yplayerchange+=1
if event.type==KEYUP:
if event.key==K_a or K_d:
Yplayerchange=0
if event.key==K_w or K_s:
Xplayerchange=0
playercurrent = []
playercurrent.append(Xplayer)
playercurrent.append(Yplayer)
playerlinesavedata.append(playercurrent)
Yplayer+=Yplayerchange
Xplayer+=Xplayerchange
enemymovement(enemy1,Xenemychange,Yenemychange,Xenemy,Yenemy,enemy,enemylinesavedata)
enemycurrent = []
enemycurrent.append(Xenemy)
enemycurrent.append(Yenemy)
enemylinesavedata.append(enemycurrent)
Yenemy+=Yenemychange
Xenemy+=Xenemychange
Yplayer+=Yplayerchange
Xplayer+=Xplayerchange
DISPLAY.fill(WHITE)
player(playerlinesavedata)
enemy(enemylinesavedata,Yenemy,Yenemychange,Xenemy,Xenemychange)
enemymovement(enemy1,Xenemychange,Yenemychange,Xenemy,Yenemy,enemy,enemylinesavedata)
pygame.display.update()
main(Xplayer, Yplayer, Xplayerchange, Yplayerchange, Xenemy, Yenemy, Xenemychange, Yenemychange)
有什么想法吗?
它应该在你完全控制时让敌人随机移动。我还没有添加它,但我想要的是,当你撞到敌线时你会死,如果敌人撞到你,他们会死,但你可以越过你的线,他们可以越过他们的线
【问题讨论】:
标签: python-3.x