`
iamzealotwang
  • 浏览: 121922 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

欢迎加入游戏编程艺术

阅读更多

游戏编程艺术圈子 主要以讨论游戏相关的各个方面资料为主

 

暂设10个板块

 

游戏中的经济学

 

游戏中的经济是我最近才注意到的一个研究方向。

 

首先引起我注意的是JeffreyHsu的Blog里面谈及到了游戏里面蕴含的经济,无独有偶我有看到了另外一篇文章此人还写了一篇论文。

 

从此我也对这个问题开始着迷起来。为此还专门请了一个学经济的朋友给我讲述了 钱是为何产生的,现实社会中的经济如何运转,政府的作用 金融风暴是因为什么 等等 等等 虽然就我了解来看虚拟世界中的货币还没有成为真正意义上的货币,不过讨论讨论这方面的内容还有挺有意思的。 懂些经济学知识总是好的吧O(∩_∩)O

 

数学、物理知识

 

这个应该不用过多介绍了吧。 数学和物理方面的知识 在游戏之中要用到的地方太多了吧。

 

奇幻文学

 

我在上中学期间就读完了所有我能找到的正统奇幻小说

《黑暗精灵三部曲》、《冰风谷三部曲》、《血脉四部曲》、《龙枪编年史》、《修玛传奇》、《光芒之池》、《克莱恩魔法师》....

当时我认为D&D就是神一般的东西,后来又读了《刺客学徒》、《冰与火之歌》再到后来又读了Top榜单榜单里面的几本,最近在读《守夜人》,我想可能有些朋友会问 这有何游戏有什么关系呢?

我没有玩儿过WoW(很庆幸呵呵),但是却听见过类似于这样的话“只玩儿WoW没玩儿过War3的人 没资格谈论War的历史”话说得很嚣张,但是深想一下就会发觉“历史”对于一个游戏的重要性了。当今市面上能让我们脍炙人口谈论的 哪款是没有深厚的历史?

 

游戏算法

 

这个是必然要讨论的了 呵呵 算法是程序的灵魂 游戏是一段程序 所以.... 自己想想吧O(∩_∩)O

 

设计模式

 

我自己写了两篇设计模式的文章,后来没有再写 一是忙着弄课设,二是发现设计模式这种东西 学的越深就越发的感觉难以表达什么是设计模式.... 总之 希望和大家来探讨先关的内容

 

人工智能

 

er... 神经网络等等 只是听过名称 看着一大堆公式我就恶心 不过这应该也是游戏里面一个比较重要的分支吧

 

2D、3D图形编程

 

游戏嘛 总要有画面吧 要不就成TRPG了(很想玩儿 呵呵)

 

D&D

 

D&D全称是Dungeon and Dragons, D&D法则涉及方面太广太广了 就我个人而言没有资格对其作介绍。有兴趣的去Google一下吧

 

网络编程

 

关于和网络先关方面的知识

 

游戏人生

 

我想谁都做过游戏梦吧,无论是现在的程序员 还是整天都在打游戏的孩子 我想大家都做过游戏梦。

但并不是谁都能从事游戏开发的。

游戏市场的不景气,游戏开发要求的技术广度,或者随着年龄的增长 慢慢的 慢慢的 大家都放弃了。

就我个人而言也许这是我最后一年能够全身心的投入其中了,如果这一年里面没出什么成绩 我想我也就要和这个行业说再见了 呵呵 所以在一个万恶的夜晚

我对自己说:

“Success is my only mothafuckin option,cuz maybe the only opportunity that i got.”

跑题了-。- 这里主要是想让大家抒发各自的游戏历程 无论是过去时 现在时 还是 将来时 都行。

 

见圈子的目的是以交流学习为主,抒发感情为辅。

 

就我个人而言 就像我之前说的那样 也许这是我最后一年能够Enjoy in Game了,虽然就我现在学的东西来说根本不配做老师什么的,但是我会把我所有这方面的知识全都写出来 希望能对某些朋友有所帮助。

 

还是那句老话“不要重复造轮子” 即使我躺下了 也希望能留给大家一些“前车之鉴”之类的东西吧 呵呵

 

如果你对游戏开发也有兴趣 请加入圈子

 

若加入 请务必先看申请加入须知 谢谢合作 期待你的加入O(∩_∩)O

11
0
分享到:
评论
19 楼 jyasa 2008-09-28  
可惜我不是做游戏的,我做应用和symbin的
iamzealotwang 写道

是应该改改的 呵呵 本身想着好好弄弄圈子来的 不过各种原因 现在又开始整天看线性代数  一直也腾不出时间来..
不知道谁有兴趣 也有时间-.- 好好倒腾倒腾圈子 联系我 呵呵

18 楼 iamzealotwang 2008-09-28  
是应该改改的 呵呵 本身想着好好弄弄圈子来的 不过各种原因 现在又开始整天看线性代数  一直也腾不出时间来..
不知道谁有兴趣 也有时间-.- 好好倒腾倒腾圈子 联系我 呵呵
17 楼 jyasa 2008-09-28  
晕,我算是一个二流子.晕,群号都能忘记留:65663375
iamzealotwang兄
jyasa 写道

iamzealotwang网络编程,我觉得名字应该改一改单单网络编程真的没什么好讨论的,模式等才是重点该考虑的iamzealotwang 写道网络编程关于和网络先关方面的知识借用iamzealotwang的帖子做个广告吧Maxwell代码之美,职业讨论高级腾讯群,不限语言要求2年以上工作经验,如果小胖和iamzealotwang能来,嘿嘿,我就笑不动了,目前群里的做游戏的CTO牛人一大把哦,呵呵
16 楼 jyasa 2008-09-28  
iamzealotwang网络编程,我觉得名字应该改一改
单单网络编程真的没什么好讨论的,模式等才是重点该考虑的
iamzealotwang 写道

网络编程
关于和网络先关方面的知识



借用iamzealotwang的帖子做个广告吧
Maxwell代码之美,职业讨论高级腾讯群,不限语言要求2年以上工作经验,如果小胖和iamzealotwang能来,嘿嘿,我就笑不动了,目前群里的做游戏的CTO牛人一大把哦,呵呵
15 楼 与你同在 2008-09-26  
~我觉得开发游戏最难了 因为要很多细节上的东西
14 楼 modun 2008-09-25  
虽然自己都还是大学学生,发表不了高质量的文章,但还是期待加入!!申请已经提交了
13 楼 Nighthaven 2008-09-24  
刚才查了一下,网上的基本观点是把角色当成是光源,被光照到地方就是视野,说简单一些就是每个敌人带一只绿色的手电筒~~~~
12 楼 Nighthaven 2008-09-24  
fins 写道

我好像记错了 盟军一也是windows下但是不是3d的  需要 DirectDraw支持 难道DirectDraw 里也有类似函数吗?? :'( 

给你的代码是从一个4方向rpg粘贴来的,里面的人一共就有4个方向。你说的情况比较复杂,但是我想原理总是一样的`````(所谓30行就能实现,我就是以这段代码为依据的,现在想想似乎不太恰当,就当我没说吧~)
DirectDraw我没用过,反正opengl是有判断函数的,用起来也比较简单,因为显卡的结构为深度缓冲提供了比较大的方便,所以会非常快。

