网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月29日漏签0天
python吧 关注:476,759贴子:1,974,087
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回python吧
>0< 加载中...

pygame及更早的學習(寫遊戲)隨筆

  • 只看楼主
  • 收藏

  • 回复
  • 喵喵陳
  • 探花
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
https://pan.baidu.com/s/1-jcxi_rv5-obiGDrgDG6Qw?pwd=b57e
嗯,這是我小時第一個學會的遊戲加了點料轉成py....誰能說這沒有GUI的不是遊戲!
不過還是由https://tieba.baidu.com/p/8898716003的

說起吧.......涂了的是跟圖1重了的,省得干擾....
https://pan.baidu.com/s/1TdwleIzie1TbVw64ouFR7g?pwd=4dkr 刪掉多的也有這段......
首先.....還是說import 吧....這是把一個模組引入的意思....就跟你把快遞開箱來用差不多...
下面pygame.init()就是把pygame中很多東西..我也沒搞懂是初始化還是喚醒....總之有一堆功能要init()後才能用...pygame.init()一次就全準備好了....不過你也可以分開init()只叫用的....
win=pygame.display.get_desktop_sizes()[0] 這是拿到屏幕的數據了,不過有很多我只要list中的第一組....
ww=win[0]把前面的win斬成兩個變數...
wh=win[1]
screen = pygame.display.set_mode((ww/4*3,wh/4*3),pygame.NOFRAME)這行的 pygame.display.set_mode是
整個GUI,整個程序我應為最重要的code,沒有之一......這就是打開一個叫screen的視窗,沒了display就沒有視窗,
(ww/4*3,wh/4*3)定義了視窗大小,pygame.NOFRAME只是把正常視窗上面討厭的程序名,X鍵關了,可以刪的這一
個位有很多功能例如全屏,視窗大小可調整跟其他不知幹甚麼的...自己去pygame官網看....當想用複數功能時就用
+加起來例如pygame.FULLSCREEN+pygame.NOFRAME+pygame.RESIZABLE不過沒人會這樣做......
clock = pygame.time.Clock() 這我只知道後面clock.tick(x)一秒多少幀畫面要用....至於時間....我一向用datetime....
fontlist把pygame讀到的字型列表了....font=pygame.font.SysFont(fontlist[27],12)就是在系統字型中拉了第28種(我
的機的....)來用,大小是12....
map = pygame.Surface((48,48*6)) 後面改成mapt的是一個只存在在記憶體中的畫面()中是像素的面積,除了這種因
為生氣隨手打的垃圾程式,沒人會叫電腦這時候算48*6之類的......早算好這填數字就好....更別說後面那些「圖」了
mapt.fill((255,255,255))給mapt這圖填滿(255,255,255)的顏色....也就是白色..相關看RGB色的東西
maptstr = font.render('平地',True,(0,0,0),(128,128,0)) 做出'平地'這字串,True我不知道用途,兩組()分別是文字色跟底色
strpos = maptstr.get_rect() 叫出文字位置
strpos.center = 24,24 重定義文字的中心位置...這堆dir()就知道了...
mapt.blit(maptstr,strpos) 把strpos改成(123,456)那maptstr位置會到了(123,456)而不是strpos...
blit很重要....你準備了字跟圖...記得要用blit貼到圖/視窗上......
screen.blit(mapt,(0,0)) 相比前面mapt把maptstr貼到strpos,這就是screen把mapt貼到(0,0)了...
screen.blit(me,(70,0))
pygame.display.flip()把視窗更新了......不然你怎麼畫,視窗都沒反應喲......
其他的.....我沒吃透,就知道想正常關視窗要有pygame.QUIT那塊,不然退出時會報錯......


  • 喵喵陳
  • 探花
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
https://pan.baidu.com/s/12u473DkP8EehBIkeqN5btA?pwd=ja94
中間的跳過,直接到能動的半成品吧......
char.set_colorkey((255,255,255)) 設了(255,255,255)做透明色.
pygame.draw.rect(ctrlpad,(55,55,55),(0,48,144,48)) 在ctrlpad的畫面的0,48的位置用55,55,55的色彩畫144,48的四方形
pygame.draw.circle(ctrlpad,(55,55,55),(264,72),22)同樣的畫面色彩在(264,72)畫半徑22的圓
font=pygame.font.SysFont(fontlist[27],40) 重新定義字型大小
f=font.render('上',True,(255,255,255)) 定義了f是'上'字串,色彩255,255,255也就是白色
fp=f.get_rect() 取得了f的方塊...一切為了下句
fp.center = 24+48,24 fp的正中是72,24,除了center還有很多,請print(dir(fp)看......)
ctrlpad.blit(f,fp) 把f貼到ctrlpad上
for呀, def呀, map={}呀, map[x,y]={'tile':tile,'mt':mt,}還有+-*/%=呀, +=, -=, self.hp=eval('9'*4200), open....python的基礎....嗯,我基本沒吃透就大家不懂的請回吧求救, 我幫不了你們的......
好像忘了今次的重點mouse跟keyboard的key....
先說keyboard的key我為什麼一個都沒用......因為我沒啃pygame的key模組...原因..未啃到...
mouse為了在pygame中用才提前啃了部分
if(keyon[0]==-1)&(pygame.mouse.get_pressed()[0]==True):在while之前定義了keyon=[-1,0], 沒人按左鍵就不會變....除非我又給別的變數用了keyon(這多半老喵痴呆了....)當pygame.mouse.get_pressed()[0]==True時就是左鍵被按了....
按鈕感覺程式https://pan.baidu.com/s/1kzmxgBiq0s2x4xchMubBow?pwd=hf33
keyon=pygame.mouse.get_pos() 按了左鍵keyon就被滑鼠的位置蓋寫了,keyon[0]必然是0或正整數
if(keyon[0]>-1)&(pygame.mouse.get_pressed()[0]==False):當感覺到左鍵放開就執行...
keyon = doclick(keyon,pygame.mouse.get_pos()) 然後'我'的行動都是基本功了......遊戲除了找GUI跟畫圖......其他好易的......


2025-08-29 09:48:03
广告
不感兴趣
开通SVIP免广告
  • 喵喵陳
  • 探花
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
https://pan.baidu.com/s/1sopSFG4fUVYOIrzjrcC9_g?pwd=hmvs
img = pygame.image.load('C:\picture\pkk.png') <-把圖讀出來...
nimg = pygame.transform.scale(img,(64,64)) <--把剛才讀的圖縮放成64,64的新變數
imgpos = nimg.get_rect() 找到nimg的中心點...然後就把這中心點重疊到剛才開的48,48的圖的中心點...
print(pygame.image.tostring(pic,'RGBX')) 最後把圖變成byte字串....
https://pan.baidu.com/s/1hnlnDacd_qeLEWRwJuD7XA?pwd=zssa
嗯,python.exe說他不挑嘴的,只要內容是正確的py code就可以了....
先把剛才的byte貼上來變成p字串...
pic = pygame.image.frombytes(p,(48,48),'RGBA') 搞定....把圖打包進code了...
嗯,一張圖有pixel長*寬*4 bytes


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回python吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示