Note that there are some explanatory texts on larger screens.

plurals
  1. POPygame sprite assistance
    primarykey
    data
    text
    <p>I've basically just started developing with PyGame and I am having trouble with the whole Sprite concept. I have been looking every where for guides on how to use it, I just can't seem to find any. I would like to know the basic concept of how it all works. This is the code I have been working on:</p> <pre><code>#!/usr/bin/python import pygame, sys from pygame.locals import * size = width, height = 320, 320 clock = pygame.time.Clock() xDirection = 0 yDirection = 0 xPosition = 32 yPosition = 256 blockAmount = width/32 pygame.init() screen = pygame.display.set_mode(size) screen.fill([0, 155, 255]) pygame.display.set_caption("Mario Test") background = pygame.Surface(screen.get_size()) mainCharacter = pygame.sprite.Sprite() mainCharacter.image = pygame.image.load("data/character.png").convert() mainCharacter.rect = mainCharacter.image.get_rect() mainCharacter.rect.topleft = [xPosition, yPosition] screen.blit(mainCharacter.image, mainCharacter.rect) grass = pygame.sprite.Sprite() grass.image = pygame.image.load("data/grass.png").convert() grass.rect = grass.image.get_rect() for i in range(blockAmount): blockX = i * 32 blockY = 288 grass.rect.topleft = [blockX, blockY] screen.blit(grass.image, grass.rect) grass.rect.topleft = [64, 256] screen.blit(grass.image, grass.rect.topleft ) running = False jumping = False falling = False standing = True jumpvel = 22 gravity = -1 while True: for event in pygame.event.get(): if event.type == KEYDOWN and event.key == K_ESCAPE: pygame.quit() sys.exit() elif event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: if event.key == K_LEFT: running = True xRun = -5 elif event.key == K_RIGHT: running = True xRun = 5 elif event.key == K_UP or event.key == K_SPACE: jumping = True elif event.type == KEYUP: if event.key == K_LEFT or event.key == K_RIGHT: running = False if running == True: xPosition += xRun if mainCharacter.rect.right &gt;= width: xPosition = xPosition - 10 print "hit" running = False elif mainCharacter.rect.left &lt;= 0: xPosition = xPosition + 10 print "hit" running = False screen.fill([0, 155, 255]) for i in range(blockAmount): blockX = i * 32 blockY = 288 grass.rect.topleft = [blockX, blockY] screen.blit(grass.image, grass.rect) grass.rect.topleft = [64, 64] screen.blit(grass.image, grass.rect.topleft ) if jumping: yPosition -= jumpvel print jumpvel jumpvel += gravity if jumpvel &lt; -22: jumping = False if mainCharacter.rect.bottom == grass.rect.top: jumping = False if not jumping: jumpvel = 22 mainCharacter.rect.topleft = [xPosition, yPosition] screen.blit(mainCharacter.image,mainCharacter.rect) clock.tick(60) pygame.display.update() </code></pre> <p>basically I just want to know how to make these grass blocks into sprites in a group, so that when I add my player (also a sprite) I can determine whether or not he is in the air or not through the collision system. Can someone please explain to me how I would do this. All I am looking for is basically a kick starter because some of the documentation is quite bad in my opinion as it doesn't completely tell you how to use it. Any help is greatly appreciated :)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload