Jul 252021
这是儿子的编程作业,这次比较崩溃,开始的时候,儿子提交作业没问题,我就没去听他的课程,结果过了几次课程,突然有地方搞不定,我就只能从头开始听课,一步一步的搞下去,回答儿子的问题。真的是自己给自己挖坑。
儿子写的代码,我很难看懂,他为了省事,变量都用一个字母,真的很难读。这个时候,才真正理解,为啥程序员不爱读别人的代码,我连儿子的代码读的都那么痛苦。
这里保存的代码就当git处理,每次课程,都会基于上次课程的代码继续。
- 用了sprite,直接就有image和rect
- load,图片
- 碰撞后消失的实现。
import pygame, time, random
from random import randint as rd
pygame.init()
pygame.key.set_repeat(50)
screen = pygame.display.set_mode([1024,640])
bg=pygame.image.load('res/c1.png')
hero = pygame.sprite.Sprite()
hero.image = pygame.image.load('res/hero.png')
hero.rect = pygame.Rect(0,200,70,90)
d = pygame.sprite.Sprite()
d.image = pygame.image.load('res/diamonds.png')
d.rect = pygame.Rect(500,250,50,50)
def draw():
screen.blit(bg,(0,0))
screen.blit(hero.image,hero.rect)
screen.blit(d.image,d.rect)
if hero.rect.colliderect(d.rect):
d.rect.x+=1000
d.rect.y+=1000
pygame.display.flip()
def keydown(i):
if i.key == pygame.K_UP:
hero.rect.y-=10
if i.key == pygame.K_DOWN:
hero.rect.y+=10
if i.key == pygame.K_RIGHT:
hero.rect.x+=10
if i.key == pygame.K_LEFT:
hero.rect.x-=10
p=1
while p ==1:
draw()
e = pygame.event.get()
for i in e:
if i.type == pygame.QUIT:
p = 0
if i.type == pygame.KEYDOWN:
keydown(i)
pygame.quit()