欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

python實現(xiàn)公司年會抽獎程序-創(chuàng)新互聯(lián)

本文實例為大家分享了python實現(xiàn)年會抽獎程序的具體代碼,供大家參考,具體內(nèi)容如下

為賀州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務,及賀州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設(shè)、成都做網(wǎng)站、賀州網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

發(fā)一下自己寫的公司抽獎程序。

需求:公司年會要一個抽獎程序,轉(zhuǎn)盤上的每一個人名是隨機中獎的,中獎后的人不可以再次中獎,按住抽獎,就會一直在轉(zhuǎn),放開后,要再轉(zhuǎn)一兩圈才停。

剛好自己在學python cocos2d,就用這個剛學的東東,直接上源碼

# coding:utf-8
# 
import sys
# import os
# sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../..'))
# 解決程序中要顯示中文問題
reload(sys) 
sys.setdefaultencoding('utf8')
from pyglet import image, font
from pyglet.gl import *
from pyglet.window import key
 
from cocos.actions import *
from cocos.director import director
from cocos.layer import Layer 
from cocos.layer import ColorLayer 
from cocos.scene import Scene
from cocos.sprite import Sprite
from cocos.text import *
from cocos.menu import *
 
import random
from cocos.audio.effect import Effect
consts_window = { 
 "width": 680,
 "height": 700,
 "vsync": True,
 "resizable": True, 
 'audio_backend':'sdl' 
 }
 
 
 
 
def get_sprite_test( index ):
 d = tests[index]
 return Scene( d( index ) )
 
class SpriteLayer( Layer ):
 
 is_event_handler = True #: enable pyglet's events
 
 def __init__( self, index=1 ):
 super(SpriteLayer, self ).__init__()
 self.index = index
 
 
 self.top_text = "廣州德瀚信息信息科技有限公司-年會抽獎"
 
 self.image = pyglet.resource.image('r1.png',0.01)
 # self.image = image.AnimationFrame(image.load('r1.png'),0.1)
 self.image.anchor_x = self.image.width / 2
 self.image.anchor_y = self.image.height / 2
 
 self.rimage = pyglet.resource.image('r2.png',0.01)
 # self.rimage = image.AnimationFrame(image.load('r2.png'),0.1)
 self.rimage.anchor_x = self.image.width / 2
 self.rimage.anchor_y = self.image.height / 2
 
 self.bgimage = pyglet.resource.image('bg1.png')
 self.bgimage.anchor_x = self.image.width / 2
 self.bgimage.anchor_y = self.image.height / 2
 
 self.pressbgimage = pyglet.resource.image('bg2.png')
 self.pressbgimage.anchor_x = self.image.width / 2
 self.pressbgimage.anchor_y = self.image.height / 2
 
 
 
 self.prizeimage = pyglet.resource.image('name.png')
 self.prizeimage.anchor_x = self.image.width / 2
 self.prizeimage.anchor_y = self.image.height / 2
 
 def on_key_release( self, keys, mod ):
 # LEFT: go to previous scene
 # RIGTH: go to next scene
 # ENTER: restart scene
 if keys == key.LEFT:
  self.index -= 1
  if self.index < 1:
  self.index = len( tests )
 elif keys == key.RIGHT:
  self.index += 1
  if self.index > len( tests ):
  self.index = 1
 
 if keys in (key.LEFT, key.RIGHT):
  director.replace( get_sprite_test( self.index ) )
  return True
 
class PrizeMenu(Menu):
 def __init__( self ):
 super( PrizeMenu, self ).__init__()
 
 self.menu_valign = BOTTOM
 self.menu_halign = RIGHT
 self.font_item['color'] = (0,0,0,255)
 self.font_item_selected['color'] = (32,16,32,255)
 # print dir(self)
 
 # then add the items
 items = [
  ( MenuItem('一等獎', self.prize_go ) ),
  ( MenuItem('二等獎', self.prize_go ) ),
  ( MenuItem('三等獎', self.prize_go ) ),
  ( MenuItem('參與獎', self.prize_go ) ),
 
 ]
 
 
 # self.create_menu( items, selected_effect=zoom_in(),
 #   unselected_effect=zoom_out())
 self.create_menu( items, shake(), shake_back())
 
 def on_quit( self ):
 pyglet.app.exit()
 def prize_go( self ):
 s = self.parent
 if s.is_begin:
  s.top_notice.element.text=""
 else:
  # s.stop_num = 1
  s.go_prize()
 
