我正在开发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. [bzoj2300] [HAOI2011]防线修建
  2. 自动调整速率的Actor设计模式
  3. 急速JavaScript全栈教程
  4. 【PHP】网络相关封装的函数
  5. abstract class和interface有什么区别?
  6. Ubuntu 下安装LEMP环境 实战
  7. 【渝粤教育】国家开放大学2018年春季 0609-21T中级财务会计(1) 参考试题
  8. 反射例子(配置文件)
  9. 进阶攻略|前端最全的框架总结
  10. xshell下载及连接Linux
  11. SQlite Android数据库的应用 Android SQLite 简易的学生成绩管理系统
  12. 新时代的web与app开发
  13. Python中的unittest模块(入门学习款)
  14. 7.2.5 dps 测试软件,魔兽7.2.5版本DPS专精Reroll指南视频:近战篇
  15. 前端web开发培训,HTML表格标签,先收藏了
  16. mysql数据库重新命名
  17. 会议论文有影响因子吗_论文投稿——会议论文能否被SCI或EI收录
  18. php 获取 星期几,php怎么获得星期几
  19. 京东数据分析工具推荐(京东第三方数据平台)
  20. 计算机上机考试可以粘贴复制吗,急!高会无纸化考试打字慢 该如何复制粘贴?...

热门文章

  1. 十四届全国大学生“恩智浦”杯智能汽车竞赛信标组总结(2)
  2. html腾讯视频组件,3.腾讯视频组件
  3. Selenium运行IE报错This usually means that a call to the COM method IWebBrowser2::Navigate2() failed.解决方案
  4. 肖特基二极管与普通二极管的区别
  5. Linux设置非root用户启动程序
  6. 自媒体“人工智能小技巧”文章与视频合集(持续更新)
  7. 66 道前端算法面试题附思路分析助你查漏补缺
  8. 直播软件源码如何在Android端实现多人视频通话
  9. url短网址 java_url.cn短网址生成api接口(腾讯短链接url生成)
  10. 一个坑firewall-cmd: error: unrecognized arguments