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

  • 相关阅读:
    android应用程序的混淆打包
    sql 语句的limit的用法
    Android SDK开发包国内下载地址
    在android应用程序中启动其他apk程序
    docker+k8s基础篇五
    docker+k8s基础篇四
    docker+k8s基础篇三
    docker+k8s基础篇二
    docker+k8s基础篇一
    LVS的基础使用
  • 原文地址:https://www.cnblogs.com/zijidefengge/p/11570129.html
Copyright © 2011-2022 走看看