用 Python 寫個開心刮刮樂

2021-10-21 06:24:25 字數 2041 閱讀 8614

刮刮**常指卡上的一種覆蓋數字和字母密碼等的塗層,通常包括紙質和電子兩種型別,刮刮卡在市場上有著比較廣泛的應用,我們見到最多的應該是各類**活動了,本文我們使用 python 來做乙個簡單的**刮刮卡。

從圖中我們可以看到底圖包括:一等獎、二等獎、謝謝惠顧三種,如果我們參與過刮刮卡**的話,會發現幾乎刮開都是謝謝惠顧之類的,也就是有個概率的問題,這裡我們也簡單設定一下,一等獎放一張、二等獎放兩張、謝謝惠顧放三張,生成刮刮卡時隨機使用底圖就可以了。

實現刮刮卡,我們主要用到是 pygame 模組,之前做小遊戲時已經用到過幾次了,大家應該都比較熟悉,下面看一下具體實現。

]# 視窗大小

screen_size =

(600

,400

)white =

(255

,255

,255,20

)gray =

(192

,192

,192

)然後建立乙個視窗,**實現如下:

pygame.init(

)pygame.mouse.set_cursor(

*pygame.cursors.diamond)

screen = pygame.display.set_mode(screen_size)

pygame.display.set_caption(

'刮一刮**'

)

接著從所有底圖中隨機取出一張繫結到視窗,**實現如下:

filenames = os.listdir(path)

filenames =

[f for f in filenames if f.split(

'.')[-

1]in ptype]

imgpath = os.path.join(path, random.choice(filenames)

)image_used = pygame.transform.scale(pygame.image.load(imgpath)

, screen_size)

screen.blit(image_used,(0

,0))

再接著做乙個灰色的圖層覆蓋到底圖上,**實現如下:

su***ce = pygame.su***ce(screen_size)

.convert_alpha(

)su***ce.fill(gray)

screen.blit(su***ce,(0

,0))

最後,我們定義一下滑鼠事件,在滑鼠移動經過的地方,將圖層置為透明,漏出底圖,**實現如下:

mouse_event = pygame.mouse.get_pressed(

)if mouse_event[0]

: pygame.draw.circle(su***ce, white, pygame.mouse.get_pos(),

40)elif mouse_event[-1

]:su***ce.fill(gray)

image_used = pygame.transform.scale(pygame.image.load(imgpath)

, screen_size)

一起來看一下實現效果:

是不是有內味了。

本文非首發於個人號

刮刮樂小遊戲

package com.bwie.ggl import android.content.context import android.graphics.bitmap import android.graphics.bitmapfactory import android.graphics.canva...

刮刮樂canvas實現

class scratch config this.movenum 0 this.clearrange clearrange 2 this.canvasid canvasid this.radius radius 25 this.canvas this.canvasid this.ifend fal...

canvas 實現刮刮樂

在解決問題前,我們先來了解一下 canvas 標籤 canvas 是 html5 出現的新標籤,像所有的 dom 物件一樣它有自己本身的屬性 方法和事件,其中就有繪圖的方法,js 能夠呼叫它來進行繪圖。context是乙個封裝了很多繪圖功能的物件,獲取這個物件的方法是 var canvas docu...