A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 662|回复: 8

[求助] 求助:面向对象 与 面向过程 及全局变量

[复制链接]

精华
0
帖子
575
威望
0 点
积分
608 点
种子
12 点
注册时间
2005-7-7
最后登录
2024-12-23
 楼主| 发表于 2024-12-13 14:51  ·  天津 | 显示全部楼层 |阅读模式

C++环境,编写一个打怪物的游戏,分为 主角 和 怪物。
这其中肯定涉及到主角和怪物的一系列数据:精灵图片的高宽、位置、速度、生命值、……

如果采用(面向过程)全局变量方式,则这些数据可以直接使用。程序清单也简洁漂亮。

而推荐的面向对象方式,需要设置两个类:主角类CLASS、怪物类CLASS
类内各自的数据成员(高宽、位置、速度)都是private的。还必须添加很多的SetPosition(int X, int Y) 、getPosition()……成员函数,程序长度增加很多,代码显得繁琐、凌乱。在类外使用一个变量,必须调用一次函数,才能得到想要的值。为什么推荐这种脱裤子放屁的方法?

若是开发操作系统、PhotoShop这些大型软件,倒还可以理解。

精华
0
帖子
2845
威望
0 点
积分
3322 点
种子
441 点
注册时间
2022-7-5
最后登录
2024-11-21
发表于 2024-12-13 14:58  ·  安徽 | 显示全部楼层
如果你给角色加上武器,用斧子和用剑不用两种你再设计下实现看看区别
发自A9VG Android客户端

精华
0
帖子
23404
威望
0 点
积分
25431 点
种子
3116 点
注册时间
2016-1-27
最后登录
2024-12-25
发表于 2024-12-13 15:00  ·  江苏 | 显示全部楼层
你一个人自己敲点简单的代码 感觉不出来封装的必要,等你要和别人合作,或者调用第三方库的时候,会觉得全局变量是魔鬼。

全局变量谁都可以改,等于出了问题后 你也找不出来是谁的错
发自A9VG iPhone客户端

精华
0
帖子
772
威望
0 点
积分
785 点
种子
333 点
注册时间
2007-5-27
最后登录
2024-12-25
发表于 2024-12-13 15:03  ·  广东 | 显示全部楼层
不是c++及不是游戏开发人员
但就这场景,,你控制一个对象,拿整个类来控制是能实现
那相同类型其他对象(100个怪)怎么办,,你建100个类?
那肯定定义一个类,然后实例化100个对象好啦

在游戏论坛问这些问题,感觉挺无聊的
还是到专门渠道学习,询问吧

精华
1
帖子
8887
威望
1 点
积分
11174 点
种子
1012 点
注册时间
2004-3-8
最后登录
2024-12-25
发表于 2024-12-13 20:41  ·  日本 | 显示全部楼层
本来想吐槽,你到底懂不懂面向对象的意思?
不过一看是05年的号......你是半路出家吧?
劝一句,现在IT过剩,真的不建议进来。
当然,你自己选择,可以无视我的建议。

精华
0
帖子
475
威望
0 点
积分
482 点
种子
159 点
注册时间
2009-8-4
最后登录
2024-12-25
发表于 2024-12-13 23:47  ·  上海 | 显示全部楼层
简单的你可以随便写,复杂的就必须面向对象

精华
0
帖子
9958
威望
0 点
积分
10925 点
种子
714 点
注册时间
2004-8-19
最后登录
2024-10-27
发表于 2024-12-14 14:23  ·  河北 | 显示全部楼层
两个类就完事了?
比如说那个setpoint应该是主角和怪物都有的功能吧,你就没想过单独设计成一个类吗?
发自A9VG Android客户端

悟道者

這就是頭像下面那行字嗎?

精华
3
帖子
30160
威望
4 点
积分
36402 点
种子
1338 点
注册时间
2008-7-5
最后登录
2024-12-25
发表于 2024-12-14 15:25  ·  香港 | 显示全部楼层
全局变量,等数量多起来的时候,还得分清是哪个角色的数据,光是起名字都让你觉得烦,后期需要改动时更是麻烦。用对象是没错了,至少每个对象都有自己的一系统数据~

精华
0
帖子
3016
威望
0 点
积分
3638 点
种子
159 点
注册时间
2018-4-4
最后登录
2024-12-24
发表于 2024-12-16 12:41  ·  江苏 | 显示全部楼层
你都c++了 觉得简单那用纯c写 不冲突啊
发自A9VG iPhone客户端
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-12-25 16:08 , Processed in 0.257284 second(s), 18 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部