Strange dotted line following my "player".
you="C:\\Users\\user\\Desktop\\Python Programs\\Snake\\textures\\you.bmp"
import pygame, sys, random
from pygame.locals import *
pygame.init()
screen=pygame.display.set_mode((1600,1120),0,32)
mouse_c=pygame.image.load(you).convert_alpha()
#Variables for shapes
BLUE=(0,64,128)
WHITE=(255,255,255)
pos1=(0,0)
pos2=(0,1130)
pos3=(1600,0)
pos4=(1600,1130)
randpos1=random.randint(0, 1120)
randpos2=random.randint(0, 1600)
radius=(5)
#Variables for shapes
x,y=770,560
movex, movey=0,0
#Controls
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type==KEYDOWN:
if event.key==K_LEFT:
movex=-4
elif event.key==K_RIGHT:
movex=+4
elif event.key==K_UP:
movey=-4
elif event.key==K_DOWN:
movey=+4
if event.type==KEYUP:
if event.key==K_LEFT:
movex=0
elif event.key==K_RIGHT:
movex=0
elif event.key==K_UP:
movey=0
elif event.key==K_DOWN:
movey=0
#Controls
screen.lock()
pygame.draw.circle(screen, WHITE, (random.randint(0, 1600), random.randint(0, 1600)), radius)
screen.unlock()
x+=movex
y+=movey
#Collision
if y < 0:
y = 0
elif y > 1080:
y = 1080
if x < 0:
x = 0
elif x > 1550:
x = 1550
#Collision
#Dots
screen.blit(mouse_c,(x,y))
pygame.display.update()
Does the dotted line look like an outline of your player? If so, it might be that you're just always drawing over the top of your previously rendered frame. I don't see where you're clearing the screen, but I'm also not familiar with pygame so it might not be necessary.
As a debug exercise, try changing the texture of you.bmp to a completely full red square. If it acts like a square paint brush in paint, then you'll need to clear the screen.
If that's not your problem, can you post a screenshot?
- Eck
EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG
Hi there.
Are you talking about the fact that the player isn't buffered correctly. I used a pink square as my "you sprite". This line you are talking about is probably what Eck has mentioned.
Now I am not familiar with python/pygame (remember I downloaded it last time to help you ) but..
I'd say you call this after updating display:
pygame.display.flip()
Also, put your code in code blocks next time to it's easier for other people to help you. Just click on the < > button that appears in the editor menu and paste your code in there, selecting the generic code option.
EDIT: That didn't work, i'll check what other functions are available ^^
Found the problem : You need to fill the screen with a color after you draw to it to "reset" it basically. So right after you do your display.update, add this:
screen.fill(pygame.Color(0, 0, 0, 255))
This just fills the room with black.
Hi there.
Are you talking about the fact that the player isn't buffered correctly. I used a pink square as my "you sprite". This line you are talking about is probably what Eck has mentioned.
Now I am not familiar with python/pygame (remember I downloaded it last time to help you
) but..
I'd say you call this after updating display:
pygame.display.flip()
Also, put your code in code blocks next time to it's easier for other people to help you. Just click on the < > button that appears in the editor menu and paste your code in there, selecting the generic code option.
EDIT: That didn't work, i'll check what other functions are available ^^
Found the problem : You need to fill the screen with a color after you draw to it to "reset" it basically. So right after you do your display.update, add this:
screen.fill(pygame.Color(0, 0, 0, 255))
This just fills the room with black.
Thanks you and Eck have been incredibly helpful.