pygame学习笔记(3):运动速率、时间、事件、文字
1、运动速率
上节中,实现了一辆汽车在马路上由下到上行驶,并使用了pygame.time.delay(200)来进行时间延迟。看了很多参考材料,基本每个材料都会谈到不同配置机器下运动速率的问题,有的是通过设定频率解决,有的是通过设定速度解决,自己本身水平有限,看了几篇,觉得还是《Beginning Game Development with Python and Pygame》这里面提到一个方法比较好。代码如下,代码里更改的地方主要是main里的代码,其中利用clock=pygame.time.Clock()来定义时钟,speed=250.0定义了速度,每秒250像素,time_passed=clock.tick()为上次运行时间单位是毫秒,time_passed_seconds=time_passed/1000.0将单位改为秒,distance_moved=time_passed_seconds*speed时间乘以速度得到移动距离,这样就能保证更加流畅。
import pygame,sys
def lineleft():
plotpoints=[]
for x in range(0,640):
y=-5*x+1000
plotpoints.append([x,y])
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
pygame.display.flip()
def lineright():
plotpoints=[]
for x in range(0,640):
y=5*x-2000
plotpoints.append([x,y])
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
pygame.display.flip()
def linemiddle():
plotpoints=[]
x=300
for y in range(0,480,20):
plotpoints.append([x,y])
if len(plotpoints)==2:
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
plotpoints=[]
pygame.display.flip()
def loadcar(yloc):
my_car=pygame.image.load('ok1.jpg')
locationxy=[310,yloc]
screen.blit(my_car,locationxy)
pygame.display.flip()
if __name__=='__main__':
pygame.init()
screen=pygame.display.set_caption('hello world!')
screen=pygame.display.set_mode([640,480])
screen.fill([255,255,255])
lineleft()
lineright()
linemiddle()
clock=pygame.time.Clock()
looper=480
speed=250.0
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
pygame.draw.rect(screen,[255,255,255],[310,(looper+132),83,132],0)
time_passed=clock.tick()
time_passed_seconds=time_passed/1000.0
distance_moved=time_passed_seconds*speed
looper-=distance_moved
if looper
looper=480
loadcar(looper)
2、事件
我理解的就是用来解决键盘、鼠标、遥控器等输入后做出什么反映的。例如上面的例子,可以通过按上方向键里向上来使得小车向上移动,按下向下,使得小车向下移动。当小车从下面倒出时,会从上面再出现,当小车从上面驶出时,会从下面再出现。代码如下。event.type == pygame.KEYDOWN用来定义事件类型,if event.key==pygame.K_UP这里是指当按下向上箭头时,车前进。if event.key==pygame.K_DOWN则相反,指按下向下箭头,车后退。
import pygame,sys
def lineleft():
plotpoints=[]
for x in range(0,640):
y=-5*x+1000
plotpoints.append([x,y])
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
pygame.display.flip()
def lineright():
plotpoints=[]
for x in range(0,640):
y=5*x-2000
plotpoints.append([x,y])
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
pygame.display.flip()
def linemiddle():
plotpoints=[]
x=300
for y in range(0,480,20):
plotpoints.append([x,y])
if len(plotpoints)==2:
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
plotpoints=[]
pygame.display.flip()
def loadcar(yloc):
my_car=pygame.image.load('ok1.jpg')
locationxy=[310,yloc]
screen.blit(my_car,locationxy)
pygame.display.flip()
if __name__=='__main__':
pygame.init()
screen=pygame.display.set_caption('hello world!')
screen=pygame.display.set_mode([640,480])
screen.fill([255,255,255])
lineleft()
lineright()
linemiddle()
looper=480
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key==pygame.K_UP:
looper=looper-50
if looper
looper=480
pygame.draw.rect(screen,[255,255,255],[310,(looper+132),83,132],0)
loadcar(looper)
if event.key==pygame.K_DOWN:
looper=looper+50
if looper>480:
looper=-480
pygame.draw.rect(screen,[255,255,255],[310,(looper-132),83,132],0)
loadcar(looper)
3、字体及字符显示
使用字体模块用来做游戏的文字显示,大部分游戏都会有诸如比分、时间、生命值等的文字信息。pygame主要是使用pygame.font模块来完成,常用到的一些方法是:
pygame.font.SysFont(None, 16),第一个参数是说明字体的,可以是"arial"等,这里None表示默认字体。第二个参数表示字的大小。如果无法知道当前系统中装了哪些字体,可以使用pygame.font.get_fonts()来获得所有可用字体。
pygame.font.Font("AAA.ttf", 16),用来使用TTF字体文件。
render("hello world!", True, (0,0,0), (255, 255, 255)),render方法用来创建文字。第一个参数是写的文字;第二个参数是否开启抗锯齿,就是说True的话字体会比较平滑,不过相应的速度有一点点影响;第三个参数是字体的颜色;第四个是背景色,无表示透明。
下面将上面的例子添加当前汽车坐标:
import pygame,sys
def lineleft():
plotpoints=[]
for x in range(0,640):
y=-5*x+1000
plotpoints.append([x,y])
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
pygame.display.flip()
def lineright():
plotpoints=[]
for x in range(0,640):
y=5*x-2000
plotpoints.append([x,y])
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
pygame.display.flip()
def linemiddle():
plotpoints=[]
x=300
for y in range(0,480,20):
plotpoints.append([x,y])
if len(plotpoints)==2:
pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)
plotpoints=[]
pygame.display.flip()
def loadcar(yloc):
my_car=pygame.image.load('ok1.jpg')
locationxy=[310,yloc]
screen.blit(my_car,locationxy)
pygame.display.flip()
def loadtext(xloc,yloc):
textstr='location:'+str(xloc)+','+str(yloc)
text_screen=my_font.render(textstr, True, (255, 0, 0))
screen.blit(text_screen, (50,50))
if __name__=='__main__':
pygame.init()
screen=pygame.display.set_caption('hello world!')
screen=pygame.display.set_mode([640,480])
my_font=pygame.font.SysFont(None,22)
screen.fill([255,255,255])
loadtext(310,0)
lineleft()
lineright()
linemiddle()
looper=480
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key==pygame.K_UP:
looper=looper-50
if looper
looper=480
if event.key==pygame.K_DOWN:
looper=looper+50
if looper>480:
looper=-132
loadtext(310,looper)
screen.fill([255,255,255])
loadtext(310,looper)
lineleft()
lineright()
linemiddle()
loadcar(looper)
这个例子里直接让背景重绘一下,就不会再像1、2里面那样用空白的rect去覆盖前面的模块了。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Commencez par dessiner un cercle dans PPT, puis insérez une zone de texte et saisissez le contenu du texte. Enfin, définissez le remplissage et le contour de la zone de texte sur Aucun pour terminer la production d'images et de texte circulaires.

