Suche senden
Hochladen
2D Video Games with MacRuby
•
4 gefällt mir
•
1,166 views
Matt Aimonetti
Folgen
Demonstration of how to write a simple 2D game using MacRuby and CoreAnimation.
Weniger lesen
Mehr lesen
Technologie
Unterhaltung & Humor
Design
Melden
Teilen
Melden
Teilen
1 von 128
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Computer Games Inner Workings - I. Loukeris AIT
Computer Games Inner Workings - I. Loukeris AIT
AIT_Communications
Moving pixels on someone else's screen: introduction to Unity networking
Moving pixels on someone else's screen: introduction to Unity networking
Giovanni Frigo
ネットゲームつくろうぜ on Unity
ネットゲームつくろうぜ on Unity
Shinsuke Sugita
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)
Noam Gat
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
David Salz
Game development with Cocos2d-x Engine
Game development with Cocos2d-x Engine
Duy Tan Geek
Xna 2 D Game Programming
Xna 2 D Game Programming
asiamediasoft
Corporate Presentation
Corporate Presentation
Red Apple Technologies Pvt Ltd
Empfohlen
Computer Games Inner Workings - I. Loukeris AIT
Computer Games Inner Workings - I. Loukeris AIT
AIT_Communications
Moving pixels on someone else's screen: introduction to Unity networking
Moving pixels on someone else's screen: introduction to Unity networking
Giovanni Frigo
ネットゲームつくろうぜ on Unity
ネットゲームつくろうぜ on Unity
Shinsuke Sugita
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)
Noam Gat
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
David Salz
Game development with Cocos2d-x Engine
Game development with Cocos2d-x Engine
Duy Tan Geek
Xna 2 D Game Programming
Xna 2 D Game Programming
asiamediasoft
Corporate Presentation
Corporate Presentation
Red Apple Technologies Pvt Ltd
Django, Pinax, and Humble Pie
Django, Pinax, and Humble Pie
phredcode
Cloudera Desktop
Cloudera Desktop
Hadoop User Group
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
Caue Guerra
Realtime 3D on the web - a toy or a useful tool?
Realtime 3D on the web - a toy or a useful tool?
Jens Brynildsen
Ruby On Rails Presentation Barcamp Antwerp.Key
Ruby On Rails Presentation Barcamp Antwerp.Key
Bert Goethals
Tkinter Does Not Suck
Tkinter Does Not Suck
Richard Jones
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
Matt Aimonetti
Future Of Ruby And Rails
Future Of Ruby And Rails
Matt Aimonetti
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Matt Aimonetti
Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich Kilmer
Matt Aimonetti
MacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meet
Matt Aimonetti
Merb For The Enterprise
Merb For The Enterprise
Matt Aimonetti
Merb presentation at ORUG
Merb presentation at ORUG
Matt Aimonetti
Merb Plugins 101
Merb Plugins 101
Matt Aimonetti
Lazy Indexing
Lazy Indexing
Matt Aimonetti
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Weitere ähnliche Inhalte
Ähnlich wie 2D Video Games with MacRuby
Django, Pinax, and Humble Pie
Django, Pinax, and Humble Pie
phredcode
Cloudera Desktop
Cloudera Desktop
Hadoop User Group
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
Caue Guerra
Realtime 3D on the web - a toy or a useful tool?
Realtime 3D on the web - a toy or a useful tool?
Jens Brynildsen
Ruby On Rails Presentation Barcamp Antwerp.Key
Ruby On Rails Presentation Barcamp Antwerp.Key
Bert Goethals
Tkinter Does Not Suck
Tkinter Does Not Suck
Richard Jones
Ähnlich wie 2D Video Games with MacRuby
(6)
Django, Pinax, and Humble Pie
Django, Pinax, and Humble Pie
Cloudera Desktop
Cloudera Desktop
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
Realtime 3D on the web - a toy or a useful tool?
Realtime 3D on the web - a toy or a useful tool?
Ruby On Rails Presentation Barcamp Antwerp.Key
Ruby On Rails Presentation Barcamp Antwerp.Key
Tkinter Does Not Suck
Tkinter Does Not Suck
Mehr von Matt Aimonetti
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
Matt Aimonetti
Future Of Ruby And Rails
Future Of Ruby And Rails
Matt Aimonetti
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Matt Aimonetti
Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich Kilmer
Matt Aimonetti
MacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meet
Matt Aimonetti
Merb For The Enterprise
Merb For The Enterprise
Matt Aimonetti
Merb presentation at ORUG
Merb presentation at ORUG
Matt Aimonetti
Merb Plugins 101
Merb Plugins 101
Matt Aimonetti
Lazy Indexing
Lazy Indexing
Matt Aimonetti
Mehr von Matt Aimonetti
(9)
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
Future Of Ruby And Rails
Future Of Ruby And Rails
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich Kilmer
MacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meet
Merb For The Enterprise
Merb For The Enterprise
Merb presentation at ORUG
Merb presentation at ORUG
Merb Plugins 101
Merb Plugins 101
Lazy Indexing
Lazy Indexing
Kürzlich hochgeladen
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
RankYa
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
Zilliz
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Zilliz
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Wonjun Hwang
Kürzlich hochgeladen
(20)
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Training state-of-the-art general text embedding
Training state-of-the-art general text embedding
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
2D Video Games with MacRuby
1.
rubyconf 2009 2d video
game development with MacRuby matt aimonetti Sunday, November 22, 2009
2.
test your memory Sunday,
November 22, 2009
3.
Sunday, November 22,
2009
4.
Sunday, November 22,
2009
5.
Sunday, November 22,
2009
6.
Sunday, November 22,
2009
7.
Sunday, November 22,
2009
8.
Sunday, November 22,
2009
9.
Sunday, November 22,
2009
10.
Sunday, November 22,
2009
11.
Sunday, November 22,
2009
12.
Sunday, November 22,
2009
13.
Sunday, November 22,
2009
14.
Sunday, November 22,
2009
15.
Sunday, November 22,
2009
16.
Sunday, November 22,
2009
17.
Sunday, November 22,
2009
18.
Sunday, November 22,
2009
19.
Sunday, November 22,
2009
20.
Sunday, November 22,
2009
21.
Sunday, November 22,
2009
22.
Sunday, November 22,
2009
23.
Sunday, November 22,
2009
24.
Sunday, November 22,
2009
25.
Sunday, November 22,
2009
26.
Video Games are fun Sunday,
November 22, 2009
27.
Ruby Programming is fun Sunday, November
22, 2009
28.
You have a
mac Sunday, November 22, 2009
29.
(if not, get
one!) Sunday, November 22, 2009
30.
video games on OSX OLD
SCHOOL from scratch Sunday, November 22, 2009
31.
truth Sunday, November 22,
2009
32.
Sunday, November 22,
2009
33.
Sunday, November 22,
2009
34.
Sunday, November 22,
2009
35.
but Sunday, November 22,
2009
36.
Sunday, November 22,
2009
37.
Sunday, November 22,
2009
38.
popular games Sunday, November 22,
2009
39.
Massively Multiplayer online role-playing games (MMORPG) Sunday,
November 22, 2009
40.
Sunday, November 22,
2009
41.
Sunday, November 22,
2009
42.
Sunday, November 22,
2009
43.
too much work
for a hacking project Sunday, November 22, 2009
44.
first person shooter Sunday, November
22, 2009
45.
Sunday, November 22,
2009
46.
Sunday, November 22,
2009
47.
Sunday, November 22,
2009
48.
new types of games Sunday,
November 22, 2009
49.
Sunday, November 22,
2009
50.
Sunday, November 22,
2009
51.
online games Sunday, November 22,
2009
52.
Sunday, November 22,
2009
53.
Sunday, November 22,
2009
54.
Sunday, November 22,
2009
55.
iphone games Sunday, November
22, 2009
56.
Sunday, November 22,
2009
57.
Sunday, November 22,
2009
58.
demo Sunday, November 22,
2009
59.
MacRuby Sunday, November 22,
2009
60.
Ruby for SCottish Sunday,
November 22, 2009
61.
Laurent Sansonetti Sunday, November
22, 2009
62.
Sunday, November 22,
2009
63.
Sunday, November 22,
2009
64.
on obj-c runtime and GC Sunday,
November 22, 2009
65.
COCOA Apple's Objective-C based
programming environment for Mac OS X Sunday, November 22, 2009
66.
VIDEO GAME Sunday, November 22,
2009
67.
Sunday, November 22,
2009
68.
Sunday, November 22,
2009
69.
keyboard Sunday, November 22,
2009
70.
key event keyboard Sunday, November
22, 2009
71.
key event keyboard GameData Sunday, November
22, 2009
72.
Sunday, November 22,
2009
73.
game loop Sunday, November
22, 2009
74.
game loop 174 ❶ update layers Sunday,
November 22, 2009
75.
game loop 174 ❶ update layers update game
items Sunday, November 22, 2009
76.
game loop 174 ❶ update layers repositionupdate game
items Sunday, November 22, 2009
77.
game loop 174 ❶ update layers repositionupdate game
items ❷ collisions Sunday, November 22, 2009
78.
game loop 174 ❶ update layers repositionupdate game
items ❷ collisions lives points sound Sunday, November 22, 2009
79.
LOOP playDATA GAME Sunday, November
22, 2009
80.
GAME PLAY Sunday, November 22,
2009
81.
⇧ ⇧ ⇧ ⇧ Sunday, November 22,
2009
82.
NSView subclass Interface Builder Sunday,
November 22, 2009
83.
NSView subclass Interface Builder Sunday,
November 22, 2009
84.
class KeyboardControlView <
NSView def keyDown(event) end end Sunday, November 22, 2009
85.
class KeyboardControlView <
NSView def keyDown(event) end end ⇧ ⇧ Sunday, November 22, 2009
86.
acceleration Sunday, November 22,
2009
87.
relative positioning Sunday, November 22,
2009
88.
Sunday, November 22,
2009
89.
GAME LOOP Sunday, November 22,
2009
90.
usual workflow Sunday, November 22,
2009
91.
usual workflow Sunday, November 22,
2009
92.
video game Sunday, November
22, 2009
93.
video game Sunday, November
22, 2009
94.
30 x per second Sunday, November
22, 2009
95.
moves player moves objects resolves
collisions updates score/level redraws graphics plays sounds Sunday, November 22, 2009
96.
module GameLoop def start_refreshing @timer
= NSTimer.scheduledTimerWithTimeInterval 0.03, target: self, selector: 'refresh_screen:', userInfo: nil, repeats: true end def refresh_screen(timer=nil) #… end end Sunday, November 22, 2009
97.
NSTimer.scheduledTimerWithTimeInterval 0.03, target: self, selector:
'refresh_screen:', userInfo: nil, repeats: true cocoa class method time interval method to call on the target some stuff we don’t care about ;) Sunday, November 22, 2009
98.
IntervalTimer.new(0.03, :target =>
self, :selector => 'refresh_screen:') Sunday, November 22, 2009
99.
def refresh_screen(timer=nil) GameData.all_layers.each{ |layer|
layer.update } collided_bombs, collided_rubies=GameData.collisions if !collided_bombs.empty? loose_a_life collided_bombs.each{|layer| layer.item.reset! } else collided_rubies.each do |layer| GameData.increase_points(layer.item.points) points.attributedStringValue = GameData.points.to_s layer.item.reset! end SoundEffects.collision(0.2) unless collided_rubies.empty? level_change! if change_level? end end Sunday, November 22, 2009
100.
GameData.all_layers.each do |layer| layer.update end Sunday,
November 22, 2009
101.
collided_bombs, collided_rubies = GameData.collisions Sunday,
November 22, 2009
102.
def collide_with?(other_rect) NSIntersectsRect(rect_version, other_rect) end Sunday,
November 22, 2009
103.
if !collided_bombs.empty? loose_a_life collided_bombs.each do
|layer| layer.item.reset! end Sunday, November 22, 2009
104.
else collided_rubies.each do |layer| GameData.increase_points(layer.item.points) update_points_display layer.item.reset! end Sunday,
November 22, 2009
105.
unless collided_rubies.empty? SoundEffects.frog(0.2) end level_change! if
change_level? end Sunday, November 22, 2009
106.
module SoundEffects module_function @frog =
NSSound.soundNamed("Frog") def frog(delay=0) @frog.performSelector(:play, withObject: nil, afterDelay: delay) end end Sunday, November 22, 2009
107.
GAME DATA Sunday, November 22,
2009
108.
Sunday, November 22,
2009
109.
module GameData module_function end Sunday, November
22, 2009
110.
class GameController def awakeFromNib GameData.register_controller(self) end end Sunday,
November 22, 2009
111.
GameData.all_layers Sunday, November 22,
2009
112.
class GameController def display_item(item) new_layer
= ImageLayer.alloc.initWithItem(item) GameData.all_layers << new_layer # [...] end end Sunday, November 22, 2009
113.
module GameConfig module_function def data @data
||= { :levels => [ { :name => 'Pond', :rubies => 3, :bombs => 12, :score_limit => 30, :vehicle => 'nenuphar', :bomb_image => 'bomb', :bomb_ratio => 1, :ruby_ratio => 1.5, :player_width => 0.2, :player_height => 0.2 }] } end Sunday, November 22, 2009
114.
cocoa hax Sunday, November 22,
2009
115.
CocoaClass =~ RubyClass Sunday,
November 22, 2009
116.
don’t like an API? Sunday, November
22, 2009
117.
Wrap it Sunday, November
22, 2009
118.
class NSButton def title_color=(color) current_font
= self.attributedTitle.attribute(NSFontAttributeName, atIndex: 0, effectiveRange: nil) opts = { NSForegroundColorAttributeName => color, NSFontAttributeName => current_font } self.attributedTitle = NSAttributedString.alloc.initWithString( self.title, attributes: opts) end end Sunday, November 22, 2009
119.
compilation Sunday, November 22,
2009
120.
Sunday, November 22,
2009
121.
PATH="$PATH:/usr/local/bin" macruby_deploy "$TARGET_BUILD_DIR/ $PROJECT_NAME.app" --embed
--no-stdlib --compile Sunday, November 22, 2009
122.
wanna hack? Sunday, November 22,
2009
123.
best score post score Sunday,
November 22, 2009
124.
gosu framework Sunday, November 22,
2009
125.
chipmunk physics Sunday, November 22,
2009
126.
http://github.com/ mattetti/phileas_frog Sunday, November 22,
2009
127.
Sunday, November 22,
2009
128.
Thanks Sunday, November 22,
2009
Jetzt herunterladen