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()

 Leave a Reply

(required)

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.