Sur la plateforme Douyin, de nombreux utilisateurs sont impatients d'obtenir une certification de niveau, et le panneau lumineux de niveau 10 montre l'influence et la reconnaissance de l'utilisateur sur Douyin. Cet article examinera le prix des cartes lumineuses Douyin niveau 10 et le temps nécessaire pour atteindre ce niveau afin d'aider les utilisateurs à mieux comprendre le processus. 1. Combien coûte un panneau lumineux Douyin de niveau 10 ? Le prix du panneau lumineux à 10 niveaux de Douyin varie en fonction des fluctuations du marché et de l'offre et de la demande. Le prix général varie de quelques milliers de yuans à dix mille yuans. Ce prix comprend principalement le coût de l'enseigne lumineuse elle-même et les éventuels frais de service. Les utilisateurs peuvent acheter des panneaux lumineux de niveau 10 via les canaux officiels de Douyin ou des agences de services tierces, mais ils doivent faire attention aux canaux légaux lors de l'achat pour éviter les transactions fausses ou frauduleuses. 2. Combien de jours faut-il pour créer un panneau de fan de niveau 10 ? Atteindre le panneau lumineux de niveau 10

Lorsque nous créons quotidiennement des documents Word, nous devons parfois ajouter des points sous certains mots du document, notamment lorsqu'il y a des questions de test. Pour mettre en valeur cette partie du contenu, l'éditeur partagera avec vous les astuces pour ajouter des points au texte dans Word. J'espère que cela pourra vous aider. 1. Ouvrez un document Word vierge. 2. Par exemple, ajoutez des points sous les mots « Comment ajouter des points au texte ». 3. Nous sélectionnons d'abord les mots "Comment ajouter des points au texte" avec le bouton gauche de la souris. Notez que si vous souhaitez ajouter des points à ce mot à l'avenir, vous devez d'abord utiliser le bouton gauche de la souris pour sélectionner quel mot. . Aujourd'hui, nous ajoutons des points à ces mots, nous avons donc choisi plusieurs mots. Sélectionnez ces mots, cliquez avec le bouton droit et cliquez sur Police dans la boîte de fonction contextuelle. 4. Ensuite, quelque chose comme ceci apparaîtra

