
Lv.1
看到我请提醒我“济南外国语学校”
签名:中二救世,略带更文(×) 做一只快乐的鸽子(√)
在 【Python作品分享】RPG【求助帖】 中回复
改成这样:
#开始进入Python的世界
def start():
玩家名 = input('你的名字?')
print('哦,原来是', 玩家名)
print('那么', 玩家名)
关键决策1 = input('你是否愿意救救我们?')
if (关键决策1 == '是' or 关键决策1 == '否'):
if (关键决策1 == '否'):
print('好吧,再见')
else:
道具 = [9, 1]
print('那么,这把铁剑就给你了')
道具.append('铁剑')
print('请去周围的小树林里捉些猪')
print('(去周围的小树林就输入1)')
副本['1'] = '小树林副本'
已解锁地点 = '1'
传送地点 = input()
print(传送地点)
print(副本[传送地点])
if (传送地点 == 已解锁地点 or 传送地点 < 已解锁地点):
print('-------', 副本[传送地点], '--------')
else:
print('你怎么知道这个地方的?!')
else:
print('你说啥?')
副本 = [1, 3]
start()
不愿用函数就提到前面:
#开始进入Python的世界
副本 = [1, 3]
玩家名 = input('你的名字?')
print('哦,原来是', 玩家名)
print('那么', 玩家名)
关键决策1 = input('你是否愿意救救我们?')
if (关键决策1 == '是' or 关键决策1 == '否'):
if (关键决策1 == '否'):
print('好吧,再见')
else:
道具 = [9, 1]
print('那么,这把铁剑就给你了')
道具.append('铁剑')
print('请去周围的小树林里捉些猪')
print('(去周围的小树林就输入1)')
副本['1'] = '小树林副本'
已解锁地点 = '1'
传送地点 = input()
print(传送地点)
print(副本[传送地点])
if (传送地点 == 已解锁地点 or 传送地点 < 已解锁地点):
print('-------', 副本[传送地点], '--------')
else:
print('你怎么知道这个地方的?!')
else:
print('你说啥?')2020-04-29T07:21:27 点赞:0
在 求大家推荐一本关于html的书 中回复
光HTML挺简单的,但你要是选择前端的话,还需要掌握至少CSS/JavaScript
HTML和CSS看看菜鸟教程那种的就行,JavaScript可以去翻翻书?(不过本人还是靠着那些手册过活2333)
2020-04-29T18:31:56 点赞:1
在 【代码岛3.0科普贴】如何用代码将所有实体实体化? 中回复
个人偏向于直接用if筛选,就是把第二个改为如下:
world.querySelectorAll('*').forEach((e)=>{
if(! e.isPlayer){
e.collides=true;
e.fixed=true;
}
})
PS:我的《贪吃蛇作战》审核通过后,我也会将源代码全部共享(最好能做个教程?),一起为box3的教程领域开辟道路鸭![]()
2020-04-29T23:03:41 点赞:1
在 你发mc和mn有关的帖子怎样算违规? 中回复
任何涉及到两个游戏的评价言论都有引战的嫌疑哦,所以说只有极个别的不涉及任何比较、诋毁、言论的帖子可以,或者说单纯地做作品等
2020-04-30T12:03:48 点赞:0
在 【第二届代码岛创作赛-五光十色-炫酷之队进展报道贴】 中回复
幻梦战队的地图哦(当然只能截一部分):
此外还有超多的功能与代码(虽然我不介意开源,但毕竟是比赛,等比完了再开源也不迟):
2020-05-01T20:20:34 点赞:0
在 【灌水灌水+接R姐】一人说一句可以让你的主角哭出来的话 中回复
https://shequ.codemao.cn/wiki/novel/cover/61302《玊兽·前传》
金仔:没有翅膀又如何?不想想你是如此幸福:你的父母还在天上守护着你,你的所有朋友也都一心为了你好……你还有什么理由不去努力、去暗自消沉!
PS:系列另外三位主角:
志鑫:“放心,这盛世如你所愿!”
燧影:“活该单身
”
清皓:“醒醒啦,你可是杀了你老婆啊
”
2020-05-01T21:02:11 点赞:0
在 【BOX3科普贴】怎样做出一个贪吃蛇大作战?源代码全公开! 中回复
最终精简版:
console.log("Link Start!");//桐老爷专属水印[doge]
const SECONDS_PER_TICK = 1000 / 128;
const ROUND_TIME = 200 * SECONDS_PER_TICK;//每局游戏时长
const MIN_PLAYERS = 2;//玩家数量下限
const BLACK_TIME = 250 //刷新黑方块的时间,默认一秒钟4个
const GRID_X = 128;//两个都是地图边界
const GRID_Z = 128;
var t;
world.gravity *= 10;
const TEAMS = [
{ r: 1, g: 0, b: 0, v: voxels.id('red_light'), n: '红队', score: 0, },
{ r: 0, g: 1, b: 0, v: voxels.id('green_light'), n: '绿队', score: 0, },
{ r: 0, g: 0, b: 1, v: voxels.id('blue_light'), n: '蓝队', score: 0, },
{ r: 1, g: 0, b: 1, v: voxels.id('purple'), n: '紫队', score: 0, },
{ r: 0, g: 1, b: 1, v: voxels.id('indigo_light'), n: '青队', score: 0, },
{ r: 1, g: 1, b: 0, v: voxels.id('yellow_light'), n: '黄队', score: 0, },
];
world.onPlayerJoin(({ entity }) => {
//初始化各参数
entity.player.Len = 1
//因为刚开始玩家就有一条尾迹,所以说不是0而是1
entity.player.All = []
//因为尾迹的添加是在触碰后再添加的,所以说目前为空列表
});
// 辅助函数,用于随机打乱一个数组(未魔改)
function shuffle (array) {
for (let i = 1; i < array.length; ++i) {
const temp = array[i];
const x = (Math.random() * (i + 1)) | 0;
array[i] = array[x];
array[x] = temp;
}
return array;
}
async function startGame () {
// 将地面初始化,全部变成white
for (let j = 0; j < GRID_Z; ++j) {
for (let i = 0; i < GRID_X; ++i) {
voxels.setVoxel(i, 8, j, 'white');
}
}
// 等待玩家进入(未魔改)
while (world.querySelectorAll('player').length < MIN_PLAYERS) {
world.say('等待其他玩家加入...');
await sleep(1000);
world.say('2个玩家立即开始');
await world.nextPlayerJoin();
}
// 足够玩家加入后,就开始倒计时(未魔改)
for (let i = 3; i > 0; --i) {
world.say(i + '...');
await sleep(1000);
}
world.say('游戏开始!');
putb()
//putb()即"put black",用于随机放置黑色方块
// 每局都随机打乱队伍(喵)
const players = shuffle(world.querySelectorAll('player'));
// 设置玩家的颜色、分值和初始位置
function setTeam (p, t) {
p.player.color.r = t.r;
p.player.color.g = t.g;
p.player.color.b = t.b;
p.position.x = Math.random() * GRID_X;
p.position.y = 30;
p.position.z = Math.random() * GRID_Z;
//新加了一个v的私人变量(储存他的颜色),用于下面的队伍判断
p.player.v = t.v;
//初始化分数(似乎有点多余了?但也不敢随意删去hhhc)
p.player.Len = 1
//初始化身体(似乎有点多余了?但也不敢随意删去hhhc)
p.player.All = []
}
// 获得初始团队(未魔改……吧)
const teams = players.map((p, i) => {
t = TEAMS[i % TEAMS.length]
setTeam(p, t);
return t;
})
//当玩家接触到地面任意方块时,更新该方块的颜色
const contactHandler = world.onVoxelContact(({voxel, entity, x, y, z }) => {
//获得该玩家的索引idx:从所有的玩家列表中获得第一个(唯一一个)符合条件的玩家)
//调用私人变量时要用entity.player.xxx
const idx = players.indexOf(entity);
if (idx < 0) {
//indexOf返回-1时表明未找到
return;
}
if (voxel === voxels.id('black')){
//如果染色的方块为black(食物)
entity.player.Len ++ ;
//长度增加
entity.player.All[entity.player.All.length] = [x, y, z];
//向列表末尾添加染色方块的位置
//因为他会让玩家变长,所以说不用删除末尾的方块(举个例子:大家都在退步,你不退步就是进步)
}
else if (voxel === voxels.id('white')){
//如果染色的方块为white(空地)
//向列表末尾添加染色方块的位置
entity.player.All[entity.player.All.length] = [x, y, z];
//将列表第一项填充为white(末尾减少)
voxels.setVoxelId(entity.player.All[0][0], entity.player.All[0][1], entity.player.All[0][2], voxels.id('white'));
if (entity.player.All.length != 1){
//喵也不知道哪来的BUG
entity.player.All.shift()
}
//之前用的第一项,看不懂忽略即可:entity.player.All[-(entity.player.Len + 1)]
}
else if (voxel === entity.player.v){
//如果染色的方块为自己的颜色(遗留痕迹/尾迹)
//向列表末尾添加染色方块的位置
entity.player.All[entity.player.All.length] = [x, y, z];
//将列表第一项填充为white(尾迹减少)
voxels.setVoxelId(entity.player.All[0][0], entity.player.All[0][1], entity.player.All[0][2], voxels.id('white'));
if (entity.player.All.length != 1){
//同上,喵也不知道哪来的BUG
entity.player.All.shift()
}
//同上,第一项:entity.player.All[-(entity.player.Len + 1)]
else{
//如果染色的方块不为black、white或自己的颜色(其他人)
//获取目标(将要被染色)的方块
mubiao = voxels.getVoxel(x,y,z);
for(i=0; i<TEAMS.length; i++){
//遍历查找该队
if (mubiao === TEAMS[i].v){
for(let j=0; j<players.length; j++){
//遍历查找属于这个队伍的玩家
if (players[j].player.v == mubiao){
//如果颜色相匹配(与上方的player.v相对应)
players[j].position.x = Math.random() * GRID_X;
players[j].position.y = 30;
players[j].position.z = Math.random() * GRID_Z;
//GO DIETH!
restart(players[j])
};
};
};
};
//向列表末尾添加染色方块的位置
entity.player.All[entity.player.All.length] = [x, y, z];
//将列表第一项填充为white(末尾减少)
if (entity.player.All.length != 1){
//喵也不知道哪来的BUG×3
entity.player.All.shift()
}
}
const t = teams[idx];
voxels.setVoxelId(x, y, z, t.v);
});
world.onVoxelSeparate(({entity}) => {
//当有玩家停止接触方块(即有可能掉出虚空)
if(entity && entity.isPlayer){
if(entity.position['y'] < 9){
//如果y坐标小于9(玩家是10)
restart(entity);
//GO DEATH!
}
}
});
// 新玩家加入,会被随机分配到一个队伍(未魔改)
const joinHandler = world.onPlayerJoin(({entity}) => {
const t = TEAMS[(Math.random() * teams.length) | 0];
setTeam(entity, t);
teams.push(t);
players.push(entity)
});
// 每局游戏会在计时到达时结束。(未魔改)
const endTick = world.currentTick + ROUND_TIME;
// 检测游戏是否进行中(未魔改)
function gameInProgress () {
let numActivePlayers = 0;
for (let i = 0; i < players.length; ++i) {
if (!players[i].destroyed) {
numActivePlayers += 1;
}
}
return world.currentTick < endTick && numActivePlayers >= MIN_PLAYERS;
//返回一布尔值,是否游戏中
}
// 当游戏结束时(未魔改)
while (gameInProgress()) {
// 等待 1 Tick
await world.nextTick();
}
// 计算各队伍的分数(其实就是把一队的玩家的Len加起来)
for (let i = 0; i < TEAMS.length; ++i) {
//遍历各队伍计算分数
for (let j = 0; j < players.length; j++){
//遍历各玩家,找出这一个队伍的
if (players[j].player.v == TEAMS[i].v){
//如果该玩家颜色与该队伍颜色一样
TEAMS[i].score += players[j].player.Len;
//将队伍分数加上该玩家分数
}
}
}
// 清除事件处理器(未魔改,似乎还要把putb.cancel()加上的,但咱也不敢动(小心翼翼))
contactHandler.cancel();
joinHandler.cancel();
// 重置玩家颜色(未魔改)
for (let i = 0; i < players.length; ++i) {
const c = players[i].player.color;
c.r = c.g = c.b = 1;
}
world.say('本局游戏结束!');
await sleep(5000);
// 宣布获胜队伍(未魔改)
TEAMS.sort((a, b) => b.score - a.score);
world.say(`恭喜 ${TEAMS[0].n} 胜利!!`);
await sleep(10000);
for(let i=0;i<TEAMS.length;i++ ){
TEAMS[i].score = 0
}
}
// 无限循环游戏(未魔改)
async function gameLoop () {
while (true) {
await startGame();
}
}
async function putb(){
//刷黑方块
voxels.setVoxelId((Math.random() * GRID_X), 8, (Math.random() * GRID_Z), voxels.id('black'));
await sleep(BLACK_TIME)
putb()
//无限套娃喵好!(滑稽)
};
async function restart(f_player){
//用于处理当玩家喵后的还原(包括掉下虚空与被别人触碰尾迹,似乎可以用forEach重构的)
console.log(f_player.player.name + "喵了")
f_player.player.Len = 1;
f_player.player.All = []
for(let ij=0; ij<GRID_X; ij++){
//通过遍历还原所有方块
for(let ji=0; ji<GRID_Z; ji++){
//c我电脑要炸了,*龙门粗口*,谁想试试就把注释符号删去:console.log(ij+ "," +ji)
if(voxels.getVoxel(ij,8,ji) == f_player.player.v){
//如果该方块为该玩家的颜色
//s**t:console.log("开始还原颜色")
voxels.setVoxelId(ij, 8, ji, voxels.id('black'));
};
};
};
}
gameLoop();2020-05-03T11:25:54 点赞:2
在 【第二届代码岛3.0创作赛】色彩之城 中回复
预告文案:
传言道:“在彩虹的彼端,有一个奇妙的地方:那里汇集世间的色彩,集天地之精华,世人们称其为“色彩次元”……而由于四洲的崩坏,色彩也逐渐分离,逐渐形成了现在的颜色。在那里生活着的人们,也将次元分为了四个空间:极彩之城、虹光之塔、迷石古堡及最神秘的‘第四区域’。每个次元都会有他们背后的故事,等待着你们的挖掘……你是选择流连在色彩缤纷的房屋之间,还是选择攀爬气势如虹的通天之塔,亦或者探秘隐藏在石砖之间的秘密,还是揭开‘第四区域’的谜团?这一切,由你来决定!”
——未完待续……
2020-05-03T15:22:02 点赞:0
在 【暂退】碳酸变成气体飘走了(?) 中回复
又有一个退猫的了……先是阿代,再是芝士,现在的书评区只剩下我孤独的一个人了啊……
——————
好吧开个玩笑,随时欢迎回来接受催更哦![]()
2020-05-03T22:43:46 点赞:0
在 彩虹快跑被毁了 中回复
2020-05-05T14:49:57 点赞:0