关于绿色区域的问题,iamzealotwang 说的先画视野再画建筑的方法是不可行的,原因是建筑物后面的区域一样会显示为绿色。

总的来说,从性能上看,我作过试验,即使是4方向,人物一旦左右扭头,电脑仍然会很卡。所以应该是一定要用显卡的。
11 楼 iamzealotwang 2008-09-24  
晕 理解错意思了-。-
不过关于那个绿色区域 我认为可以先渲染地面 再渲染绿色区域 最后渲染建筑物 然后提交显示。
等于那个绿色区域就是骗玩家用的。
10 楼 iamzealotwang 2008-09-24  
盟军当时为了不让我妈发现我买游戏 50块钱买的正版盘 就留了一张盘 剩下全扔了-。-
打游戏当时还就会ctrl+I 呵呵

先说一下我的想法:

首先扫描所有视野上的点 我认为是没有必要的

我的思路是这样

/**
 * 敌方单位
 * @author Tunied Nmetal
 *
 */
public class Enemy {
	 private static int eyeshot =5; //敌人的视野为5
	 private boolean isHeroInView = false; //英雄单位是否在视野内
	 private static int quadrant = 4 ; //象限数
	 private int heroInQuadrant; //英雄单位所在的象限
	 private int scanQuadrant; //扫描的象限
	 
