Actionscript 3 动作脚本3。如何在游戏舞台上铺地?
我正在制作一个简单的flash游戏,我只是制作了角色控制(左移、右移和跳跃)。当我增加重力时,我的角色从舞台上掉下来 我已经绘制了地板,导入到库中,但我不知道代码应该是什么样子 我的楼层被称为“地面”,我将其添加为“地面” 目前,我的代码如下所示: (注:我的角色名为“英雄”)Actionscript 3 动作脚本3。如何在游戏舞台上铺地?,actionscript-3,flash,actionscript,actionscript-2,stage,Actionscript 3,Flash,Actionscript,Actionscript 2,Stage,我正在制作一个简单的flash游戏,我只是制作了角色控制(左移、右移和跳跃)。当我增加重力时,我的角色从舞台上掉下来 我已经绘制了地板,导入到库中,但我不知道代码应该是什么样子 我的楼层被称为“地面”,我将其添加为“地面” 目前,我的代码如下所示: (注:我的角色名为“英雄”) 谢谢您的帮助。您需要几个布尔变量来检查英雄是否在地板上,以及重力何时施加。因此,如果他到达地板或特定区域,您必须将重力设置为false,而不是像您在这里所做的那样每帧更新它:Hero.y_speed+=gravity 如
谢谢您的帮助。您需要几个布尔变量来检查英雄是否在地板上,以及重力何时施加。因此,如果他到达地板或特定区域,您必须将重力设置为false,而不是像您在这里所做的那样每帧更新它:
Hero.y_speed+=gravity代码>
如果按空格键,则需要让角色跳跃,然后通过将布尔值设置为true来应用重力,然后,当它碰到地板时,应禁用重力,并再次启用跳跃
void update(float delta) {
if (grounded) {
// ground based movement and actions
// check to see if the spacebar was pressed to jump
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space) {
ya = -40; // go up 40 pixels per second
grounded = false;
}
} else {
// air based movement and actions
// apply gravity
ya += GRAVITY * delta;
}
// movement and collision work after you've figured out the x and y acceleration of the player
y += ya * delta;
}
地板平吗?如果它是扁平的,你可以使用stageHeight
和hero.y
。谢谢你的回答,因为现在我使用if(hero.y==150){hero.y_speed=0;}
但是现在它在地板上时我不能跳了谢谢你的回复,你能帮我一下吗?它应该是怎样的呢?我试过:private-var-gravity:Boolean=true代码>if(Hero.y_speed>0&&Hero.y>(stage.stageHeight-Hero.height-10)){gravity=false;}
但它不工作首先重力应该为false。当您跳转时,它应该为false,在特定时间段后,您将启用它。出于您的目的修改我的伪代码。谢谢您的回答,但我遇到了以下错误:1084:语法错误:在delta之前应该是rightparen。
在这一行:void update(float delta){
我也遇到了以下错误:1083:语法错误:else是意外的。
void update(float delta) {
if (grounded) {
// ground based movement and actions
// check to see if the spacebar was pressed to jump
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space) {
ya = -40; // go up 40 pixels per second
grounded = false;
}
} else {
// air based movement and actions
// apply gravity
ya += GRAVITY * delta;
}
// movement and collision work after you've figured out the x and y acceleration of the player
y += ya * delta;
}