我正在开发Processing(在 Java上运行)中的两人游戏.一个用户将使用WASD键控制其角色,而另一个用户将使用箭头键控制移动.我遇到的问题是,当按下箭头时,使用keyPressed会否定WASD,反之亦然.我已经很长时间了.有谁知道解决方法或注意到我做错了什么?

//global variables

int wide = 600; //canvas width

int tall = 600; //canvas height

int s = 50; //player size

float speed = 2.5; //player movement speed

//colors

int redColor = #CB4646; //player 1 color

int blueColor = #4652CB; //player 2 color

int backgroundColor = #DBE3B3; //background color

float player1X = 600/3-s; //HOW COME width/3 DOESN'T WORK??????????

float player2X = 600*2/3;

float playerY = 600/2-(s/2);

//players

Player player1 = new Player(player1X, playerY, s, speed, "wasd", redColor); //player 1

Player player2 = new Player(player2X, playerY, s, speed, "arrows", blueColor); //player 2

//setup

void setup(){

background(backgroundColor);

size(wide, tall);

smooth();

println(player2.controls);

}

//draw

void draw(){

background(backgroundColor);

player1.usePlayer();

player2.usePlayer();

}

class Player{

//class variables

float x; // x position

float y; // y position

int s; //size

float speed; //speed

String controls; //controls

int colors; //player color

char keyControls [] = new char [4];

//construct

Player(float tempX, float tempY, int tempS , float tempSpeed, String tempControls, int tempColors){

x = tempX;

y = tempY;

s = tempS;

speed = tempSpeed;

controls = tempControls;

colors = tempColors;

}

void usePlayer(){

// draw player

fill(colors);

rect(x, y, s, s);

//move player

keyPressed();

//wraparound

boundaries();

}

void keyPressed(){

//sets controls for wasd

if(controls == "wasd"){

if(key == 'w' || key == 'W'){

y -= speed; //move forwards

}

if(key == 's' || key == 'S'){

y += speed; //move backwards

}

if(key == 'd' || key == 'D'){

x += speed; //move right

}

if(key == 'a' || key == 'A'){

x -= speed; //move left

}

}

//sets controls for arrows

if(controls == "arrows"){

if(key == CODED){

if(keyCode == UP){

y -= speed; //move forwards

}

if(keyCode == DOWN){

y += speed; //move backwards

}

if(keyCode == RIGHT){

x += speed; //move right

}

if(keyCode == LEFT){

x -= speed; //move left

}

}

}

}

//pacman style wraparound

void boundaries(){

if(x == width) x = 2;

if(y == height) y = 2;

if(x == 0) x = width-s;

if(y == 0) y = height-s;

}

}

java 上下键_java-同时使用WASD和方向键相关推荐

  1. java空格键_Java KeyPressed-如果其他键也太旧,则无法检测是否按下了空格键

    如标题所示,在我的Java游戏中,无法检测是否同时按下空格键和其他键. 例如,空格键是射击键,而箭头键则使玩家移动.如果我按下向上箭头键,向左箭头键和空格键,那么它应该向左上方发射子弹. 但是,在使用 ...

  2. java数组键_Java基础之数组

    数组 数组就是用于存储相同数据类型数据的一个容器.可以通过有规律的索引来访问没有规律的元素. 一维数组 定义格式:元素的数据类型[ ] 数组名称 = new 元素的数据类型 [ 数组容器大小 ]: 数 ...

  3. 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目

    课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...

  4. Java心得--键值、枚举器

    1. 集(Set):和数学上的"集合"概念相对应,是最简单的一种集合. Set集合中不区分元素的顺序,因此也就不记录元素的加入顺序. Set集合中不包含重复元素,即任意的两个元素e ...

  5. 用java的io做一个代码计数器,如何制作Java页面计数器_java

    大庆采油六厂采油工艺研究所 王兵 王波 常常逛WWW的人,一定对许多起始页上的计数器感兴趣.每当你光临某个站点的起始页时,它的计数器就很亲切地告诉你,从某年某月某日开始,你是第几位光临的人.你可能也想 ...

  6. java类结构图_java 集合类结构图

    接口 实现类 保持插入顺序 可重复 排序 使用说明 List ArrayList Y Y N 长于随机访问元素:但插入.删除元素较慢(数组特性). LinkedList Y Y N 插入.删除元素较快 ...

  7. 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发

    今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...

  8. 【源码+项目部署】Java课程设计项目_Java人力资源管理系统

    对就业和毕业都有帮助的Java实战项目来咯--人力资源管理系统! 人力资源管理系统 |Java项目2小时上手编写_源码+数据库拿走不谢!Java实战项目_Java开发https://www.bilib ...

  9. java list键值_java基础之对List,Map,Set等集合键值对的简单认识

    [一.集合] 特征: 数组:定长.可以放基本数据类型. List:变长.只能放对象.有序,可重复. Set :变长.只能放对象.无序,不可重复. Map :变长.只能放对象.无序,键值对. 重要实现类 ...

最新文章

  1. iOS进阶之页面性能优化
  2. 基于SIP和RTP协议的开源VOIP之QuteCom简单介绍
  3. K8S发布解释型语言应用的最佳实践
  4. cve-2020-0796_SMBGhost 漏洞 CVE20200796 的PoC 已发布,攻击现身
  5. c语言更改编译时字体,c习题编译时出现空的字符常量,怎么修改?
  6. 一个高质量的程序应具备哪些条件?_有料!报考云南省考公务员,应具备哪些条件?...
  7. 【Asp.Net】div和span元素的区别
  8. 恶搞代码——vbs进程
  9. MySql 报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains....
  10. 网吧服务器怎么加无线路由器,网吧有线路由器接无线路由该如何设置?
  11. 使用python对单幅图像进行数据增并保存增强后的结果
  12. 研讨班管理系统的设计与实现【数据库课设】
  13. ipad 开源协议_开源iPad替代品,创用CC满12岁,甚至更多
  14. 用c语言编写打猎小游戏,使用c语言编写简单小游戏.docx
  15. 一个计算机毕业生的求职经验
  16. http get请求参数放在url中和放在 header中有什么区别
  17. Unable to negotiate with 123.4.47.238 port 29418: no matching host key type found. Their offer: ssh-
  18. OpenGLSL中处理HDR.ToneMapping(HLG)
  19. 简单的方法Android的数据恢复你的Andr​​oid手机
  20. Pachi中的蒙特卡洛树搜索,AMAF,Rave

热门文章

  1. 程序设计与算法二郭炜枚举002拨钟问题及解题思路
  2. 仪器仪表用Σ ΔADC产品
  3. java 中0x的数值表示方式 本质上是什么意思?
  4. 清华大学胡事民是计算机视觉,ResNet也能用在3D模型上了,清华“计图”团队新研究已开源...
  5. 跳板机(运维堡垒主机)
  6. 无人驾驶实战第一课--七月在线
  7. rt-thread+SAL+W5500 以太网Socket通信
  8. Python 与神奇的数学之汉诺塔
  9. windows c++编程入门
  10. mysql utf-8不支持生僻字_关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析...