对于我的模拟,我试图让我需要的形状具有重力效果。换句话说,当我点击按钮创建一个新形状时,我如何让它自己掉下来?任何帮助,将不胜感激。
注意:我现在只是试图让圆圈工作,所以其他形状的代码落后了。我还需要完成碰撞检测,这就是为什么那里有一些随机的东西。
main.py:
import pygame
import time
from shapes import *
from inv import *
pygame.init()
width, height = (1000, 800)
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Physics Game")
bgc = (223, 255, 252)
screen.fill(bgc)
# Inv Button Variables
iwidth = 100
iheight = 100
# Inventory Classes
icir = InvCir(10, 10, iwidth, iheight)
irect = InvRect(15 + iwidth, 10, iwidth, iheight)
itri = InvTri(20 + (iwidth * 2), 10, iwidth, iheight)
# Object Classes
cir = Circle(40, (97, 160, 255), 500, 300)
rect = Rect(300, 300, 80, 80)
# Shape Lists
cirList = []
rectList = []
def main():
run = True
FPS = 60
clock = pygame.time.Clock()
def updateScreen():
icir.draw(screen, (0, 0, 0))
irect.draw(screen, (0, 0, 0))
itri.draw(screen, (0, 0, 0))
pygame.display.update()
def addList(list, shape):
list.append(shape)
print(list)
while run:
clock.tick(FPS)
mpos = pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == pygame.MOUSEBUTTONDOWN:
if icir.checkClick(mpos):
cir.itemDraw(screen)
addList(cirList, cir)
if event.type == pygame.MOUSEBUTTONDOWN:
if irect.checkClick(mpos):
rect.itemDraw(screen)
addList(rectList, rect)
if pygame.mouse.get_pressed()[0]:
pass
updateScreen()
main()
达令说
相关分类