[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Circle cut off at 60+fps, fixed by display.flip



Oops. I spotted a couple things I changed to aid my experimentation, and did not revert. They do not affect the operation of the program, but I want to identify them as a red herring so you don't waste time wondering about the differences.

The import Color and KEYDOWN. This had no impact on the behavior.

The calls to get_bbox() are reversed in pygame.display.update(). This had no impact on the behavior either way.

The changes I made that do impact the code are the lines that contain speedx.

Cheers,

Gumm


On Fri, Jun 13, 2014 at 9:42 AM, B W <stabbingfinger@xxxxxxxxx> wrote:
Try this.

import pygame
from pygame import Color, KEYDOWN

w,h=800,200
fps=60
pygame.init()
screen = pygame.display.set_mode([w, h])
color=pygame.Color("white")
clock=pygame.time.Clock()
radius=20
x,y=800,100
speedx=-4
def get_bbox(x,y):
ÂÂÂ left = x - radius + speedx

ÂÂÂ top = y - radius
ÂÂÂ width = radius * 2 + abs(speedx) * 2

ÂÂÂ height = radius * 2
ÂÂÂ return pygame.Rect((left, top), (width, height))

while True:
ÂÂÂ old_x=x
ÂÂÂ x+=speedx

ÂÂÂ screen.fill(pygame.Color("black"),get_bbox(old_x,y))
ÂÂÂ pygame.draw.circle(screen, color, (x, y), radius, 1)
ÂÂÂ get_bbox(x,y)
ÂÂÂ pygame.display.update([get_bbox(old_x,y),get_bbox(x,y)])
ÂÂÂ clock.tick(fps)



On Thu, Jun 12, 2014 at 7:32 PM, Abhas Bhattacharya <abhasbhattacharya2@xxxxxxxxx> wrote:
What is also quite surprising is that the circle gets cut off in the
same direction in which it is moving. That makes me think it cant be a
v-sync/screen-refresh issue.