	 /**
	  * 检查是否发现英雄单位
	  * @return
	  */
	 public boolean isFoundHero(){
		if(!isHeroInView){
			return false;
		}
		for(int i=0;i<quadrant;i++){
			if(scanQuadrant == heroInQuadrant ){
				if(scanMap()){
					return true;
				}
			}
		}
		return false;
	 }
	private boolean scanMap() {
		//扫描Hero的点和敌人的位置之间知否有障碍物
		return false;
	}
}

解释一下:
首先敌人的巡逻路线是固定的,那不妨咱们假设敌人是沿着X轴巡逻。相对的如果Hero相对于X轴的垂直距离都大于eyeshot的话 则不用判断
当垂直距离小于eyeshot的话 那不妨把敌人的扫描范围分为几个象限,当Hero不再象限以内的情况下也不必判断。
仅当在象限内的情况下需要作出判断,而判断的方法也不是扫描一个面而是扫描一条线
只要这条线上有遮蔽物的情况下则不能发现英雄。
我现在又在重头学万恶的线性代数,我觉得用矩阵判断要比去求斜率来的效率高。
没有证明啊,只是假象一下呵呵。
还有,这个程序如果用上观察者模式 状态机模式的话也应该会比较好的。

还有几个问题需要解决
1·英雄是要不停的动的
2·英雄可能不能当成一个点来看待

对以问题1 我觉得 就是用到观察者模式,英雄的任何移动都必然做大量的重新计算,所以通知的人越少越好。

对于问题2 不知道大家玩儿没玩儿过东方妖妖的梦(脑残的飞机游戏-。- 怒首领蜂也是)
那里的飞机碰撞检测也不是一个面 而是一个点。
如果一个点不够的话(比如人不可能躲在一根电线杆的后面)那么做法有两种
1·不要出现电线杆这种道具 及任何道具都可以躲藏,如果不能躲藏的就不要当道具来用,只当做贴图来用。
2·一个点不够 再加一个点 比如人身体的头是一个点 脚是一个点 检测两个点。永远不检测面。
9 楼 fins 2008-09-24  
我好像记错了
盟军一也是windows下但是不是3d的  需要 DirectDraw支持
难道DirectDraw 里也有类似函数吗?? :'( 
8 楼 fins 2008-09-24  
另外关于你说的 "人家那是直接用gpu判断的,直接调用opengl(d3d)函数就行了"
这个确实是这样 这种算法 很多3d引擎中都提供 并且调用了 dx或者 opengl里的函数

但是 在盟军敢死队1 代中 并没有使用dx和opengl (dos下的游戏 而且非3d的)
所以 这就不得不让人佩服了.

ps: 
"这个自己实现很容易的吧。以前试过用cpu判断,代码不会超过30行"
这种话以后还是少说吧 试过之后再说也不迟.

我以前用了一个多月的时间来查找学习和研究 查阅了大量的"游戏开发\图形图像学\计算几何\运动规划"方面的书籍 也没有找到一个好的答案.
如今你却轻描淡写的来了一句这样的话  我心里很受伤的说

呵呵
7 楼 fins 2008-09-24  
看了一下你贴的代码 根本实现不了我说的效果

注意以下几点