# def main():
 
# pyglet.font.add_directory('.')
 
# director.init( resizable=True)
# director.run( Scene( PrizeMenu() ) )
 
# if __name__ == '__main__':
# main()
 
 
class StartPrize( SpriteLayer ):
 def __init__( self,index ):
 super( StartPrize, self ).__init__(index) 
 
 self.current_num = 0 #當前位置
 self.is_begin = False #是否已經(jīng)開始
 self.prize_cycle = 0 #轉(zhuǎn)動圈數(shù) 
 self.prize_speed = 0.05 #初始速度
 self.prize_speed_slow = 0.3 #慢速度
 self.stop_num = 0 #停止的位置
 self.alread_get_prize = [] # 已經(jīng)得獎的人
 self.start_slow = False
 self.can_stop = False
 self.press_go = False
 
 self.sprite = Sprite( self.image )
 # self.sprite = Sprite( image.Animation([image.AnimationFrame(image.load('r1.png'),0.001)] ))
 self.alread_prize_sprite = Sprite( self.rimage )
 
 self.bgsprite = Sprite( self.bgimage )
 self.pressbgsprite = Sprite( self.pressbgimage )
 self.prizesprite = Sprite( self.prizeimage ) 
 
 self.top_label = Label( self.top_text )
 # 注意是要有個element
 self.top_label.element.x = -250
 self.top_label.element.y = 350
 self.top_label.element.color = (0,0,0,255)
 self.top_label.element.font_size = 20
 
 
 self.top_notice = Label( "點擊中間開始抽獎" ) 
 self.top_notice.element.x = 120
 self.top_notice.element.y = 300
 self.top_notice.element.color = (255,0,0,255)
 self.top_notice.element.font_size = 20
 
 self.pressbgsprite.do(Hide())
 self.alread_prize_sprite.do(Hide())
 # self.sprite.do(Hide())
 
 
 
 def on_enter( self ):
 super(StartPrize,self).on_enter()
 
 
 
 bgcolor = ColorLayer(255,255,255,255, consts_window['width'], consts_window['height'])
 bgcolor.position = (-320,-320) 
 # 背景顏色 
 self.add( bgcolor )
 # 標題
 self.add( self.top_label )
 self.add( self.top_notice )
 # 轉(zhuǎn)動的背景圖
 self.add( self.sprite ,z=3)
 self.add( self.alread_prize_sprite ,z=3)
 # 人名圖
 self.add( self.prizesprite ,z=4)
 # 背景圖
 self.add( self.bgsprite,z=1 )
 self.add( self.pressbgsprite,z=1 )
 
 self.position = 320,320
 
 # menu = PrizeMenu()
 # menu.position = (-320,-320) 
 # self.add(menu)
 
 # self.sprite.do( Repeat(Rotate( 360, 4 ) ))
 
 def on_key_press( self, keys, mod ):
 super(StartPrize,self).on_key_release(keys, mod)
 if keys == key.ENTER:
  if self.is_begin:
  self.top_notice.element.text="正在抽獎中。。"
  else:
  self.press_go = True
  self.go_prize()
  return True
 
 def on_key_release( self, keys, mod ):
 super(StartPrize,self).on_key_release(keys, mod)
 if keys == key.ENTER:
  if self.press_go:
  self.prize_cycle = 0
  self.can_stop = True
  self.press_go = False
  return True
 if keys == key.S:
  # self.stop_prize() 
  return True
 def on_mouse_press (self, x, y, buttons, modifiers):
 px,py = director.get_virtual_coordinates (x, y)
 # print px,py
 if px > 188 and px<450 and py>188 and py<450:
  if self.is_begin:
  self.top_notice.element.text="正在抽獎中。。"
  else:
  self.press_go = True
  self.go_prize()
 def on_mouse_release (self, x, y, buttons, modifiers):
 px,py = director.get_virtual_coordinates (x, y)
 if self.press_go:
  self.prize_cycle = 0
  self.can_stop = True
  self.press_go = False
 
 
 
 def rotate_select(self,dt): 
 
 
 if (self.current_num >= 24):
  self.current_num = 0
  self.prize_cycle += 1 
 
  
 if ( self.prize_cycle > 1 and self.can_stop):
  if( not self.start_slow ):
  # 減速
  self.unschedule(self.rotate_select)
  self.schedule_interval(self.rotate_select, self.prize_speed_slow)
  self.start_slow = True 
 
 # print self.alread_get_prize
 # print "stopnum" , self.stop_num
 # print "prize_cycle" , self.prize_cycle
 # print "current_num" , self.current_num
 # print self.current_num
 # 注意rotate_select是要兩個參數(shù)的 
 self.sprite.rotation=self.sprite.rotation+15
 self.alread_prize_sprite.rotation = self.alread_prize_sprite.rotation+15
 
 if self.current_num in self.alread_get_prize:
  self.sprite.do(Hide())
  self.alread_prize_sprite.do(Show())
 else:
  self.alread_prize_sprite.do(Hide())
  self.sprite.do(Show()) 
 effect = Effect('1.wav')
 effect.play()
 
 
 if ( self.prize_cycle > 2 and self.stop_num == self.current_num and self.can_stop):
  self.stop_prize() 
  return True
 
 
 
 self.current_num += 1
 
 def get_random(self):
 r = random.randint(0,23) 
 if r in self.alread_get_prize:
  r = self.get_random()
 return r 
 
 
 
 
 def go_prize(self):
 self.current_num = 0
 self.sprite.rotation=0
 self.alread_prize_sprite.rotation = 0
 self.prize_cycle = 0 
 self.stop_num = self.get_random()
 # self.stop_num = 0
 
 if self.stop_num in self.alread_get_prize:
  self.top_notice.element.text="error, alread get prize"
  return False 
 self.top_notice.element.text="正在抽獎中。。"
 self.start_slow = False
 self.can_stop = False
 
 self.is_begin = True 
 
 # 定時器
 self.schedule_interval(self.rotate_select, self.prize_speed)
 # self.schedule(self.rotate_select)
 self.bgsprite.do(Hide())
 self.pressbgsprite.do(Show())
 
 def stop_prize(self):
 self.alread_get_prize.append(self.current_num)
 self.is_begin = False
 effect = Effect('2.wav')
 effect.play()
 self.top_notice.element.text=""
 
 self.pressbgsprite.do(Hide())
 self.bgsprite.do(Show())
 self.unschedule(self.rotate_select)
 
 
