-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
138 lines (104 loc) · 3.1 KB
/
main.py
File metadata and controls
138 lines (104 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
import pygame as pyg
from random import randint
from math import sqrt, pow
# Variable global
player_speed = 2.5
enemy_speed = 1.2
bullet_speed = 3
# Initialize the pygame
pyg.init()
# create the screen
screen = pyg.display.set_mode((800, 600))
#Background
background = pyg.image.load("Image/Background.png")
# Title and Icon
pyg.display.set_caption("SPACE INVANDERS")
icon = pyg.image.load("Image/spaceship.png")
pyg.display.set_icon(icon)
# Player
playerImg = pyg.image.load("Image/spaceship_player.png")
playerX = 370
playerY = 480
playerX_change = 0
playerY_change = 0
# Enemy
enemyImg = pyg.image.load("Image/enemy.png")
enemyX = randint(0, 800)
enemyY = randint(50, 150)
enemyX_change = enemy_speed
enemyY_change = 40
#Bullet
#Ready - You can't see the bullet on the screen
#Fire - The Bullet is currently moving
bulletImg = pyg.image.load("Image/bullet.png")
bulletX = 0
bulletY = 480
bulletY_change = bullet_speed
bullet_state = "ready"
score = 0
def player(x, y):
screen.blit(playerImg, (x, y))
def enemy(x, y):
screen.blit(enemyImg, (x, y))
def fire_bullet(x, y):
global bullet_state
bullet_state = "fire"
screen.blit(bulletImg, (x + 16, y + 10))
def isCollision(enemyX, enemyY, bulletX, bulletY):
distance = sqrt(pow(enemyX - bulletX, 2) + pow(enemyY - bulletY, 2))
if distance < 27:
return True
else:
return False
# Game Loop
running = True
while running:
screen.fill((0, 0, 0))
#Background add
screen.blit(background, (0, 0))
for event in pyg.event.get():
if event.type == pyg.QUIT:
running = False
# If keastroke ins press check / faz um check pra vê foi clicado
if event.type == pyg.KEYDOWN:
if event.key == pyg.K_LEFT or event.key == pyg.K_a:
playerX_change = -player_speed
if event.key == pyg.K_RIGHT or event.key == pyg.K_d:
playerX_change = player_speed
if event.key == pyg.K_SPACE:
if bullet_state is "ready":
bulletX = playerX
fire_bullet(bulletX,bulletY)
if event.type == pyg.KEYUP:
if event.key == pyg.K_LEFT or event.key == pyg.K_RIGHT \
or event.key == pyg.K_d or event.key == pyg.K_a:
playerX_change = 0
playerX += playerX_change
if playerX <= 0:
playerX = 0
elif playerX >= 736:
playerX = 736
enemyX += enemyX_change
if enemyX <= 0:
enemyX_change = enemy_speed
enemyY += enemyY_change
elif enemyX >= 736:
enemyX_change = -enemy_speed
enemyY += enemyY_change
# Bullet Movement pygame
if bulletY <= -100:
bulletY = 480
bullet_state = "ready"
if bullet_state is "fire":
fire_bullet(bulletX, bulletY)
bulletY -= bulletY_change
#Collision
collision = isCollision(enemyX, enemyY, bulletX, bulletY)
if collision:
bulletY = 480
bullet_state = "ready"
score += 1
print(score)
player(playerX, playerY)
enemy(enemyX, enemyY)
pyg.display.update()