1 障碍物是任意形状
2 敌人的运动轨迹 和视线的朝向 是以度为单位 而不是简单的 4向 或8向
3 要支持斜45度引擎
4 高效

不知道你玩过盟军敢死队没
他的那个实现系统极其高效.
屏幕上 多个敌人边移动边左右转头看 同时高速的绘制视野范围 并判断是否发现主角


你提供的算法中"# 扫描所有视野上的点 "等处理
似乎不是很合适.
你提供的算法 也许比较适合用在一些 "arpg中 敌人发现主角后 追上来打主角"
这样的场景吧

6 楼 fins 2008-09-24  
Nighthaven 可能我表达的有问题

盟军中 除了判断之外
还要画出 视野的可达区域的外形



http://fins.iteye.com/blog/141144

就是帖子中的图片里的 "绿色区域"

如何画出来?

只是判断也许不是太难 (大不了就是判断呗 判断主角和敌人的连线是否和障碍物的边相交)
但是还要画出来视野
5 楼 pangbuddy 2008-09-24  
游戏在应用软件中应该算是很复杂的一类了,我最近也想开发游戏,所以来跟大家交流一下。
4 楼 Nighthaven 2008-09-24  
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


#==============================================================================
# 作者: FantasyDR
#
# 版本: v1.0
#
# 2005.10.25
#==============================================================================

#==============================================================================
# ■ Table
#------------------------------------------------------------------------------
#  加入fill方法
#==============================================================================
class Table
def fill(c)
   for y in 0..self.ysize
     for x in 0..self.xsize
        self[x,y] = c
     end
   end
end
end

#==============================================================================
# ■ Spriteset_Map
#------------------------------------------------------------------------------
#    重载地图显示
#==============================================================================
class Spriteset_Map
attr_reader:tilemap
aliasriginal_ini :initialize
def initialize
   original_ini
   # 设置地图闪烁列表
   @tilemap.flash_data=Table.new(@tilemap.map_data.xsize,@tilemap.map_data.ysize)
end 
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
#    重载地图场景
#==============================================================================
class Scene_Map
attr_reader:spriteset
end
#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
#  重载事件的类
#==============================================================================
class Game_Event < Game_Character
aliasrigin_initialize :initialize
aliasrigin_update :update

attr_reader :switch_no  #控制开关号
attr_reader :deep       #视野深度
attr_reader :test_block #是否检测障碍
attr_reader :is_always  #是否一直跟随
attr_reader :show_grid  #是否显示范围
attr_accessor:flash_color #闪烁颜色
#--------------------------------------------------------------------------
# ●初始化
#--------------------------------------------------------------------------
def initialize(map_id, event)
  origin_initialize(map_id, event)
  # 敌人朝向是2/4/6/8中的一个。
  #          下左右上
  # 建立Hash表,表示方向变量:
  @dx_lib ={2=>0,4=>-1,6=>1,8=>0}
  @dy_lib ={2=>1,4=>0,6=>0,8=>-1}
  # 闪烁颜色
  @flash_color=0xf0
end
#--------------------------------------------------------------------------
# ●画面更新
#--------------------------------------------------------------------------
def update
  if moving? or @original_direction != @direction
     $scene.spriteset.tilemap.flash_data.fill(0)
     @original_direction = @direction
  end
  self.test_view
  origin_update
end
#--------------------------------------------------------------------------
# ●判断是否被遮挡
# 参数:原点、障碍点、目标点、宽度
#--------------------------------------------------------------------------
def be_covered(sx,sy, cx,cy, px,py, width, x_fix,y_fix)
#坐标转换
sx = sx * width/1.0
sy = sy * width/1.0
cx = cx * width/1.0
cy = cy * width/1.0
px = px * width/1.0
py = py * width/1.0
#转换两个遮挡点
cx_a = cx - width*x_fix/2.0
cx_b = cx + width*x_fix/2.0
cy_a = cy - width*y_fix/2.0
cy_b = cy + width*y_fix/2.0