tests = { 
 1: StartPrize,
}
 
def main():
 director.init(**consts_window) 
 # director.show_FPS = True
 director.run( get_sprite_test( 1 ) )
if __name__ == '__main__':
 main()

分享標題:python實現(xiàn)公司年會抽獎程序-創(chuàng)新互聯(lián)
文章地址:http://www.aaarwkj.com/article26/ppcjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、App開發(fā)、網(wǎng)站策劃、面包屑導航虛擬主機、電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設(shè)
国产精品久久中文字幕网| 午夜在线精品福利视频| 日韩av黄色制服在线网站| 欧美午夜福利视频电影| 欧美日韩一级一区二区| 亚洲国产欲色有一二欲色| 久久精品一区二区三区乱码| 日韩欧美亚洲另类激情一区| 亚洲一区二区三区观看视频| 亚洲人午夜射精精品日韩| 一区二区不卡日韩av| 人人妻夜夜天天俺去添噜| 国产欧美成人精品第一区| 无遮挡无掩盖的免费网站| 国产成人精品久久久亚洲| 成年人性生活一级视品| 内射久久一区二区亚洲| 国产美女精品一区二区三区| 日韩在线一区二区视频| 欧美一区二区三区四区久久| 国产伦理在线观看一区二区| 国产乱肥老妇国产一区二| 国产女主播在线观看视频| 国产一区二区三区av| 黑人一区二区三区在线| 久久精品亚洲一区二区| 日本人妻风俗店中文字幕| 熟妇一区二区三区av| 少妇内射呻吟中文字幕视频| 国产成人+亚洲欧洲综合| 蜜臀av在线国产一区 | 免费看夫妻性生活视频| 欧美成人精品欧美一级乱| 国产亚洲精品精品国产亚洲| 男女性情视频免费大全网站| 传媒视频免费在线观看| 日本黄色美女日本黄色| 国产男女猛烈无遮挡网站| 蜜桃av网站在线播放| 岛国大片一区二区三区| 开裆丝袜高跟啪啪高潮av|