Détails de l'installation de Pygame : Apprenez étape par étape à installer et à configurer l'environnement de développement, des exemples de code spécifiques sont nécessaires. Introduction : Pygame est une bibliothèque de développement de jeux basée sur Python. Elle fournit une multitude d'outils et de fonctions pour rendre le développement de jeux simple et intéressant. . Cet article présentera en détail comment installer Pygame, configurer l'environnement de développement et fournira des exemples de code spécifiques. Partie 1 : Installer Pygame Installer Python : Avant de commencer à installer Pygame, vous devez d'abord vous assurer que Pyt est installé sur votre ordinateur.

Les joueurs peuvent découvrir l'intrigue principale du jeu et collecter des succès de jeu lorsqu'ils jouent dans Elden's Circle. De nombreux joueurs ne savent pas combien de temps il faut pour terminer Elden's Circle. Le processus d'autorisation du joueur est de 30 heures. Combien de temps faut-il pour nettoyer Elden Ring ? Réponse : 30 heures. 1. Bien que ce délai de dédouanement de 30 heures ne fasse pas référence à un speed pass de type maître, il omet également de nombreux processus. 2. Si vous souhaitez obtenir une meilleure expérience de jeu ou découvrir l'intrigue complète, vous devrez certainement consacrer plus de temps à la durée. 3. Si les joueurs les récupèrent tous, cela prendra environ 100 à 120 heures. 4. Si vous prenez uniquement la ligne principale pour brosser BOSS, cela prendra environ 50 à 60 heures. 5. Si vous voulez tout vivre : 150 heures de temps de base.

Xiaohongshu, plateforme pleine de vie et de partage de connaissances, permet à de plus en plus de créateurs d'exprimer librement leurs opinions. Afin d'attirer plus d'attention et de likes sur Xiaohongshu, outre la qualité du contenu, le moment de publication des œuvres est également crucial. Alors, comment fixer l'heure à laquelle Xiaohongshu publie ses œuvres ? 1. Comment régler l'heure de publication des ouvrages sur Xiaohongshu ? 1. Comprendre le temps d'activité des utilisateurs. Tout d'abord, il est nécessaire de clarifier le temps d'activité des utilisateurs de Xiaohongshu. De manière générale, entre 20h et 22h et les après-midi du week-end sont les moments où l'activité des utilisateurs est forte. Cependant, cette période varie également en fonction de facteurs tels que le segment d'audience et la géographie. Par conséquent, afin de mieux appréhender la période active des utilisateurs, il est recommandé de procéder à une analyse plus détaillée des habitudes comportementales des différents groupes. En comprenant la vie des utilisateurs

Explication détaillée des techniques d'affichage de l'heure des fichiers Linux Dans les systèmes Linux, les informations sur l'heure des fichiers sont très importantes pour la gestion des fichiers et le suivi des modifications. Le système Linux enregistre les informations de modification de fichier via trois attributs temporels principaux, à savoir l'heure d'accès (atime), l'heure de modification (mtime) et l'heure de modification (ctime). Cet article explique comment afficher et gérer ces informations d'heure de fichier et fournit des exemples de code spécifiques. 1. Vérifiez les informations d'heure du fichier en utilisant la commande ls avec le paramètre -l pour répertorier les fichiers.

Apprenez Pygame à partir de zéro : didacticiel complet d'installation et de configuration, exemples de code spécifiques requis Introduction : Pygame est une bibliothèque de développement de jeux open source développée à l'aide du langage de programmation Python. Elle fournit une multitude de fonctions et d'outils, permettant aux développeurs de créer facilement une variété de types. de jeu. Cet article vous aidera à apprendre Pygame à partir de zéro et fournira un didacticiel complet d'installation et de configuration, ainsi que des exemples de code spécifiques pour vous permettre de démarrer rapidement. Première partie : Installer Python et Pygame Tout d'abord, assurez-vous d'avoir