# 求斜率
kp = (py-sy)/(px-sx) 
if x_fix != 0 #横向遮挡
   if px == sx #在垂直方向
     tx = 0
   else
     tx = cy/kp
   end
   if (cy-sy).abs<(py-sy).abs and tx>=cx_a and tx<=cx_b
     return true #被挡住
   end
else #纵向遮挡,面向水平方向
   ty = cx*kp
   if (cx-sx).abs<(px-sx).abs and ty>=cy_a and ty<=cy_b
     return true #被挡住
   end
end
return false #没有被挡住
end

#--------------------------------------------------------------------------
# ● 保存数据
# x,y:
#   数据位置
#--------------------------------------------------------------------------
def pack(x,y,test)
  if x == $game_player.x and  y == $game_player.y
      $game_switches[@switch_no] = true
  end
  if self.passable?(x,y,0)
    @view[@vp,0] = x
    @view[@vp,1] = y
    @vp += 1
  else
    @rock[@rp,0] = x
    @rock[@rp,1] = y
    @rp += 1
  end
end
#--------------------------------------------------------------------------
# ● 移动类型 : 敌人视界判断
# @deep:
#   视野深度
# @test_block:
#   是否检测障碍
#--------------------------------------------------------------------------
def test_view
return if @deep == nil
flash = $scene.spriteset.tilemap.flash_data
# 求得方向变量参数
dx=@dx_lib[@direction]
dy=@dy_lib[@direction]

# 求得与主角座标的差值
sx = @x - $game_player.x
sy = @y - $game_player.y

# 判定是否一直跟踪
if @is_always and $game_switches[@switch_no]
   if (sx**2 + sy**2)>((@deep+1)**2)
    $game_switches[@switch_no]=false
   end
else
   $game_switches[@switch_no]=false
end

@view = Table.new(flash.xsize*flash.ysize,2)
@rock = Table.new(flash.xsize*flash.ysize,2)
@rp = 0
@vp = 0
# 设置周围视野
if dy != 0 #纵向视野
  pack(@x+1,@y,false)
  pack(@x-1,@y,false)
else
  pack(@x,@y+1,false)
  pack(@x,@y-1,false)
end
# 扫描所有视野上的点
for i in 1..@deep
  for j in -i..i
    if dy != 0
     cy = @y + dy*i
     cx = @x + j
    else
     cx = @x + dx*i
     cy = @y + j
    end
    pack(cx,cy,true)
  end
end

# 判断障碍
for i in 0..@vp-1
   can_see = true
   for j in 0..@rp-1
     if @test_block and self.be_covered(0,0, @rock[j,0]-@x,@rock[j,1]-@y,@view[i,0]-@x,@view[i,1]-@y,32,dy.abs,dx.abs)
       can_see = false
       break
     end
   end
   flash[@view[i,0],@view[i,1]] = @flash_color if can_see and @show_grid
end
#探测玩家有没有被遮挡
if $game_switches[@switch_no] and @test_block
  for j in 0..@rp-1
   if (@rock[j,0] != $game_player.x or @rock[j,0] != $game_player.y) and
      self.be_covered(0,0, @rock[j,0]-@x,@rock[j,1]-@y,\
      $game_player.x-@x,$game_player.y-@y,32,dy.abs,dx.abs)
       $game_switches[@switch_no]=false
       break
   end
  end
end
end
#--------------------------------------------------------------------------
# ●移动类型
#--------------------------------------------------------------------------
def em_view(switch_no,deep=4,test_block=true,is_always=true,show_grid=true)
@switch_no = switch_no
@deep = deep
@test_block = test_block
@is_always = is_always
@show_grid = show_grid
# 根据$game_switches[@switch_no]移动
if $game_switches[@switch_no]
   # 被发现的情况,跟随主角
   move_toward_player
else
   # 没有被发现的情况,随机转向
   turn_random
end
end

end


#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
3 楼 Nighthaven 2008-09-24  
fins 写道

