刮刮**常指卡上的一種覆蓋數字和字母密碼等的塗層,通常包括紙質和電子兩種型別,刮刮卡在市場上有著比較廣泛的應用,我們見到最多的應該是各類**活動了,本文我們使用 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...