心理学实验程序编程(python)
任务一:实现简单的屏幕的颜色之间的切换
import pygame
from pygame.locals import * pygame.init()
win = pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)
for i in range(10):
win.fill((0,255,0))
if i%2==0:
win.fill((255,0,0))
pygame.time.wait(500)
pygame.display.flip()
注意的点:
需要先导入Pygame.locals才能用后来的doublebuf 以及hwsurface
但是怎么样定义屏幕的颜色即 depth 的设置还不是很懂。

任务二:捕捉鼠标移动的事件,并在鼠标的位置画一个圆
import pygame
from pygame.locals import *
import sys pygame.init()
win = pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)
while True:
ev = pygame.event.get()
for i in ev:
if not i ==None:
print(i)
if i.type==QUIT:
pygame.quit()
elif i.type==MOUSEMOTION:
pygame.draw.circle(win,(255,0,0),i.pos,3, 3)
pygame.display.flip()
疑问:在pygame.draw.circle函数中不能加关键字如radius=, 或者width =,只能直接写值,不知道为什么。
还有在捕捉事件的过程中一定要加入死循环,不然事件会瞬间打印出来,再后来的事件发生之前,捕捉已经结束。

任务三:simon 效应的雏形,随机呈现小圆点
#random circle dot in the window
import pygame,sys,random
from pygame.locals import * pygame.init()
win = pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)
cor = ()
position = ()
for i in range(30): num = random.choice([0,1])
if num ==0:
cor = (255,0,0)
position = (200,300)
else:
cor=(0,255,0)
position =(600,300)
pygame.time.wait(500) pygame.draw.circle(win,cor,position,10)
## win.fill((0,0,0)) the display covers?when the code is here,the reason is that the background dont cansal the circle pygame.display.flip()
pygame.time.delay(1000)
win.fill((0,0,0))
pygame.display.flip()#no no no ,because i dont have the flip(), not the background cannt cover the circle
pygame.time.delay(800) pygame.quit()
sys.exit()
注意的点:
呈现圆点后的黑屏,要用filp()函数,而并不是背景色不能够覆盖圆点

任务四:如何添加声音
##add a sound to the window
import pygame
from pygame.locals import * pygame.init()
win = pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)
sound = pygame.mixer.Sound("C:/Users/mike1/Desktop/1111111.wav")
sound.play()
需要注意的点:
1、其实不需要win这个屏幕依然可以运行声音文件
2、声音文件必须是wav格式,试了一下mp3格式,但是并不支持,可以在线将mp3格式转换成wav格式。(https://cloudconvert.com/mp3-to-wav,这是在线转换的网址)
任务五:在windows上添加图片
#add a picture to the screen
import pygame
from pygame.locals import * pygame.init()
win = pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)
pict = pygame.image.load("C:/Users/mike1/Desktop/thJ0KCHYOU.jpg").convert() win.blit(pict,(0,0))
pygame.display.flip()
运行结果:

需要注意的点
1、好像没有什么可以注意的点,convert()函数可用可不用
任务6:在windows上添加文字
#show text message to the screen
#-*- coding: utf-8 -*- #thisline is nessisary import pygame,sys
from pygame.locals import * pygame.init()
win = pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)
print(1)
font_object = pygame.font.SysFont("华文宋体",15)
print(1)
font_imag = font_object.render(u"this is 我们message",True,(255,0,0)) win.blit(font_imag,(0,0))
pygame.display.flip()
结果:

