• 心理学实验程序编程(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()函数只是为了检验出错点,因为出的错太多了。

  • 相关阅读:
    取得窗口大小和窗口位置兼容所有浏览器的js代码
    一个简单易用的导出Excel类
    如何快速启动chrome插件
    网页表单设计案例
    Ubuntu下的打包解包
    The source file is different from when the module was built. Would you like the debugger to use it anyway?
    FFisher分布
    kalman filter
    Group delay Matlab simulate
    24位位图格式解析
  • 原文地址:https://www.cnblogs.com/zijidefengge/p/11570129.html
Copyright © 2020-2023  润新知