Python制作一个建造摩天大楼的小游戏
时间: 2023-12-29 16:01:45 浏览: 40
好的,我们可以使用Python的Pygame库来制作一个简单的建造摩天大楼的小游戏。下面是一个简单的游戏框架,你可以在此基础上进行修改和完善。
首先,我们需要导入Pygame库,并初始化游戏:
```python
import pygame
pygame.init()
# 设置窗口大小
size = (700, 500)
screen = pygame.display.set_mode(size)
# 设置游戏标题
pygame.display.set_caption("Building Skyscrapers")
# 游戏时钟
clock = pygame.time.Clock()
```
接下来,我们需要定义一些常量和变量,比如建筑材料的种类、建筑的高度、建筑材料的价格等:
```python
# 建筑材料的种类和价格
materials = {
"Concrete": 5,
"Steel": 10,
"Glass": 8,
"Wood": 3
}
# 建筑的高度
height = 0
# 当前选中的建筑材料
selected_material = "Concrete"
# 玩家所拥有的金钱
money = 100
```
然后,我们需要定义一些函数,比如更新游戏状态、绘制游戏界面等:
```python
# 更新游戏状态
def update():
global height, money
height += 1
money -= materials[selected_material]
# 绘制游戏界面
def draw():
# 绘制背景
screen.fill((255, 255, 255))
# 绘制建筑
pygame.draw.rect(screen, (100, 100, 100), (100, 500 - height * 10, 100, height * 10))
# 绘制建筑材料选择器
x = 250
y = 50
for material, price in materials.items():
color = (255, 255, 255)
if material == selected_material:
color = (200, 200, 200)
pygame.draw.rect(screen, color, (x, y, 100, 50))
font = pygame.font.SysFont("Arial", 20)
text = font.render(material + " $" + str(price), True, (0, 0, 0))
screen.blit(text, (x + 10, y + 10))
y += 60
# 绘制金钱
font = pygame.font.SysFont("Arial", 30)
text = font.render("Money: $" + str(money), True, (0, 0, 0))
screen.blit(text, (500, 10))
# 更新屏幕
pygame.display.flip()
```
最后,我们需要在游戏循环中处理用户的输入,更新游戏状态并绘制游戏界面:
```python
# 游戏循环
done = False
while not done:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
if event.type == pygame.MOUSEBUTTONDOWN:
# 处理鼠标点击事件
pos = pygame.mouse.get_pos()
x = 250
y = 50
for material in materials.keys():
if x <= pos[0] <= x + 100 and y <= pos[1] <= y + 50:
selected_material = material
break
y += 60
# 更新游戏状态
if money >= materials[selected_material]:
update()
# 绘制游戏界面
draw()
# 控制游戏帧率
clock.tick(30)
# 退出游戏
pygame.quit()
```
这样,一个简单的建造摩天大楼的小游戏就完成了。你可以按照自己的喜好进行修改和完善,比如添加更多种类的建筑材料、增加更多的游戏元素等。