1
pygameで振動する四角形を描こうとしています。pygameでmath.piが期待どおりに動作しない
私は
particle.pos[0] = 100 * math.sin(188.5 * t) + screen_width/2
を使用する場合、私はそれが期待通りに動作しますが、私は
omega = 2*math.pi*fps
particle.pos[0] = 100 * math.sin(omega * t) + screen_width/2
を使用する場合、矩形が描かれているが、移動しません。私は、オメガが約188.5であり、オメガと188.5の両方が浮動小数点であることを確認しました。私が考えることができるのは、math.piが何らかの原因で問題を引き起こしているということだけですが、その理由はわかりません。
編集: 全体のこと
import sys
import math
import pygame
from pygame.locals import *
pygame.init()
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
fps = 30
fpsClock = pygame.time.Clock()
screen_width, screen_height = 640, 480
screen = pygame.display.set_mode((screen_width, screen_height))
class Particle:
"""Particle"""
def __init__(self, size, pos, particlecolor):
self.size = size
self.pos = pos
self.particlecolor = particlecolor
def draw(self):
pygame.draw.rect(screen, GREEN, [self.pos, self.size])
particle = Particle([10, 10], [screen_width * .25, screen_height * .5], GREEN)
t = 0
omega = 2*math.pi*fps
while True:
t += 1
screen.fill(BLACK)
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
particle.pos[0] = 100 * math.sin(omega * t) + screen_width/2
# particle.pos[0] = 100 * math.sin(188.5 * t) + screen_width/2
particle.draw()
pygame.display.flip()
fpsClock.tick(fps)
[More code please](http://stackoverflow.com/help/mcve) – skrx
@skrxがコードを追加しました – user44557
't 'が0、結果が320、' t'が100で '319.9999999997962'ということを考えれば、時間。 – zondo