- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一款自上而下的赛车游戏,目前我正在尝试让汽车在赛道上行驶。有两辆车,一辆是计算机的车(未完成),另一辆是用户控制的车,但是当我运行程序时,用户的车在轨道后面,但仍然正常移动。我尝试了几种不同的方法,但用户的汽车似乎从未驶上赛道。所以我主要问的是如何让用户的车跑到赛道上。
谢谢
import math
import random
from tkinter import *
import pygame
class Buttons:
#window
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.quitButton = Button(frame, text="Race!", fg="red", command=frame.quit)
self.quitButton.pack(side=LEFT)
root = Tk()
b = Buttons(root)
root.mainloop()
pygame.mixer.pre_init(44100,16,2,4096)
pygame.init()
screen = pygame.display.set_mode((1280, 800))
rect = screen.get_rect()
clock = pygame.time.Clock()
#music
pygame.mixer.music.load("Noteblock.mp3")
pygame.mixer.music.set_volume(0.5)
pygame.mixer.music.play(-1)
WHITE = pygame.Color('white')
# Load images globally and reuse them in your program.
# Also use the `.convert()` or `.convert_alpha()` methods after
# loading the images to improve the performance.
VEHICLE1 = pygame.Surface((40, 70), pygame.SRCALPHA)
VEHICLE1.fill((130, 180, 20))
#blitting car onto 'rectangle car'
VEHICLE1 = pygame.image.load("YellowLambo.png")
screen.blit(VEHICLE1,(0,0))
pygame.display.update()
VEHICLE2 = pygame.Surface((40, 70), pygame.SRCALPHA)
VEHICLE2.fill((200, 120, 20))
#blitting computer's car
VEHICLE2 = pygame.image.load("RedLambo.png")
screen.blit(VEHICLE2,(0,0))
pygame.display.update()
BACKGROUND = pygame.Surface((1280, 800))
BACKGROUND.fill((127, 69, 2))
BACKGROUND = pygame.image.load("track1.png").convert()
screen.blit(BACKGROUND,(0,0))
pygame.display.update()
class Entity(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
class VehicleSprite(Entity):
MAX_FORWARD_SPEED = 10
MAX_REVERSE_SPEED = 2
ACCELERATION = 0.05
TURN_SPEED = 0.000000000001
def __init__(self, image, position):
Entity.__init__(self)
self.src_image = image
self.image = image
self.rect = self.image.get_rect(center=position)
self.position = pygame.math.Vector2(position)
self.velocity = pygame.math.Vector2(0, 0)
self.speed = self.direction = 0
self.k_left = self.k_right = self.k_down = self.k_up = 0
def update(self, time):
# SIMULATION
self.speed += self.k_up + self.k_down
# To clamp the speed.
self.speed = max(-self.MAX_REVERSE_SPEED,
min(self.speed, self.MAX_FORWARD_SPEED))
# Degrees sprite is facing (direction)
self.direction += (self.k_right + self.k_left)
rad = math.radians(self.direction)
self.velocity.x = -self.speed*math.sin(rad)
self.velocity.y = -self.speed*math.cos(rad)
self.position += self.velocity
self.image = pygame.transform.rotate(self.src_image, self.direction)
self.rect = self.image.get_rect(center=self.position)
class Background(pygame.sprite.Sprite):
def __init__(self, image, location):
pygame.sprite.Sprite.__init__(self)
self.image = image
self.rect = self.image.get_rect(topleft=location)
def game_loop():
bike = VehicleSprite(VEHICLE1, rect.center)
pygame.sprite.LayeredUpdates.move_to_front
ball = VehicleSprite(VEHICLE2, rect.center)
bike_group = pygame.sprite.Group(bike)
ball_group = pygame.sprite.Group(ball)
all_sprites = pygame.sprite.Group(bike_group, ball_group)
background = Background(BACKGROUND, [0, 0])
camera = pygame.math.Vector2(0, 0)
done = False
while not done:
time = clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.KEYDOWN:
# Bike Input (Player 1)
if event.key == pygame.K_d:
bike.k_right = -5
elif event.key == pygame.K_a:
bike.k_left = 5
elif event.key == pygame.K_w:
bike.k_up = 2
elif event.key == pygame.K_s:
bike.k_down = -2
elif event.key == pygame.K_ESCAPE:
done = True
elif event.type == pygame.KEYUP:
if event.key == pygame.K_d:
bike.k_right = 0
elif event.key == pygame.K_a:
bike.k_left = 0
elif event.key == pygame.K_w:
bike.k_up = 0
elif event.key == pygame.K_s:
bike.k_down = 0
camera -= bike.velocity
#screen.blit(background.image, background.rect)
all_sprites.update(time)
screen.fill(WHITE)
for sprite in all_sprites:
screen.blit(background.image, background.rect.topleft+camera)
screen.blit(sprite.image, sprite.rect.topleft+camera)
pygame.display.flip()
game_loop()
pygame.quit()
最佳答案
问题出在 for
循环中,您在其中 blit Sprite 图像:
for sprite in all_sprites:
screen.blit(background.image, background.rect.topleft+camera)
screen.blit(sprite.image, sprite.rect.topleft+camera)
在这里,您对背景和其中一个 Sprite 进行了位图传输,然后再次对背景和下一个 Sprite 进行了位图传输。因此,在 for
循环的每次迭代中,背景将被位 block 传输到之前的 Sprite 之上。
只需在循环之前对背景进行位 block 传输,然后再对 Sprite 进行位 block 传输:
screen.fill(WHITE)
screen.blit(background.image, background.rect.topleft+camera)
for sprite in all_sprites:
screen.blit(sprite.image, sprite.rect.topleft+camera)
关于python - 如何让汽车到达赛道顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52338647/
我目前正在研究车辆编队,为此我需要在 python opencv 中设计一个代码,用于根据分类计算车辆数量。输入是实时交通视频。目的是为边界框找到一个平均大小“x”,并说对于汽车它是“x”,对于公共(
LISP 又一次难住了我……为什么我不能得到列表中最后一个元素的值?我有一个类似于此的列表设置: (setq bar '(((1 2) 3 4 5)((6 7) 8 9 10))) 现在我得到 4 的
我正在尝试将 android.car API 添加到 Android Studio 项目。由于 sdk 默认情况下汽车类不可用,我在 .../car-lib 中完成了 mm 并将生成的 android
我想让我的网站内容居中,但仅限于网页的特定宽度。所以当它超过 500px 时,我希望内容被修复,无法进一步拉伸(stretch)。无论如何都要这样做,还是我最好把所有东西都修好?希望有意义的是添加一些
这是绘制汽车零件的绘图函数,在这个函数中检查汽车轮辋并检查标志,我需要在移动汽车时旋转轮胎轮辋。由于轮辋已旋转但从汽车模型中取出,因此无法正常工作,当我按下向上箭头键时,但汽车确实在移动。 我还在初始
我正在尝试从仅包含一辆车和简单背景的图像中分割汽车,如 但是我从我的实现中得到的是这个 和 分别 但它非常容易处理几乎已经分割的图像,例如。 给出类似 的结果 我使用的代码是 import cv2 i
我正在研究我的大学项目之一,即opencv python中的object(car)检测,我正在使用opencv 3和python 3.4。我有一个代码,但是当我运行代码时,不会显示输出。它表明该代码没
在 C++ primer 5 中我看到了代码: const int a = 40; auto &b = a; 编译器可以推导出 b 类型:const int &。 我认为这是合理的,因为 a 是 co
这个问题更多的是关于在正确的方向上找到一个点。我继承并开发了一个项目来创建汽车选择数据库(匹配用户偏好)。它已经运行得比较好,但可能会更好(存在一些问题),所以我想研究其他人使用的其他一些算法。我正在
我目前正在搜索 WLAN 协议(protocol)的规范以获取 OBDII 数据。市场上有一些类似 ELM327 的适配器,可以让 iPhone 通过 WLAN 连接到 OBDII 接口(interf
我希望在谷歌地图标记周围制作进度条,如下图所示,或者如何在 map 上的特定位置显示进度条,就像我告诉纬度和经度并显示该位置 最佳答案 在这个短片中,进度标记(标记周围有一系列 8 个圆圈)前进一个表
有谁知道汽车、导航或移动设备对基于触摸屏的无键盘 UI 的需求是否很大? 我知道 Android 是一个非常大、非常流行的平台。 Cocoa Touch 也是如此。 我想要设想的是使用 Java UI
我正在尝试编写一个采用多项式并对其进行化简的程序。每次我运行该程序时,通过调用“(evalexp '( (x 2) (z 8) ) p1)”我都会收到错误消息“Car: + is not a list
使用 jhipster 我创建了运行良好的应用程序,然后我创建了“双向一对多关系”,所有者到汽车。这也工作正常,但我无法弄清楚如何从生成的实体的所有者屏幕中显示所有汽车。如果我选择“车主”,则会从汽车
我一直在使用 Rx 在单个应用程序中创建事件总线(想想 CQRS/ES),它似乎工作得很好。然而,在调查了一堆不同的事件溯源框架之后,我还没有看到使用过一次 Rx。与基于反射/容器的调度程序相比,它似
Android Automotive 中是否存在一种从 OBD2 或 SRS 读取传感器的方法。或者在任何其他汽车 Android 操作系统中。我在 CarSensorManager 中进行了搜索,但
我想知道是否有可能以某种方式确定路由器是否正在改变其位置。我需要知道这一点,因为我正在编写一个将在 WiFi 网络上工作的移动应用程序(连接同一网络上的人/连接到同一路由器)。我知道移动设备可以探索网
我知道这是一个非常开放的问题,但有谁知道我如何确定用户是否乘坐公共(public)交通工具?理想情况下,我会运行一个后台服务,这样只有乘坐公共(public)交通工具的订阅者才能收到我的提醒。 最佳答
我最近开始学习 OOP,这让我很困惑。我想制作 super 汽车和电动或化石汽车作为其子类。 `abstract class Electric extends Car`. 问题是我只想创建 Priva
我做了一个演示项目(来自 github 上的 Moving-MKAnnotationView 演示),用于在 map 上移动汽车,下面是它的链接 https://github.com/pratikbh
我是一名优秀的程序员,十分优秀!