pygame简单伪3d赛车赛道

转换公式
shiju = 300
self.x1 = shiju * x / z
self.y1 = shiju * y / z
# p3.append((self.x1, self.y1))
# pygame.draw.polygon(screen, (0, 244, 0), self.p)
# return (self.x1,self.y1)
参考原理
用scratch制作一个简单的3D引擎
在这里插入图片描述

import sys
import time

import numpy as np
import pygame
from pygame import surface
from pygame._sprite import Group


class lu:
    def __init__(self):
        self.x = self
        self.y = self
        self.z = self
        self.x1 = self
        self.y1 = self
        self.color = self
        self.screen = self
        self.p = self

    def zhuanhuan(self, x, y, z):
        shiju = 300
        self.x1 = shiju * x / z
        self.y1 = shiju * y / z
        # p3.append((self.x1, self.y1))
        # pygame.draw.polygon(screen, (0, 244, 0), self.p)
        # return (self.x1,self.y1)


pygame.init()  # 初始化pygame
size = width, height = 600, 600  # 设置窗口大小
screen = pygame.display.set_mode(size)  # 显示窗口
color = (255, 255, 255)
zsx = 220
zsy = 100
zenx = 70
zeny = 600
ysx = 320
ysy = 100
yenx = 570
yeny = 600

############################################
f = False
fcclock = pygame.time.Clock()
cjshuzu = []
xsshuzu = []
o = 5
gp = Group()
add = pygame.USEREVENT
pygame.time.set_timer(add, 1)
# for i in range(6):
h1 = lu()
h1.x = 0
h1.y = 0
h1.width = 662
h1.height = 35
h1.screen = screen


# h1.chuangjian()
# cjshuzu.append(h1)


def you(screen, ystx, ysty, yenx, yeny):
    hei = (0, 0, 0)
    start = (ystx, ysty)
    end = (yenx, yeny)
    width = 1222
    pygame.draw.line(screen, hei, start, end, 10)


def zuo(screen, zstx, zsty, zenx, zeny):
    hei = (0, 0, 0)
    start = (zstx, zsty)
    end = (zenx, zeny)
    width = 1262
    pygame.draw.line(screen, hei, start, end, 10)  # aaline抗锯齿


p = []
p1 = []
p2 = []
p3 = []
p4=[]
p5=[]
p6=[]
p7=[]
p8=[]
p9=[]
p10=[]
p11=[]
p12=[]
p13=[]
p14=[]
p15=[]
p16=[]
p17=[]
p18=[]
p19=[]
p20=[]
p21=[]
p22=[]

cp = []
xinp = []
cdp = []

z = [{
   'x1': 0, 'y1': 100, 'z1': 450}, {
   'x1': 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值