需要注意的点:
1、在第一行必须加入# -*- coding: utf-8 -*- 这句话,因为python默认的是unicode 编码,而汉子是utf-8编码,第一行就指定了code的编码格式。
2、pygame.font.SysFont()函数中,必须指定汉字的格式,比如arial就不行,华文宋体就可以,至于有哪些字体的格式,可以通过pygame.font.get_fonts()函数来获得。
3、在render()函数中,字符串可以用u" ",开头,也可以用" ",开头,直接省略u.
4、print()函数只是为了检验出错点,因为出的错太多了。
心理学实验程序编程(python)的更多相关文章
- ROS Learning-011 beginner_Tutorials (编程) 编写 ROS 话题版的 Hello World 程序(Python版)
ROS Indigo beginner_Tutorials-10 编写 ROS 话题版的 Hello World 程序(Python版) 我使用的虚拟机软件:VMware Workstation 11 ...
- ROS Learning-013 beginner_Tutorials (编程) 编写ROS服务版的Hello World程序(Python版)
ROS Indigo beginner_Tutorials-12 编写ROS服务版的Hello World程序(Python版) 我使用的虚拟机软件:VMware Workstation 11 使用的 ...
- php安全编程&python测试实例编写
前言 本文首发i春秋论坛. 本篇文章主要分享一个python暴破脚本,该脚本采用optparse模块,支持自定义字典位置:用了多线程(虽然我感觉和单线程速度差不多..是我的错觉还是线程写的不对..求表 ...
- 前端,Java,产品经理,微信小程序,Python等资源合集大放送
为了感恩大家长久以来的关注和支持,小编准备了一些福利,整理了包含前端,Java,产品经理,微信小程序,Python,网站源码,Android应用视频教程,微信公众平台开发教程及材料等资源合集大放送. ...
- 教孩子学编程 Python
教孩子学编程 Python 目录 第1 章 Python 基础:认识环境 111 认识Python 312 用Python 编写程序 513 运行Python 程序 514 本章小结 615 编程 ...
- Flask 教程 第二十三章:应用程序编程接口(API)
本文翻译自The Flask Mega-Tutorial Part XXIII: Application Programming Interfaces (APIs) 我为此应用程序构建的所有功能都只适 ...
- 教孩子学编程 python语言版PDF高清完整版免费下载|百度云盘|Python入门
百度云盘:教孩子学编程 python语言版PDF高清完整版免费下载 提取码:mnma 内容简介 本书属于no starch的经典系列之一,英文版在美国受到读者欢迎.本书全彩印刷,寓教于乐,易于学习:读 ...
- HUST-计算机网络实验-socket编程
随笔---HUST计网实验:socket编程 博主大三在读,第一次写随笔,水平有限,就当记录一下学习的过程,顺便面试前复习项目的时候看看. 实验要求: 编写一个 Web 服务器软件,要求如下: 基本要 ...
- C#开发EyeLink眼动仪的实验程序
[题外话] Eyelink眼动仪是SR Research推出的一款眼动仪,很多高校都在使用其做实验.其官方提供了COM的接口,所以支持COM接口的开发平台都可以开发使用.官方甚至提供了一个C#的样例供 ...
随机推荐
- CVE-2019-0232:Apache Tomcat RCE复现
CVE-2019-0232:Apache Tomcat RCE复现 0X00漏洞简介 该漏洞是由于Tomcat CGI将命令行参数传递给Windows程序的方式存在错误,使得CGIServlet被命令 ...
- C++ STL——优先队列的结构体表示方法
优先队列是队列的一种,但是自身具有一定的排序功能,所以不具有队列“先进先出”的性质 刚刚接触优先队列,看过网上的用法后感觉还是太过于朦胧,所以打算自己写一个稍微细节一点的. 头文件 #include& ...
- 【python爬虫】windoes的爬虫中文乱码现象,通用转码解决
page = session.get(url="https://www.qidian.com/") page.encoding = page.apparent_encoding p ...
- VFP中OCX控件注册检测及自动注册
这是原来从网上搜集.整理后编制用于自己的小程序使用的OCX是否注册及未注册控件的自动注册函数. CheckCtrlFileRegist("ctToolBar.ctToolBarCtrl.4& ...
- 高并发之——深入解析Callable接口
本文纯干货,从源码角度深入解析Callable接口,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小. 1.Callable接口介绍 Callable接口是JDK1.5新增的泛型接 ...
- oracle数据库的启动、关闭、连接
登陆数据库 方法一: $ sqlplus / as sysdba [oracle@dev /]$ sqlplus / as sysdba SQL*Plus: Release Production on ...
- HTML——label标签
最近在做将input[type="file"] 改变其样式时,发现label的巨大潜力,特此记录一下. 1, label标签的作用 (1)为input元素定义标注(标记) (2)不 ...
- codewars--js--Simple string expansion+ repeat(),includes()方法
问题描述: Consider the following expansion: solve("3(ab)") = "ababab" -- "ab&qu ...
- Ubuntu18.04安装mysql并配置远程访问
1.ssh连接到Ubuntu服务器 默认root用户登陆,如果运行以下命令没有权限请在命令开头加sudo 2.安装mysql apt install mysql-server 3.配置mysql my ...
- \n不换行
\n在js中表示换行,<br/>在html中表示换行,所以如果在设置innerHtml值时使用 \n ,那么在页面上并不会显示换行,而在设置innerText值时使用 \n 就会显 ...