这个一直很感兴趣 但是 以前找遍互联网 也没有找到一个算法 让我很受伤 于是 就不再搞游戏开发了 我想找的算法就是 类似 盟军敢死队1 2 3 中的那种 视觉系统的算法 判断主角 是否在某个敌人的可视区域内 区域内有不规则障碍物遮挡  而且有个难点是 这个算法 还要适应 斜45度角


这个自己实现很容易的吧。以前试过用cpu判断,代码不会超过30行,问题是视野范围一大就非常慢。后来学了图形学才明白,人家那是直接用gpu判断的,直接调用opengl(d3d)函数就行了~~~
2 楼 fins 2008-09-24  
这个一直很感兴趣
但是 以前找遍互联网 也没有找到一个算法 让我很受伤 于是 就不再搞游戏开发了

我想找的算法就是 类似
盟军敢死队1 2 3 中的那种
视觉系统的算法

判断主角 是否在某个敌人的可视区域内
区域内有不规则障碍物遮挡 


而且有个难点是 这个算法 还要适应 斜45度角

1 楼 jkfzero 2008-09-24  
我先来顶下。

相关推荐

    游戏编程入门

    总之,游戏编程是一门融合了技术、艺术与创造力的综合性学科,需要持续的学习和实践。《游戏编程入门》旨在为初学者提供一个起点,引导他们进入这个充满挑战与乐趣的世界。无论是为了职业发展还是个人兴趣,投身于...

    Scratch少儿编程项目音效音乐素材-【乐器】音效-拨铃波琴.zip

    在少儿编程教育中,Scratch因其易学性和趣味性而广受欢迎。 本压缩包“Scratch少儿编程项目音效音乐素材-【乐器】音效-拨铃波琴.zip”是为Scratch项目专门准备的音乐素材,主要包含了拨铃波琴的音效。拨铃波琴,又...

    各种俄罗斯方块

    《各种俄罗斯方块》 俄罗斯方块是一款历史悠久且广受欢迎的电子游戏,其设计简单却极具挑战性。这个游戏的核心概念是让各种形状的方块在...无论是初学者还是经验丰富的开发者,都能从中受益,领略到编程艺术的魅力。

    C# 俄罗斯方块 提供给大家参考交流

    《C#实现的俄罗斯方块:编程艺术与技术解析》 在编程的世界里,经典游戏总是能引发开发者无尽的兴趣,而俄罗斯方块无疑是其中最具...如果你对这个项目感兴趣,欢迎加入交流,共同探讨和学习C#编程以及游戏开发的魅力。

    piskel2:Piskel的分叉,这是像素艺术的简单应用程序。 它被我们毁了。 现在,我通过使其更复杂来对其进行修复

    像素艺术,作为一种复古而又独特的艺术形式,在游戏、动画以及数字艺术领域中广受欢迎。Piskel2的目标就是为这种艺术形式提供一个强大的在线编辑环境。通过JavaScript这一广泛使用的编程语言,Piskel2能够实现跨平台...

    ArmorySDK2002.zip

    这个工具包在经过多次下载尝试后终于获得,证明了其在游戏开发社区中的受欢迎程度和需求度。ArmorySDK是专为Blender设计的游戏引擎插件,这意味着它可以无缝集成到Blender环境中,为艺术家和开发者提供了一个强大且...

    转学生自我介绍3篇精选.doc

    在IT行业中,尤其是在与用户体验相关的领域,如界面设计、游戏开发以及视觉传达,艺术感和创造力显得尤为重要。一个具有艺术背景的IT从业者,能够在产品设计中融入创新元素,使产品在激烈的市场竞争中脱颖而出。因此...

    儿童节相关庆祝代码&项目资源.docx

    树莓派(Raspberry Pi)是一款非常受欢迎的小型计算机,适合开展各种创意编程项目。例如,可以利用树莓派制作交互式的祝福墙或声控灯光秀,这些项目不仅能够吸引孩子们的兴趣,还能让他们接触到更高级别的编程技能。...

    Werewolf:使用Javascript和Websocket的社交欺骗游戏Werewolf的在线,基于大厅的多人版本。 仍在积极发展中

    该应用程序允许玩家创建或加入状态同步的游戏大厅。 游戏的创建者可以根据提供的标准卡组或用户创建的任意数量的自定义卡来构建套牌。 游戏开始后,该套牌将随机分配给所有参与者。 玩家将看到他们的卡(可以上下...

    2022年中国青少年STEAM教育研究报告.docx

    它最初源于20世纪80年代美国提出的STEM教育理念,后来在美国教授Yakman的倡导下加入了艺术元素,形成了完整的STEAM教育体系。 - **发展历程**:自2014年起,STEAM教育理念在中国逐渐兴起。在此之前,一些机构如乐高...

    tasoloikka-开源

    通过这种方式,"tasoloikka-开源"不仅能够吸引那些编程高手,而且也欢迎对游戏设计、艺术创作有热情的社区成员。这种开放协作的方式有利于推动游戏的持续创新与完善,同时也能让玩家得到一个更加丰富和完善的最终...

    UnityDownloadAssistant-5.4.2f2.exe.zip

    2. **可视化编辑器**:Unity的拖放式界面使得场景构建和游戏逻辑设计变得直观易懂,非常适合非编程背景的艺术家和设计师。 3. **C#编程语言**:Unity主要使用C#作为脚本语言,这是一种强大且易于学习的语言,拥有...

    Go-Figurine用各种风格在终端中打印你的名字

    除了预设的样式,Go-Figurine 还允许你通过编程方式创建自己的字符艺术样式。你可以通过修改源代码或使用提供的 API 来实现自定义的字符映射,以达到想要的视觉效果。 ### 六、应用场景 Go-Figurine 可用于许多...

    Dark Blade: Throne of Vengeance-开源

    1. **AD&D元素**:AD&D,即Advanced Dungeons & Dragons,是一款广受欢迎的桌面角色扮演游戏,以其丰富的角色设定、复杂的规则系统和深度的故事背景著称。游戏开发者将这些元素融入到3D环境中,让玩家能够在虚拟世界...

    鼠标走过的地方有小星星出现

    这样的程序不仅仅是一个简单的工具,它更是一种艺术和创意的展现,为我们的工作与娱乐生活增添了一抹亮色。 这个程序的实现原理是基于计算机图形学。通过编程,当用户使用鼠标在屏幕上移动时,屏幕上会随之出现一...

    我的世界

    《我的世界》是一款备受欢迎的沙盒式游戏,由瑞典开发者马库斯·佩尔松(Markus Persson)在2009年首次推出,后来由Mojang Studios继续开发并由微软公司拥有。这款游戏以其开放的世界、无限的创造潜力和独特的像素艺术...

    Minecraft-2D:Python中的Minecraft 2D

    而"Minecraft-2D"项目正是利用Python的强大功能,将广受欢迎的三维沙盒游戏——Minecraft,移植到了2D环境中。这个项目不仅展示了Python在游戏开发领域的潜力,也为学习者提供了一个有趣的实践平台。 Python中的...

    ambertide:埃格·埃米尔·厄兹坎(Ege EmirÖzkan)

    嗨,这是我的GitHub存储库,我在这里保存我的开源项目,偶尔进行修改,这些存储库中的大多数都是正常的编程内容,有时我更具艺术气息的网站可能会加入其中并添加更多内容!现在让我带您参观我的项目! 我的项目! 我...

    大学毕业班主题班会策划书PPT.pptx

    - 如对于艺术类专业的学生,可以组织一次艺术作品展览;对于计算机专业的学生,则可以举办一场编程比赛。 6. **培养良好品德与职业素养**: - 通过班会中的分享交流活动,培养学生的诚信、责任感和团队协作能力。...

Global site tag (gtag.js) - Google Analytics