python 3d游戏编程入门_用python写游戏 - 从入门到精通16

本文介绍了如何利用Python的pygame库创建简单的3D效果,通过绘制不同长度的线段模拟星星在屏幕上的移动,营造出宇宙空间的3D错觉。通过理解透视原理和3D空间坐标,结合向量运算,为3D游戏编程打下基础。
摘要由CSDN通过智能技术生成

所谓3D,说到底就是利用透视原理,在2D的画面上创造出有纵深错觉(说白了也就是近大远小)的画面而已,毕竟,屏幕是平的,怎么可能真的画出距离呢?换句话说,计算机3D的本质还是2D,只不过额外多了很多东西。

在纯pygame中,我们画3D画面就是通过计算在2D图像上画一些大小不一的东西:)

距离的魔法

我们看现实中的东西,和我们看画面上的东西,最大差别在于能感受现实物体的距离。而距离的产生,则是因为我们双眼看到的东西是不同的,两眼交替闭合,你会发现眼前的东西左右移动。一只眼睛则很难正确的判断距离,虽然比上眼睛还是能感觉到远近,但更精细一点,比如很难把线穿过针眼。

我们在3D画面上绘图的时候,就要遵循这个规律,看看下面的代码。import pygame

from pygame.locals import *

from random import randint

class Star(object):

def __init__(self, x, y, speed):

self.x = x

self.y = y

self.speed = speed

def run():

pygame.init()

screen = pygame.display.set_mode((640, 480)) #, FULLSCREEN)

stars = []

# 在第一帧,画上一些星星

for n in xrange(200):

x = float(randint(0, 63

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值