CC65在我的文章(一)中可以获取到 或者直接去github下载cc65

这次的代码来自cc65的samples目录下的hello.c 并做了修改和注释 
通过查看源码可以看到里面支持的机器类型 
#if defined(__NES__) || defined(__PCE__) || defined(__GAMATE__) 
NES PCE GAMATE

通过 cmd 命令将 c 编译成 nes 文件 
cl65 -t nes -o demo.nes demo.c


#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <joystick.h>static const char Text [] = "Hello world!";// 2个临时变量,防止按住了按键频繁输出造成的闪烁
unsigned int p1,pt1;// 屏幕四边划线,原始代码暂时没处理
void drawline(void){unsigned char XSize, YSize;// 清屏,光标移到左上角clrscr ();// 获取屏幕尺寸,传入地址相当于让函数给这2个地址赋值screensize (&XSize, &YSize);/* Draw a border around the screen *///顶端线cputc (CH_ULCORNER);chline (XSize - 2);cputc (CH_URCORNER);/* Vertical line, left side */cvlinexy (0, 1, YSize - 2);//底端线cputc (CH_LLCORNER);chline (XSize - 2);cputc (CH_LRCORNER);/* Vertical line, right side */cvlinexy (XSize - 1, 1, YSize - 2);// 屏幕正中间显示 hello world 文字// 就是将光标移到gotoxy ((XSize - strlen (Text)) / 2, YSize / 2);cprintf ("%s", Text);}void main (void)
{// 屏幕颜色,黑底白字(void) textcolor (COLOR_WHITE);(void) bordercolor (COLOR_BLACK);(void) bgcolor (COLOR_BLACK);// 屏幕四边划线(前面的方法)drawline();// 初始化手柄joy_install (joy_static_stddrv);while (1){p1 = joy_read (JOY_1);// start 和 select 一起按的时候跳出循环,相当于重启if(p1==12){break;}// p1的案件一直没变的情况不做响应if(p1==pt1){continue;}pt1=p1;// 输出按键对应的数值,因为长短不同需要空格覆盖原有位置的字符gotoxy(1,1);cprintf("   ");gotoxy(1,1);cprintf("%d",p1);}// 前面使用break 跳出循环会走到这里gotoxy(0,0);cprintf("over");
}

通过这个demo我们可以获取到按键对应的数值

按键 二进制 十进制 16进制
A 00000001 1 0x01
B 00000010 2 0x02
select 00000100 4 0x04
start 00001000 8 0x08
00010000 16 0x10
00100000 32 0x20
01000000 64 0x40
10000000 128 0x80

连发 A 和 B 就是这个数字频闪 0和对应的1,2两个数字

解释: 
其实这个按键的取值是从默认的地址获取一个 16进制的值 
比如右这个值最大对应的 
十进制 128 
16进制 80 
二进制 10000000

同理左的二进制 是  01000000 
如果全按了就会显示 11111111

当多个按键一起按的时候相当于累加 比如 AB一起按输出的就是 3

截图是我用qq的 ctrl+alt+a 同时按着下(s) 相当于同时按了 左和下 显示的就是 96

CC65 开发FC/NES 游戏(三)使用摇杆相关推荐

  1. CC65 开发FC/NES 游戏(一)环境搭建(2021-04-27更新部分内容和修改部分错误介绍)

    童年的红白机(又叫FC,美国叫NES)  开发语言,早期的码农们用的是6502的CPU上的汇编语言ASM(其实跟单片机差不多)  简单的说不同的芯片提供了一堆指令让用户编程调用,但其实都是单调的地址引 ...

  2. FC(nes)游戏开发资源

    美国的网站,所有NES模拟器(程序设计)方面的资料 http://nesdev.parodius.com 各种NES模拟器源代码 http://www.zophar.net/nes.html FCNE ...

  3. flex 联机游戏开发 - 四国军棋游戏:(三) 核心类

    通过前面的练习 flex 联机游戏开发 - 四国军棋游戏:(二)棋盘棋子 我们已经成功地用不到200行的代码绘制出了一个漂亮的棋盘,现在,我们开始进入游戏的核心类设计阶段.四国军棋的游戏逻辑还是比较复 ...

  4. flex 联机游戏开发 - 四国军棋游戏:(三) 核心类设计

    通过前面的练习 flex 联机游戏开发 - 四国军棋游戏:(二)棋盘棋子 我们已经成功地用不到200行的代码绘制出了一个漂亮的棋盘,现在,我们开始进入游戏的核心类设计阶段.四国军棋的游戏逻辑还是比较复 ...

  5. 很久很久以前写的FC/NES 游戏ROM文件管理程序,许久没更新,用得着的试试吧

    那是在很久很久以前了, 那时候才刚刚学习Win32 SDK编程,恰恰又学了Sqlite3数据库的使用,所以就写 了这么一个程序, 没什么特殊的功能, 就是把NES文件保存到数据库中, 支持搜索, 要查 ...

  6. 用C语言开发NES游戏(CC65) 简介

    粘贴到CSDN格式没调,想看格式好的点下面 https://happysoul.github.io/nes/ 简介: 作者nesdoug,作者重写了他的代码并发布到了github https://gi ...

  7. nes游戏开发_NES Classic运行Linux,新的0 AD alpha,以及更多游戏新闻

    nes游戏开发 在这个为期两周的开放游戏综述中,我们看了运行Linux的Nintendo NES经典版,对Unity 5.6的SDL支持, 0 AD Ulysses以及更多游戏新闻. 2016年11月 ...

  8. 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53939303 本文出自[DylanAndroid的博客] [Android开发 ...

  9. 使用Html5+C#+微信 开发移动端游戏详细教程 :(三)使用html5引擎搭建游戏框架...

    教程里的案例我们是通过H5游戏引擎开发,目前H5的游戏引擎比较好用的是白鹭,不过对于新手来说白鹭的开发环境和工具使用过于复杂,这里推荐一个国内大神编写的游戏引擎:lufylegend. 直接在页面引入 ...

最新文章

  1. python3网络编程实战
  2. Install pysnmp for django
  3. java thread sleep 效率_Thread.sleep(0):线程休眠0秒有什么意义!
  4. 企业进销存管理系统 email_进销存财务软件选它就对了!
  5. linux python3运行,将Python3安装到Linux上并运行
  6. 嵌入式码头,Vaadin和焊接
  7. redis启动后出现WARNING you have Transparent Huge Pages (THP) support enabled in your kernel问题...
  8. 联合查询(查找所有分类及其父类)
  9. 跳坑成功,手摸手带你使用PHP连接Oracle数据库
  10. Android内存优化(二):一分钟发现内存泄漏
  11. Alfred Remote初体验
  12. 数据结构笔记(十六)-- 数组实现
  13. VTN系列多通道采集仪硬件接口
  14. android 手机 对比,看!Android平台三款手机浏览器对比评测
  15. 数据结构考研:大O表示法最浅显易懂且详细深入的解释及与小o表示法的区别(十分钟必懂)
  16. JAVA设计模式笔记(简单工厂模式)
  17. 智能座舱人机交互发展趋势
  18. 【雕爷学编程】Arduino动手做(2)---光敏电阻模块
  19. 超实用的 Vue 组件通信方式大汇总(8种)
  20. linux下查看cpu峰值,linux下查看CPU信息

热门文章

  1. 技术人攻略访谈三十九-HTML5社区田爱娜:女神哪有天生,坚守就是一切
  2. pspad c语言语法高亮,PSPad 下载地址以及设置语法高亮的方法 方便看代码
  3. 光学识别(OCR)之 Tesseract
  4. 发现一个免费打网络电话的方法。
  5. python汽车租赁
  6. 通达信行情数据获取--python_利用 Python 获取余额宝历史收益数据
  7. 关于小米路由器青春版刷老固件
  8. bookshelf.js笔记
  9. 兴业银行信息科技类笔试分享
  10. Unity3d 获取场景中摄像头视频流,实现直播效果(无需代码)