Advertisement

Strange dotted line following my "player".

Started by November 13, 2013 08:07 PM
2 comments, last by Crazylegs830 11 years, 3 months ago
Hello there is a strange dotted line following the "player" I made. By player I mean the thing you control. Thanks here is my code:

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

Advertisement

Hi there.

7d6347288739276.jpg

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 tongue.png ) 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.

7d6347288739276.jpg

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 tongue.png ) 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.

This topic is closed to new replies.

Advertisement