Home > other >  Python plane war enemy planes ghosting
Python plane war enemy planes ghosting

Time:11-28

Hello, this is new a
I according to the b black programmers write a tutorial of plane war, but the problem is always has a double
Wait on you teach may be part of the code for this problem!
Problem picture


The main program:


Class:

CodePudding user response:

Didn't see what problem, paste the code to come

CodePudding user response:

But but this is all the code

CodePudding user response:

Use copy and paste the code, don't use pictures

CodePudding user response:

Game background didn't update

CodePudding user response:

After the update location update wrong

CodePudding user response:



I added an update on this side of the update background still has a double

CodePudding user response:

Class document source:

Import the random
The import pygame

SCREEN_RECT=pygame. The Rect (0, 0, 480, 700)
FPS=60
CREATE_ENEMY_EVENT=pygame. USEREVENT
HERO_FIRE_EVENT=pygame. USEREVENT + 1


The class GameSprite (pygame. Sprite. Sprite) :
"" "game spirit base class "" "

Def __init__ (self, image_name, speed=1) :
Super () __init__ ()

The self. The image=pygame. Image. The load (image_name)
The self. The rect=self. Image. Get_rect ()
The self. The speed=speed

Def update (self) :
# the default in the vertical direction
The self. The rect. + y=self. Speed


Class Background (GameSprite) :
"" "the game background "" "

Def __init__ (self, is_alt=False) :
Image_name="./images/background. PNG "
Super () __init__ (image_name)

If is_alt:
The self. The rect. Y=- self. The rect. Height


The class Enemy (GameSprite) :
Def __init__ (self) :
Super () __init__ ("./images/enemy1. PNG ")
The self. The speed=random. Randint (1, 3)
The self. The rect. Bottom=0
Max_x=SCREEN_RECT. Width - self. The rect. Width
The self. The rect. X=random. Randint (0, max_x)

Def update (self) :
Super (). The update ()
If the self. The rect. Y & gt; SCREEN_RECT. Height:
The self. The kill ()

Def __del__ (self) :
Print (" enemy planes flying in and hang up ")


The class Hero (GameSprite) :
Def __init__ (self) :
Super () __init__ ("./images/me1. PNG ", 0)

The self. The rect. Centerx=SCREEN_RECT. Centerx
The self. The rect. Bottom=SCREEN_RECT. Bottom - 120

The self. The bullets=pygame. Sprite. Group ()

Def update (self) :
The self. The rect. X +=self. Speed

If the self. The rect. Left & lt; 0:
The self. The rect. Left=0
If the self. The rect. Right & gt; SCREEN_RECT. Right:
The self. The rect. Right.=SCREEN_RECT right

Def the fire (self) :

For I in (0) :

Bullet=bullet ()
Bullet. The rect. Bottom=self. The rect. Y - I * 20
Bullet. The rect. Centerx=self. The rect. Centerx

Self. Bullets. The add (bullet)

The class Bullet (GameSprite) :
Def __init__ (self) :
Super () __init__ ("./images/bullet1. PNG ", 2)

Def update (self) :
Super (). The update ()
If the self. The rect. Bottom & lt; 0:
The self. The kill ()

Def __del__ (self) :
Print (" the bullet be destroyed ")

Main function:
The import pygame
The from pygame. Sprite import Group

The from class_gamesprite import *


The class PlaneGame (object) :


Def __init__ (self) :
Print (" game initialization ")
The self. The screen=pygame. Display. Set_mode (SCREEN_RECT. Size)
The self. The clock=pygame. Time. Clock ()
Self. __create_sprites ()

Pygame. Time. Set_timer CREATE_ENEMY_EVENT, (1000)
Pygame. Time. Set_timer HERO_FIRE_EVENT, (500)

Def __create_sprites (self) :
Bg1=Background ()
Bg2=Background (True)
Self. Bg_group=pygame. Sprite. Group (bg1 and bg2)
Self. Enemy_group=pygame. Sprite. Group () # enemy planes flying in and out at the beginning so don't need to add the object inside the
The self. The hero=hero ()
Self. Hero_group=pygame. Sprite. Group (self. Hero)

Def start_game (self) :
Print (" game ")

While True:
The self. The clock. Tick (FPS)

Self. __event_handler ()

Self. __check_collide ()

Self. __update_sprites ()

Pygame. Display. The update ()

Def __event_handler (self) :

# event listenersFor the event in pygame. Event. The get () :
If the event. The type==pygame. QUIT:
PlaneGame. __game_over ()
Elif event. Type==CREATE_ENEMY_EVENT:
Enemy=enemy ()
Self. Enemy_group. Add (Enemy ())

nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related