用户:
橙子nUcg查看:286 回复:15 评论:56 创建时间:2021-09-20T11:53:51
以后,本人会持续发布一些关于Python的Pygame库的教程!
今天的内容是:Pygame库入门!!!
Pygame简介:
Pygame是Python中一个制作2D游戏的、功能强大的第三方库,在海龟编辑器客户端即可下载。这个库允许向游戏中添加角色(这里叫“精灵”),并建立窗口。
现在,我们来做一个最简单的基本操作:导入和初始化。
import pygame #导入Pygame
import sys #导入sys模块,退出窗口时会用到
pygame.init() #初始化Pygame
好了,这是最基本操作,以后必须经常用到。
当然,这个操作只是让你认识这个库,并不是真正的大型教程。
下节课,作者才会发布更多Pygame教程。拭目以待!
下节课预告:新建窗口,并实现按“X”退出。
关注作者下次的教程贴哦!
再见!
Albert钟pygame这玩意本身就用的不多了,连事件循环、面向对象都没有,贴主可以考虑下pgz、arcade,另外。。。。这个内容量也太小
点赞1
评论
你不去看我昨天(周四)发的贴吗?
pygame是可以面向对象的。ԅ(¯ㅂ¯ԅ)
pygame纯原生面向对象根本就很累赘,要面向对象和套个盒子差不多,现在用pygame的真的不多
对,你考虑考虑arcade
也是
emm,主要是因为很少人用pygame,在社区发python'作品可能只有2%是pygame'
只是Pygame唯一的特点是可以向KITTEN一样,还可以导入本地图片。
你说我今天要不要发Pygame教程呢?
其他也可以导
发吧,既然已经决定,就不要再更改了
嗯发吧,能发完整篇就不错,毕竟一般弃坑的很多
行的,我下午发,就发导入图片和鼠标、键盘的事件。
铁铁们啊,别喷了,别仗着自己懂得多就以为这里没有菜鸟啊,我遇上好几个连py语法都不会的和图形化人发的帖子,别喷了,这玩意肯定有存在的价值(至少对初学pygame的人比较方便因为这面的人很少有能看懂百度的)(python区用pygame做游戏的人数能和arcade用户整个五五开,还不算太冷门)
点赞2
评论
anyway 百度yyds csdnyyds 菜鸟教程yyds
呃,呃
额,额
我一直觉得pygame是淘汰产品,还真有人用啊
还是我错了、、、、
橙子nUcg不过这里真的有人连Python语法都不会吗?真的有人看不懂下面那个(开个玩笑)?
user = input('你会Python语法吗?(填“会”或“不会”)')
if(user == '会' or user == '废'):
print('ddd')
elif(user == '不会' or user == '不废'):
print('呃呃呃')
有人不会我服了。
点赞2
评论
有人可以来加入我工作室吗?
xs
什么?~( ̄▽ ̄~)~
什么?~( ̄▽ ̄~)~
你在家上完课,是不是?我看到你贴了。
打字打错了,是网课。
是的
你住哪个省?
我,亿个厦门思明区居家学习的屑
同感!我海沧的。额额额。
注意防范
Python-happyyyy不会吧不会吧,都1202年了还有人不会Python语法
点赞2
评论
告诉你件事,我下午要去代码岛建图,pygame教程就改成下周一发。
代码岛有什么好?(只是问问,勿引战)
代码岛也能写代码,最主要是可以多人联机。当然,我只是说说,勿引战......
要不要我把我的图的代码(暂时的,还没建完)发给你?
发啊
实际上代码岛个人理解就是类似于Mc,能激发玩家(建造者)的兴趣,这一点编程猫做的挺好的
是的
我发在另一个回复,这个贴,你来看看
有点长,见谅
橙子nUcg发个和Python无关的东西,是@Python-happyyyy让我发的,神奇代码岛JAVAscript代码。下面有部分注释还没写,见谅。
//这是本人的第一个作品的代码,不喜勿喷!
const mms = world.querySelector('#密码锁-1'); //让密码锁-1交互
mms.enableInteract = true;
mms.interactHint = '密码锁';
mms.interactRadius = 4;
mms.onInteract(async({entity})=>{ //当发起交互
const result = await entity.player.dialog({
type: Box3DialogType.SELECT,
title: '门锁',
content: '本作品的作者是?',
options: ['吉吉喵','搬砖喵','名字鬼知道','ExtBLO','橙子nUcg','MC玩家103','木叶龙1342'],
});
if(result.index === 4){ //如果选择正确
world.say(`${entity.player.name}顺利通过第一关!`)
entity.player.directMessage('正确!')
entity.position.set(240,8,248) //逃走
mms.enableInteract = false
}
else{ //否则
entity.hurt(15) //伤害
entity.player.directMessage('错误!')
}
})
const rw = world.querySelector('#人物-1')
rw.enableInteract = true;
rw.interactRadius = 4;
rw.interactHint = `战友`;
rw.interactColor = new Box3RGBColor(1,1,1);//互动字体颜色
rw.onInteract(async({entity}) => {//当发起交互
entity.player.dialog({
type: Box3DialogType.TEXT, // 对话框的类型
title: `战友`, // 对话框标题
content: `${entity.player.name},快去越狱吧!`,
});
})
const mms1 = world.querySelector('#密码锁-2')
mms1.enableInteract = true;
mms1.interactRadius = 4;
mms1.interactHint = `门锁`;
mms1.onInteract(async({entity})=>{
const r1 = await entity.player.dialog({
type:Box3DialogType.SELECT,
title:`门锁`,
content:`月球距离地球?`,
options:['8000千米','38万千米','42万千米','1089亿千米','13500万千米'],
})
if(r1.index === 1){
world.say(`${entity.player.name}顺利通过第二关!`)
entity.player.directMessage(`正确!`)
entity.position.set(219,8,235)
mms1.enableInteract = false
}
else{
entity.hurt(15)
entity.player.directMessage(`错误!`)
}
})
mms2 = world.querySelector('#密码锁-3');
mms2.enableInteract = true;
mms2.interactRadius = 4;
mms2.interactHint = '门锁';
mms2.onInteract(async({entity})=>{
const r2 = await entity.player.dialog({
type:Box3DialogType.SELECT,
title:`门锁`,
content:`圆周率四舍五入保留8位小数是?`,
options:['3.14159269','3.14259269','3.14195238','3.14145235','3.14159265'],
})
if(r2.index === 4){
world.say(`${entity.player.name}顺利通过隔离门!`)
entity.player.directMessage(`正确!`)
entity.position.set(203,8,223)
mms2.enableInteract = false
}
else{
entity.hurt(15)
entity.player.directMessage(`错误!`)
}
})
world.onPlayerJoin(({entity})=>{ //当玩家进入地图
entity.position.set(250,8,246)//出生地
entity.enableDamage = true //允许伤害
entity.things = [] //空物品列表
entity.money = 10
entity.atk = 0 //各种变量
if(entity.player.name === '橙子nUcg'){ //欢迎作者
world.say('欢迎作者橙子nUcg的到来!')
entity.player.canFly = true //能飞
}
else if(entity.player.name === '小小瓢虫'||entity.player.name === '一只小虎喵'||entity.player.name === 'studentNo.1(学员一号)'){ //欢迎合作者
world.say('欢迎合作者'+entity.player.name+'的到来!')
entity.player.canFly = true //也能飞
}
entity.player.dialog({
type:Box3DialogType.TEXT,
content:`你,${entity.player.name},在超时空对决中,被外星人抓到了这个位于月球的监狱。`,
});
entity.player.dialog({
type:Box3DialogType.TEXT,
content:`你暂时只有10元钱。请你凭借智慧,破解门锁,拾取道具,击败外星人,逃回地球!`
});
entity.player.addWearable({
bodyPart:Box3BodyPart.TORSO,
mesh:'mesh/黄喵包.vb',
orientation:new Box3Quaternion(0,1,0,0).rotateY(Math.PI/2),
scale:new Box3Vector3(0.5,0.5,0.5),
offset:new Box3Vector3(0,0,-0.45),
});
});
world.onChat(({entity,message})=>{
if(message==='关闭飞行'){
if(entity.player.name==='橙子nUcg'||entity.player.name==='小小瓢虫'||entity.player.name === '一只小虎喵'||entity.player.name === 'studentNo.1(学员1号)'){
entity.player.canFly = false
world.say('成功!')
}
else{
entity.hurt(5)
entity.player.directMessage('喂,别吵!你又不是作者!')
}
}
else if(message==='开启飞行')
if(entity.player.name==='橙子nUcg'||entity.player.name==='小小瓢虫'||entity.player.name === '一只小虎喵'||entity.player.name === 'studentNo.1(学员1号)'){
entity.player.canFly = true
world.say('成功!')
}
else{
entity.hurt(5)
entity.player.directMessage('呃......')
}
})
world.onPress(async({ button, entity }) => {
if(!entity.isPlayer || entity.player.dead) return;
if(button == 'action1'){
const pl_1=await entity.player.dialog({
type:Box3DialogType.SELECT,
title:entity.player.name+"的状态",
content:entity.player.name+"的状态:\n血量:"+entity.hp+"\n金钱:"+entity.money+"\n攻击力:"+entity.atk,
options:['保存','道具','取消']
});
if(pl_1.index===0){
return;
}
else if(pl_1.index===1){
const pl_2 = await entity.player.dialog({
type:Box3DialogType.SELECT,
title:entity.player.name+'的道具',
options:entity.things,
})
}
else if(pl_1.index===2){
if(entity.player.boxId===''){
entity.player.dialog({
type:Box3DialogType.TEXT,
title:entity.player.name+'的状态',
content:'你是游客,无法保存!',
})
}
else{
//保存,先别动,要用SQL
}
}
}
})点赞1
评论
注意,这段代码还没写完。
冒个泡((((
az,我也不是不会js
az,要不我帮你写
???
要不我发链接,你玩一下
我可以叫你怎么操作
是教
不用了,自己也有了解
我电脑要是玩的话,显卡会炸
好吧
不过有时间我会来的,你可以将网址先给我
https://box3.cod喵/e/b8043d30adf227bccfe8?p=b6wN%2Fn3u0qWarqoJ8fffryAjzgXnMssw6JCw48WMJ6A7jsvinCLwVndWVzdA%3D%3D